]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ENGR00175305:gpu-viv:don't open 2d clock when operate only on 3d
authorWu Guoxing <b39297@freescale.com>
Fri, 24 Feb 2012 01:12:31 +0000 (09:12 +0800)
committerLothar Waßmann <LW@KARO-electronics.de>
Fri, 24 May 2013 06:34:08 +0000 (08:34 +0200)
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
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c

index 62aac98194ede3dfae715d012caa0e8bcc9cc91f..ed980bc5c52db440a5dab1fac5abfd556683c2aa 100644 (file)
@@ -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;
index 0f0d05c47f13bcef31be60c58af77f82b1f54e64..3cd8e247ee58a2b5893620030d6a740368794e84 100644 (file)
@@ -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;