diff options
author | Wu Guoxing <b39297@freescale.com> | 2012-02-21 13:02:50 +0800 |
---|---|---|
committer | Wu Guoxing <b39297@freescale.com> | 2012-02-21 13:24:29 +0800 |
commit | d515de560f6f29c7ffe0e6cce811d6625b7a94b5 (patch) | |
tree | 7e83857e6e794e5e5b86cae7e3854f7d89967e66 | |
parent | a434c32db29bc69075f397df85a3346ccef0e3c9 (diff) |
ENGR00174899: mx6/dl:gpu2d:fix gc320 can not run at high core clock issue
gc320 on Rigel can not run at high core clock, above 200M core clock will
make system hang.
change gc320's axi outstanding limit to 16 as a ic workaround.
Signed-off-by: Wu Guoxing <b39297@freescale.com>
Acked-by: Lily Zhang
-rw-r--r-- | drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c b/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c index 416021a5bb18..f7c238781cd2 100644 --- a/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c +++ b/drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c @@ -23,6 +23,7 @@ #include "gc_hal.h" #include "gc_hal_kernel.h" +#include <mach/hardware.h> #define _GC_OBJ_ZONE gcvZONE_HARDWARE @@ -499,6 +500,16 @@ gckHARDWARE_Construct( #endif + if(cpu_is_mx6dl()) + { + /*set outstanding limit on mx6dl*/ + gctUINT32 data; + + gcmkONERROR(gckOS_ReadRegisterEx(Os, Core, 0x00414, &data)); + data = (data & (~0xFF)) | 0x10; + gcmkONERROR(gckOS_WriteRegisterEx(Os, Core, 0x00414, data)); + } + /* Set power state to ON. */ hardware->chipPowerState = gcvPOWER_ON; hardware->clockState = gcvTRUE; |