summaryrefslogtreecommitdiff
path: root/drivers/mxc/gpu-viv/arch/XAQ2/hal
diff options
context:
space:
mode:
authorLoren HUANG <b02279@freescale.com>2013-09-04 15:58:04 +0800
committerJason Liu <r64343@freescale.com>2013-10-30 09:55:24 +0800
commit561250ddcfbe1254ef783e4a0fc9b5e68e572708 (patch)
tree686e4cd33d72e1f0822c24560109cc4e78a36909 /drivers/mxc/gpu-viv/arch/XAQ2/hal
parent1d1035dec51c03725613c4b1bfe33a5213989285 (diff)
ENGR00277333 gpu: Enable OT limitation for gc880
Enable OT limitation for gc880, without this limitation 3D core may stall system bus when it is running at a very low clock. Signed-off-by: Loren HUANG <b02279@freescale.com> Acked-by: Shawn Guo
Diffstat (limited to 'drivers/mxc/gpu-viv/arch/XAQ2/hal')
-rw-r--r--drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c15
1 files changed, 15 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 00f383993ffe..64929350f567 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
@@ -728,6 +728,13 @@ gckHARDWARE_Construct(
default:
hardware->type = gcvHARDWARE_3D;
+ if(hardware->identity.chipModel == gcv880)
+ {
+ /*set outstanding limit*/
+ gcmkONERROR(gckOS_ReadRegisterEx(Os, Core, 0x00414, &axi_ot));
+ axi_ot = (axi_ot & (~0xFF)) | 0x10;
+ gcmkONERROR(gckOS_WriteRegisterEx(Os, Core, 0x00414, axi_ot));
+ }
if ((((((gctUINT32) (hardware->identity.chipFeatures)) >> (0 ? 9:9)) & ((gctUINT32) ((((1 ? 9:9) - (0 ? 9:9) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 9:9) - (0 ? 9:9) + 1)))))) ))
{
@@ -1198,6 +1205,14 @@ gckHARDWARE_InitializeHardware(
#endif
/* Limit 2D outstanding request. */
+ if(Hardware->identity.chipModel == gcv880)
+ {
+ gctUINT32 axi_ot;
+ gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, Hardware->core, 0x00414, &axi_ot));
+ axi_ot = (axi_ot & (~0xFF)) | 0x10;
+ gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00414, axi_ot));
+ }
+
if ((Hardware->identity.chipModel == gcv320)
&& ((Hardware->identity.chipRevision == 0x5007)
|| (Hardware->identity.chipRevision == 0x5220)))