diff options
author | Xianzhong <b07117@freescale.com> | 2015-04-03 09:17:19 +0800 |
---|---|---|
committer | Xianzhong <b07117@freescale.com> | 2015-04-03 17:42:57 +0800 |
commit | e96509c59cd50831b649f2c293d11db85f098073 (patch) | |
tree | 6694a3487ff11c4b6b3c27fed7e3d1a723ecff26 /drivers/mxc/gpu-viv/arch/XAQ2/hal | |
parent | 33597e348b2d60dd5c71890ef7b7d3d3fd6e4e97 (diff) |
MGS-608 [#1592] disable GC2000 TX clock gating
Random hang may occur if module clock gating is enabled for TX module,
The software workaround is to disable clock gating for the TX module
Date: Apr 03, 2015
Signed-off-by: Xianzhong <b07117@freescale.com>
(cherry picked from commit 966821ec3d297280398b68194d090dbc10690446)
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.c | 23 |
1 files changed, 23 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 9cc7f0ea31d8..e428040cb96f 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 @@ -1316,6 +1316,29 @@ gckHARDWARE_InitializeHardware( data)); } + if ((Hardware->identity.chipModel == gcv2000) + && (Hardware->identity.chipRevision == 0x5108)) + { + gctUINT32 data; + + gcmkONERROR( + gckOS_ReadRegisterEx(Hardware->os, + Hardware->core, + Hardware->powerBaseAddress + + 0x00104, + &data)); + + /* Disable TX clock gating. */ + data = ((((gctUINT32) (data)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 7:7) - (0 ? 7:7) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 7:7) - (0 ? 7:7) + 1))))))) << (0 ? 7:7))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ? 7:7) - (0 ? 7:7) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 7:7) - (0 ? 7:7) + 1))))))) << (0 ? 7:7))); + + gcmkONERROR( + gckOS_WriteRegisterEx(Hardware->os, + Hardware->core, + Hardware->powerBaseAddress + + 0x00104, + data)); + } + #if gcdHZ_L2_DISALBE /* Disable HZ-L2. */ if (((((gctUINT32) (Hardware->identity.chipMinorFeatures3)) >> (0 ? 26:26) & ((gctUINT32) ((((1 ? 26:26) - (0 ? 26:26) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 26:26) - (0 ? 26:26) + 1)))))) == (0x1 & ((gctUINT32) ((((1 ? 26:26) - (0 ? 26:26) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 26:26) - (0 ? 26:26) + 1))))))) == gcvTRUE || |