summaryrefslogtreecommitdiff
path: root/drivers/mxc/gpu-viv/arch
diff options
context:
space:
mode:
authorLoren Huang <b02279@freescale.com>2014-04-04 13:26:22 +0800
committerLoren Huang <b02279@freescale.com>2014-04-04 13:26:22 +0800
commit232293e0abb46639e188ab9d8643f1dbf94534f6 (patch)
tree3a51e38edab97c55aeeae0c8e85d74dd853cb5f1 /drivers/mxc/gpu-viv/arch
parent2917061c498a97e3c3b99ac616b6f3202f8a0499 (diff)
ENGR00306992 Revert "ENGR00302036-3 gpu:gpu2d may cause bus hang in some corner case"rel_imx_3.10.17_1.0.0_ga3.10-imx6-3.10.17-1.0.0-ts1
This reverts commit 563931094bf096da2ce6f2cc40387f9e726b3342. That patch causes wrong blitting and will block GA release Date: Apr 04, 2014 Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Shawn Guo
Diffstat (limited to 'drivers/mxc/gpu-viv/arch')
-rw-r--r--drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c61
1 files changed, 20 insertions, 41 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();