]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
ENGR00306992 Revert "ENGR00302036-3 gpu:gpu2d may cause bus hang in some corner case"
authorLoren Huang <b02279@freescale.com>
Fri, 4 Apr 2014 05:26:22 +0000 (13:26 +0800)
committerLothar Waßmann <LW@KARO-electronics.de>
Wed, 20 Aug 2014 08:07:00 +0000 (10:07 +0200)
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
drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c
drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver.h

index 60adbfe06cecc90026be8676e3ac1f29e4a6128c..e8ad2ea3e0318624140abafbc852ef640999127d 100644 (file)
@@ -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();
index 8397f89cb07832e4b86630a175463594e20d8d5e..ea86349dcf97f1f5014c1d75cda5541fa4611168 100644 (file)
@@ -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;