summaryrefslogtreecommitdiff
path: root/drivers/mxc/gpu-viv/hal/os
diff options
context:
space:
mode:
authorLoren Huang <b02279@freescale.com>2012-05-21 15:32:25 +0800
committerJason Liu <r64343@freescale.com>2012-07-20 13:37:50 +0800
commit7265e99b975ca2f18e2eecca6579d11877810503 (patch)
treecd1b02a89f1ca3b099eb18ac819a5293c87918ca /drivers/mxc/gpu-viv/hal/os
parenta8cc4702bf80182de4246276b1814475b7f2f794 (diff)
ENGR00209716-2 Revert "ENGR00209022 Update gpu clock management code"
This code is in 4.6.8 package. This patch will cause suspend/resume failure and data abort for vg applications. Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Lily Zhang
Diffstat (limited to 'drivers/mxc/gpu-viv/hal/os')
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c75
1 files changed, 33 insertions, 42 deletions
diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c
index 6b97aa0d14ad..399234aff707 100644
--- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c
+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c
@@ -6934,55 +6934,46 @@ gckOS_SetGPUPower(
struct clk *clk_2dcore = Os->device->clk_2d_core;
struct clk *clk_2d_axi = Os->device->clk_2d_axi;
struct clk *clk_vg_axi = Os->device->clk_vg_axi;
-
- gctBOOL oldClockState = gcvFALSE;
gcmkHEADER_ARG("Os=0x%X Core=%d Clock=%d Power=%d", Os, Core, Clock, Power);
-
- if (Os->device->kernels[Core] != NULL)
- oldClockState = Os->device->kernels[Core]->hardware->clockState;
-
if (Clock == gcvTRUE) {
- if (oldClockState == gcvFALSE) {
- switch (Core) {
- case gcvCORE_MAJOR:
- clk_enable(clk_3dcore);
- if (cpu_is_mx6q())
- clk_enable(clk_3dshader);
- break;
- case gcvCORE_2D:
- clk_enable(clk_2dcore);
- clk_enable(clk_2d_axi);
- break;
- case gcvCORE_VG:
- clk_enable(clk_2dcore);
- clk_enable(clk_vg_axi);
- break;
- default:
- break;
- }
+ switch (Core) {
+ case gcvCORE_MAJOR:
+ clk_enable(clk_3dcore);
+ if (cpu_is_mx6q())
+ clk_enable(clk_3dshader);
+ break;
+ case gcvCORE_2D:
+ clk_enable(clk_2dcore);
+ clk_enable(clk_2d_axi);
+ break;
+ case gcvCORE_VG:
+ clk_enable(clk_2dcore);
+ clk_enable(clk_vg_axi);
+ break;
+ default:
+ break;
}
} else {
- if (oldClockState == gcvTRUE) {
- switch (Core) {
- case gcvCORE_MAJOR:
- if (cpu_is_mx6q())
- clk_disable(clk_3dshader);
- clk_disable(clk_3dcore);
- break;
- case gcvCORE_2D:
- clk_disable(clk_2dcore);
- clk_disable(clk_2d_axi);
- break;
- case gcvCORE_VG:
- clk_disable(clk_2dcore);
- clk_disable(clk_vg_axi);
- break;
- default:
- break;
- }
+ switch (Core) {
+ case gcvCORE_MAJOR:
+ if (cpu_is_mx6q())
+ clk_disable(clk_3dshader);
+ clk_disable(clk_3dcore);
+ break;
+ case gcvCORE_2D:
+ clk_disable(clk_2dcore);
+ clk_disable(clk_2d_axi);
+ break;
+ case gcvCORE_VG:
+ clk_disable(clk_2dcore);
+ clk_disable(clk_vg_axi);
+ break;
+ default:
+ break;
}
}
+ /* TODO: Put your code here. */
gcmkFOOTER_NO();
return gcvSTATUS_OK;