PD #98307: Disable DVFS caller before mali resume.
authorKasin Lee <kasin.li@amlogic.com>
Fri, 10 Oct 2014 08:04:01 +0000 (16:04 +0800)
committerKasin Lee <kasin.li@amlogic.com>
Fri, 10 Oct 2014 08:04:01 +0000 (16:04 +0800)
Change-Id: I1924f199786849541f5e73443f794d2ee23933c3

mali/platform/meson_m450/platform_g9tv.c
mali/platform/meson_m450/platform_m8.c
mali/platform/meson_m450/platform_m8b.c
mali/platform/meson_m450/scaling.c
mali/platform/meson_main.c
mali/platform/meson_main.h

index 5346b01469aeca753a63c4dac94b62ca6c57c048..81e8a46d7de350081803fb2902914502603ba55f 100755 (executable)
@@ -395,6 +395,8 @@ int mali_light_resume(struct device *device)
 int mali_deep_suspend(struct device *device)
 {
        int ret = 0;
+
+       mali_pm_statue = 1;
        enable_clock();
        flush_scaling_job();
 
@@ -411,6 +413,7 @@ int mali_deep_resume(struct device *device)
        /* clock scaling up. Kasin.. */
        enable_clock();
        ret = mali_clock_critical(mali_cri_deep_resume, (size_t)device);
+       mali_pm_statue = 0;
        return ret;
 
 }
index 27be4cfa4c9296404fd24f7c48d17450e5ee96ed..f1e52d9db14a605e9288c773e69a24fd78b28c3c 100755 (executable)
@@ -407,6 +407,8 @@ int mali_light_resume(struct device *device)
 int mali_deep_suspend(struct device *device)
 {
        int ret = 0;
+
+       mali_pm_statue = 1;
        enable_clock();
        flush_scaling_job();
 
@@ -423,6 +425,7 @@ int mali_deep_resume(struct device *device)
        /* clock scaling up. Kasin.. */
        enable_clock();
        ret = mali_clock_critical(mali_cri_deep_resume, (size_t)device);
+       mali_pm_statue = 0;
        return ret;
 
 }
index 0e1b40d47446e2ea6d45ba3b48e8c81ef4d7cf02..6a44962e1846f210d70fbfee6fab5f07898a1bb9 100755 (executable)
@@ -358,6 +358,7 @@ int mali_deep_suspend(struct device *device)
        int ret = 0;
        struct mali_pmu_core *pmu;
 
+       mali_pm_statue = 1;
        pmu = mali_pmu_get_global_pmu_core();
        enable_clock();
        flush_scaling_job();
@@ -375,6 +376,7 @@ int mali_deep_resume(struct device *device)
        /* clock scaling up. Kasin.. */
        enable_clock();
        ret = mali_clock_critical(mali_cri_deep_resume, (size_t)device);
+       mali_pm_statue = 0;
        return ret;
 }
 
index 1c51b6e658aa370dbf4cd0a618f8237e3890a6e5..b6fb41142399c56fe9332228c0ed84f234f2f686 100755 (executable)
@@ -380,6 +380,9 @@ u32 get_current_frequency(void)
 
 void mali_gpu_utilization_callback(struct mali_gpu_utilization_data *data)
 {
+       if (mali_pm_statue)
+               return;
+
        switch (scaling_mode) {
        case MALI_PP_FS_SCALING:
                mali_pp_fs_scaling_update(data);
index 69f579a5f8c761c0ed1e144e69d7d3706b765b23..05c18d95a7873fe8c0bdf20b7ebe22764732039b 100755 (executable)
@@ -27,7 +27,7 @@
 #include "common/mali_pmu.h"
 #include "common/mali_osk_profiling.h"
 
-int mali_pm_statue = 1;
+int mali_pm_statue = 0;
 
 static struct mali_gpu_device_data mali_gpu_data =
 {
index b30cfc786809b9fe3ab2b2eabeca561ab55a0a94..44c31c4b7be5e12553dc6eb2ea720af8544abf04 100755 (executable)
@@ -18,6 +18,7 @@
 #include "mali_clock.h"
 
 extern struct device_type mali_pm_device;
+extern int mali_pm_statue;
 
 u32 set_max_mali_freq(u32 idx);
 u32 get_max_mali_freq(void);