summaryrefslogtreecommitdiff
path: root/drivers/mxc
diff options
context:
space:
mode:
authorWu Guoxing <b39297@freescale.com>2012-02-24 09:12:31 +0800
committerWu Guoxing <b39297@freescale.com>2012-02-24 15:46:05 +0800
commit0a2926a1c16161500552482938c47ae44f92dbc9 (patch)
tree7b021caa18d5e78b7a3688e72938f046c922b882 /drivers/mxc
parent4180f1cfce522201db868eec8c6c459d12a0e34d (diff)
ENGR00175305:gpu-viv:don't open 2d clock when operate only on 3d
mx6dl do not have shader clock, and the shader clock is used as 2d clock. so, operate differently for mx6q & mx6dl Signed-off-by: Wu Guoxing <b39297@freescale.com> Acked-by: Lily Zhang
Diffstat (limited to 'drivers/mxc')
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c17
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c7
2 files changed, 15 insertions, 9 deletions
diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c
index 62aac98194ed..ed980bc5c52d 100644
--- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c
+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c
@@ -27,6 +27,7 @@
#include <linux/mm.h>
#include <linux/mman.h>
#include <linux/slab.h>
+#include <mach/hardware.h>
#define _GC_OBJ_ZONE gcvZONE_DEVICE
@@ -382,13 +383,15 @@ gckGALDEVICE_Construct(
if (IrqLine != -1) {
device->clk_3d_core = clk_get(NULL, "gpu3d_clk");
if (!IS_ERR(device->clk_3d_core)) {
- device->clk_3d_shader = clk_get(NULL, "gpu3d_shader_clk");
- if (IS_ERR(device->clk_3d_shader)) {
- IrqLine = -1;
- clk_put(device->clk_3d_core);
- device->clk_3d_core = NULL;
- device->clk_3d_shader = NULL;
- gckOS_Print("galcore: clk_get gpu3d_shader_clk failed, disable 3d!\n");
+ if (cpu_is_mx6q()) {
+ device->clk_3d_shader = clk_get(NULL, "gpu3d_shader_clk");
+ if (IS_ERR(device->clk_3d_shader)) {
+ IrqLine = -1;
+ clk_put(device->clk_3d_core);
+ device->clk_3d_core = NULL;
+ device->clk_3d_shader = NULL;
+ gckOS_Print("galcore: clk_get gpu3d_shader_clk failed, disable 3d!\n");
+ }
}
} else {
IrqLine = -1;
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 0f0d05c47f13..3cd8e247ee58 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
@@ -31,6 +31,7 @@
#include <asm/atomic.h>
#include <linux/dma-mapping.h>
#include <linux/slab.h>
+#include <mach/hardware.h>
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,23)
#include <linux/math64.h>
#endif
@@ -6854,7 +6855,8 @@ gckOS_SetGPUPower(
case gcvCORE_MAJOR:
if (!Os->device->clk_flag[gcvCORE_MAJOR]) {
clk_enable(clk_3dcore);
- clk_enable(clk_3dshader);
+ if (cpu_is_mx6q())
+ clk_enable(clk_3dshader);
}
Os->device->clk_flag[gcvCORE_MAJOR] = gcvTRUE;
break;
@@ -6877,7 +6879,8 @@ gckOS_SetGPUPower(
switch (Core) {
case gcvCORE_MAJOR:
if (Os->device->clk_flag[gcvCORE_MAJOR]) {
- clk_disable(clk_3dshader);
+ if (cpu_is_mx6q())
+ clk_disable(clk_3dshader);
clk_disable(clk_3dcore);
}
Os->device->clk_flag[gcvCORE_MAJOR] = gcvFALSE;