diff options
author | Loren HUANG <b02279@freescale.com> | 2013-09-04 15:58:04 +0800 |
---|---|---|
committer | Richard Liu <r66033@freescale.com> | 2013-10-15 16:49:35 +0800 |
commit | e47c5c2627d3b7e0cb429a512842843f0a781e3b (patch) | |
tree | 57cdc7e4050242ee93b6a3623ba37b61792dc52a | |
parent | ca6106478052bf30664b89767d9a2b51807882b6 (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
-rw-r--r-- | drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c | 15 |
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))) |