From cc459654bfe76d3172bb261769d5c45a2e32d045 Mon Sep 17 00:00:00 2001 From: Richard Liu Date: Fri, 4 Apr 2014 12:19:12 +0800 Subject: ENGR00306993 revert gpu2d may cause bus hang fix gpu2d hang fix has side effect, it causes flicker issue for popup window menu on android, not integrate this fix before the side effect be fixed. Revert "ENGR00302036-3 gpu:gpu2d may cause bus hang in some corner case" This reverts commit 0d5505cfd0b50db4bd046270b119c4dae0a143c2. Signed-off-by: Richard Liu Acked-by: Shawn Guo --- .../arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c | 61 +++++++--------------- drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver.h | 3 -- 2 files changed, 20 insertions(+), 44 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 60adbfe06cec..e8ad2ea3e031 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 @@ -509,36 +509,6 @@ _IdentifyHardware( Identity->varyingsCount -= 1; } - Identity->chip2DControl = 0; - if (Identity->chipModel == gcv320) - { - gctUINT32 data; - - gcmkONERROR( - gckOS_ReadRegisterEx(Os, - Core, - 0x0002C, - &data)); - - if ((data != 33956864) && - ((Identity->chipRevision == 0x5007) || - (Identity->chipRevision == 0x5220))) - { - Identity->chip2DControl |= 0xFF & - (Identity->chipRevision == 0x5220 ? 8 : - (Identity->chipRevision == 0x5007 ? 12 : 0)); - } - - if (Identity->chipRevision == 0x5007) - { - /* Disable splitting rectangle. */ - Identity->chip2DControl |= 0x100; - - /* Enable 2D Flush. */ - Identity->chip2DControl |= 0x200; - } - } - /* Success. */ gcmkFOOTER(); return gcvSTATUS_OK; @@ -1348,24 +1318,34 @@ gckHARDWARE_InitializeHardware( gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, Hardware->core, 0x00414, axi_ot)); } - if (Hardware->identity.chip2DControl & 0xFF) - { + if ((Hardware->identity.chipModel == gcv320) + && ((Hardware->identity.chipRevision == 0x5007) + || (Hardware->identity.chipRevision == 0x5220))) + { gctUINT32 data; gcmkONERROR( gckOS_ReadRegisterEx(Hardware->os, Hardware->core, - 0x00414, + 0x0002C, &data)); + if (data != 33956864) + { + gcmkONERROR( + gckOS_ReadRegisterEx(Hardware->os, + Hardware->core, + 0x00414, + &data)); - data = ((((gctUINT32) (data)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 7:0) - (0 ? 7:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 7:0) - (0 ? 7:0) + 1))))))) << (0 ? 7:0))) | (((gctUINT32) ((gctUINT32) (Hardware->identity.chip2DControl & 0xFF) & ((gctUINT32) ((((1 ? 7:0) - (0 ? 7:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 7:0) - (0 ? 7:0) + 1))))))) << (0 ? 7:0))); + data = ((((gctUINT32) (data)) & ~(((gctUINT32) (((gctUINT32) ((((1 ? 7:0) - (0 ? 7:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 7:0) - (0 ? 7:0) + 1))))))) << (0 ? 7:0))) | (((gctUINT32) ((gctUINT32) (Hardware->identity.chipRevision == 0x5220 ? 8 : (Hardware->identity.chipRevision == 0x5007 ? 16 : 0)) & ((gctUINT32) ((((1 ? 7:0) - (0 ? 7:0) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 7:0) - (0 ? 7:0) + 1))))))) << (0 ? 7:0))); - gcmkONERROR( - gckOS_WriteRegisterEx(Hardware->os, - Hardware->core, - 0x00414, - data)); - } + gcmkONERROR( + gckOS_WriteRegisterEx(Hardware->os, + Hardware->core, + 0x00414, + data)); + } + } /* Update GPU AXI cache atttribute. */ gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, @@ -1573,7 +1553,6 @@ gckHARDWARE_QueryChipIdentity( Identity->bufferSize = Hardware->identity.bufferSize; Identity->varyingsCount = Hardware->identity.varyingsCount; Identity->superTileMode = Hardware->identity.superTileMode; - Identity->chip2DControl = Hardware->identity.chip2DControl; /* Success. */ gcmkFOOTER_NO(); diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver.h index 8397f89cb078..ea86349dcf97 100644 --- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver.h +++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver.h @@ -257,9 +257,6 @@ typedef struct _gcsHAL_QUERY_CHIP_IDENTITY /* Supertile layout style in hardware */ gctUINT32 superTileMode; - - /* Special control bits for 2D chip. */ - gctUINT32 chip2DControl; } gcsHAL_QUERY_CHIP_IDENTITY; -- cgit v1.2.3