[RAMEN9610-11727][HACK] g2d: lock memory frequency as 845Mhz
authorHyesoo Yu <hyesoo.yu@samsung.com>
Wed, 30 Jan 2019 08:03:47 +0000 (17:03 +0900)
committerhskang <hs1218.kang@samsung.com>
Thu, 31 Jan 2019 11:42:55 +0000 (20:42 +0900)
Change-Id: Id5f3f6c1f95f3ca39ab6fa0b63777f0384fc93b9
Signed-off-by: Hyesoo Yu <hyesoo.yu@samsung.com>
drivers/gpu/exynos/g2d/g2d.h
drivers/gpu/exynos/g2d/g2d_perf.c

index d76f219791186d49ebf2a468fca881e79d1a9416..4940aad1149a39468cadd3218a967cd302ff099c 100644 (file)
@@ -135,7 +135,8 @@ struct g2d_context {
 
        struct delayed_work dwork;
 
-       struct pm_qos_request req;
+       struct pm_qos_request dev_req;
+       struct pm_qos_request bus_req;
        struct list_head qos_node;
        u64     r_bw;
        u64     w_bw;
index 63c18ae007fdf12d6b8521210d40d7daabc89cea..a4c8bfd8fd70452f4cf166376fa3cf65a01001b6 100644 (file)
 #include <linux/workqueue.h>
 
 #ifdef CONFIG_PM_DEVFREQ
-static void g2d_pm_qos_update_devfreq(struct pm_qos_request *req, u32 freq)
+static void g2d_pm_qos_update_devfreq(struct pm_qos_request *req, u32 freq,
+                                     int class)
 {
        if (!pm_qos_request_active(req))
-               pm_qos_add_request(req, PM_QOS_DEVICE_THROUGHPUT, 0);
+               pm_qos_add_request(req, class, 0);
 
        pm_qos_update_request(req, freq);
 }
@@ -148,10 +149,15 @@ static void g2d_set_device_frequency(struct g2d_context *g2d_ctx,
                }
        }
 
-       if (!ip_clock)
-               g2d_pm_qos_remove_devfreq(&g2d_ctx->req);
-       else if (ip_clock)
-               g2d_pm_qos_update_devfreq(&g2d_ctx->req, ip_clock);
+       if (!ip_clock) {
+               g2d_pm_qos_remove_devfreq(&g2d_ctx->dev_req);
+               g2d_pm_qos_remove_devfreq(&g2d_ctx->bus_req);
+       } else if (ip_clock) {
+               g2d_pm_qos_update_devfreq(&g2d_ctx->dev_req, ip_clock,
+                                         PM_QOS_DEVICE_THROUGHPUT);
+               g2d_pm_qos_update_devfreq(&g2d_ctx->bus_req, 845000,
+                                         PM_QOS_BUS_THROUGHPUT);
+       }
 }
 
 static void g2d_set_qos_frequency(struct g2d_context *g2d_ctx,