]> git.pld-linux.org Git - packages/X11.git/commitdiff
- should fix i810 sig 11 errors
authorhavner <havner@pld-linux.org>
Mon, 6 Dec 2004 13:26:50 +0000 (13:26 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
  https://bugs.freedesktop.org/attachment.cgi?id=1075

Changed files:
    p_i810-accel.diff -> 1.1

p_i810-accel.diff [new file with mode: 0644]

diff --git a/p_i810-accel.diff b/p_i810-accel.diff
new file mode 100644 (file)
index 0000000..b9578ed
--- /dev/null
@@ -0,0 +1,361 @@
+diff -ur programs/Xserver/hw/xfree86/drivers/i810_old/common.h programs/Xserver/hw/xfree86/drivers/i810/common.h
+--- programs/Xserver/hw/xfree86/drivers/i810_old/common.h      2004-09-29 16:03:59.645813735 +0200
++++ programs/Xserver/hw/xfree86/drivers/i810/common.h  2004-09-29 16:04:13.974719718 +0200
+@@ -173,7 +173,7 @@
+ #define BEGIN_LP_RING(n)                                              \
+    unsigned int outring, ringmask;                                    \
+    volatile unsigned char *virt;                                      \
+-   unsigned int needed;                                                       \
++   int needed;                                                        \
+    if ((n) & 1)                                                               \
+       ErrorF("BEGIN_LP_RING called with odd argument: %d\n", n);      \
+    if ((n) > 2 && (I810_DEBUG&DEBUG_ALWAYS_SYNC))                     \
+@@ -206,7 +206,7 @@
+ #define BEGIN_LP_RING(n)                                              \
+    unsigned int outring, ringmask;                                    \
+    volatile unsigned char *virt;                                      \
+-   unsigned int needed;                                                       \
++   int needed;                                                                \
+    if ((n) & 1)                                                               \
+       ErrorF("BEGIN_LP_RING called with odd argument: %d\n", n);      \
+    if ((n) > 2 && (I810_DEBUG&DEBUG_ALWAYS_SYNC))                     \
+diff -ur programs/Xserver/hw/xfree86/drivers/i810_old/i810.h programs/Xserver/hw/xfree86/drivers/i810/i810.h
+--- programs/Xserver/hw/xfree86/drivers/i810_old/i810.h        2004-09-29 16:03:59.639814611 +0200
++++ programs/Xserver/hw/xfree86/drivers/i810/i810.h    2004-09-29 16:04:13.974719718 +0200
+@@ -172,7 +172,7 @@
+    unsigned long OverlayPhysical;
+    unsigned long OverlayStart;
+    int colorKey;
+-   int surfaceAllocation[I810_TOTAL_SURFACES];
++   unsigned int surfaceAllocation[I810_TOTAL_SURFACES];
+    int numSurfaces;
+    DGAModePtr DGAModes;
+@@ -295,9 +295,10 @@
+ extern void I810Sync(ScrnInfoPtr pScrn);
+ extern unsigned long I810LocalToPhysical(ScrnInfoPtr pScrn,
+                                        unsigned long local);
+-extern int I810AllocLow(I810MemRange * result, I810MemRange * pool, int size);
++extern int I810AllocLow(I810MemRange * result, I810MemRange * pool, 
++                      int size);
+ extern int I810AllocHigh(I810MemRange * result, I810MemRange * pool,
+-                       int size);
++                      int size);
+ extern Bool I810AllocateFront(ScrnInfoPtr pScrn);
+ extern int I810AllocateGARTMemory(ScrnInfoPtr pScrn);
+diff -ur programs/Xserver/hw/xfree86/drivers/i810_old/i810_accel.c programs/Xserver/hw/xfree86/drivers/i810/i810_accel.c
+--- programs/Xserver/hw/xfree86/drivers/i810_old/i810_accel.c  2004-09-29 16:03:59.612818556 +0200
++++ programs/Xserver/hw/xfree86/drivers/i810/i810_accel.c      2004-09-29 16:04:13.975719572 +0200
+@@ -259,7 +259,7 @@
+ #ifdef XF86DRI
+    /* VT switching tries to do this.  
+     */
+-   if (!pI810->LockHeld && pI810->directRenderingEnabled) {
++   if ((!pI810->LockHeld && pI810->directRenderingEnabled) || !pScrn->vtSema) {
+       return;
+    }
+ #endif
+diff -ur programs/Xserver/hw/xfree86/drivers/i810_old/i810_dri.c programs/Xserver/hw/xfree86/drivers/i810/i810_dri.c
+--- programs/Xserver/hw/xfree86/drivers/i810_old/i810_dri.c    2004-09-29 16:03:59.671809935 +0200
++++ programs/Xserver/hw/xfree86/drivers/i810/i810_dri.c        2004-09-29 16:04:13.977719280 +0200
+@@ -290,7 +290,7 @@
+    unsigned long dcacheHandle;
+    int sysmem_size = 0;
+    int back_size = 0;
+-   int pitch_idx = 0;
++   unsigned int pitch_idx = 0;
+    int bufs;
+    int width = pScrn->displayWidth * pI810->cpp;
+    int i;
+diff -ur programs/Xserver/hw/xfree86/drivers/i810_old/i810_driver.c programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c
+--- programs/Xserver/hw/xfree86/drivers/i810_old/i810_driver.c 2004-09-29 16:03:59.553827177 +0200
++++ programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c     2004-09-29 16:04:13.979718988 +0200
+@@ -1124,14 +1124,6 @@
+    xf86SetOperatingState(resVgaIo, pI810->pEnt->index, ResUnusedOpr);
+    xf86SetOperatingState(resVgaMem, pI810->pEnt->index, ResDisableOpr);
+-   pI810->LpRing = xalloc(sizeof(I810RingBuffer));
+-   if (!pI810->LpRing) {
+-     xf86DrvMsg(pScrn->scrnIndex, X_ERROR, 
+-              "Could not allocate lpring data structure.\n");
+-     I810FreeRec(pScrn);
+-     return FALSE;
+-   }
+-   
+    return TRUE;
+ }
+@@ -1159,7 +1151,7 @@
+ I810MapMem(ScrnInfoPtr pScrn)
+ {
+    I810Ptr pI810 = I810PTR(pScrn);
+-   unsigned i;
++   long i;
+    for (i = 2; i < pI810->FbMapSize; i <<= 1) ;
+    pI810->FbMapSize = i;
+@@ -2074,6 +2066,13 @@
+    pI810 = I810PTR(pScrn);
+    hwp = VGAHWPTR(pScrn);
++   pI810->LpRing = xcalloc(sizeof(I810RingBuffer),1);
++   if (!pI810->LpRing) {
++     xf86DrvMsg(pScrn->scrnIndex, X_ERROR, 
++              "Could not allocate lpring data structure.\n");
++     return FALSE;
++   }
++   
+    miClearVisualTypes();
+    /* Re-implemented Direct Color support, -jens */
+diff -ur programs/Xserver/hw/xfree86/drivers/i810_old/i810_memory.c programs/Xserver/hw/xfree86/drivers/i810/i810_memory.c
+--- programs/Xserver/hw/xfree86/drivers/i810_old/i810_memory.c 2004-09-29 16:03:59.659811689 +0200
++++ programs/Xserver/hw/xfree86/drivers/i810/i810_memory.c     2004-09-29 16:04:13.980718842 +0200
+@@ -55,7 +55,7 @@
+ int
+ I810AllocLow(I810MemRange * result, I810MemRange * pool, int size)
+ {
+-   if (size > pool->Size)
++   if (size > (long)pool->Size)
+       return 0;
+    pool->Size -= size;
+@@ -69,7 +69,7 @@
+ int
+ I810AllocHigh(I810MemRange * result, I810MemRange * pool, int size)
+ {
+-   if (size > pool->Size)
++   if (size > (long)pool->Size)
+       return 0;
+    pool->Size -= size;
+diff -ur programs/Xserver/hw/xfree86/drivers/i810_old/i810_reg.h programs/Xserver/hw/xfree86/drivers/i810/i810_reg.h
+--- programs/Xserver/hw/xfree86/drivers/i810_old/i810_reg.h    2004-09-29 16:03:59.736800438 +0200
++++ programs/Xserver/hw/xfree86/drivers/i810/i810_reg.h        2004-09-29 16:04:13.981718696 +0200
+@@ -459,11 +459,11 @@
+ #define I830_HEAD_MASK      0x001FFFFC
+ #define RING_START     0x08
+-#define START_ADDR          0x00FFFFF8
++#define START_ADDR          0x03FFFFF8
+ #define I830_RING_START_MASK  0xFFFFF000
+ #define RING_LEN       0x0C
+-#define RING_NR_PAGES       0x000FF000 
++#define RING_NR_PAGES       0x001FF000 
+ #define I830_RING_NR_PAGES    0x001FF000
+ #define RING_REPORT_MASK    0x00000006
+ #define RING_REPORT_64K     0x00000002
+diff -ur programs/Xserver/hw/xfree86/drivers/i810_old/i830.h programs/Xserver/hw/xfree86/drivers/i810/i830.h
+--- programs/Xserver/hw/xfree86/drivers/i810_old/i830.h        2004-09-29 16:03:59.645813735 +0200
++++ programs/Xserver/hw/xfree86/drivers/i810/i830.h    2004-09-29 16:04:13.982718550 +0200
+@@ -180,17 +180,17 @@
+    int CacheLines;
+    /* These are set in PreInit and never changed. */
+-   unsigned long FbMapSize;
+-   unsigned long TotalVideoRam;
++   long FbMapSize;
++   long TotalVideoRam;
+    I830MemRange StolenMemory;         /* pre-allocated memory */
+-   unsigned long BIOSMemorySize;      /* min stolen pool size */
++   long BIOSMemorySize;                       /* min stolen pool size */
+    int BIOSMemSizeLoc;
+    /* These change according to what has been allocated. */
+    long FreeMemory;
+    I830MemRange MemoryAperture;
+    I830MemPool StolenPool;
+-   unsigned long allocatedMemory;
++   long allocatedMemory;
+    /* Regions allocated either from the above pools, or from agpgart. */
+    /* for single and dual head configurations */
+@@ -348,7 +348,7 @@
+    int xoffset;
+    int yoffset;
+-   int SaveGeneration;
++   unsigned int SaveGeneration;
+    Bool vbeRestoreWorkaround;
+    Bool displayInfo;
+    Bool devicePresence;
+@@ -415,7 +415,7 @@
+ extern Bool I830BindGARTMemory(ScrnInfoPtr pScrn);
+ extern Bool I830UnbindGARTMemory(ScrnInfoPtr pScrn);
+ extern unsigned long I830AllocVidMem(ScrnInfoPtr pScrn, I830MemRange *result,
+-                                   I830MemPool *pool, unsigned long size,
++                                   I830MemPool *pool, long size,
+                                    unsigned long alignment, int flags);
+ extern void I830PrintAllRegisters(I830RegPtr i830Reg);
+diff -ur programs/Xserver/hw/xfree86/drivers/i810_old/i830_driver.c programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c
+--- programs/Xserver/hw/xfree86/drivers/i810_old/i830_driver.c 2004-09-29 16:03:59.646813588 +0200
++++ programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c     2004-09-29 16:04:13.986717965 +0200
+@@ -1028,7 +1028,7 @@
+ I830MapMem(ScrnInfoPtr pScrn)
+ {
+    I830Ptr pI830 = I830PTR(pScrn);
+-   unsigned i;
++   long i;
+    for (i = 2; i < pI830->FbMapSize; i <<= 1) ;
+    pI830->FbMapSize = i;
+@@ -2909,7 +2909,7 @@
+    OUTREG(LP_RING + RING_TAIL, 0);
+    OUTREG(LP_RING + RING_HEAD, 0);
+-   if ((pI830->LpRing->mem.Start & I830_RING_START_MASK) !=
++   if ((long)(pI830->LpRing->mem.Start & I830_RING_START_MASK) !=
+        pI830->LpRing->mem.Start) {
+       xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+                "I830SetRingRegs: Ring buffer start (%lx) violates its "
+@@ -3452,7 +3452,7 @@
+          I830Ptr pI8301 = I830PTR(pI830->entityPrivate->pScrn_1);
+          temp = INREG(stridereg);
+-         if (temp / pI8301->cpp != pI830->entityPrivate->pScrn_1->displayWidth) {
++         if (temp / pI8301->cpp != (CARD32)(pI830->entityPrivate->pScrn_1->displayWidth)) {
+             xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+                   "Correcting plane %c stride (%d -> %d)\n", PIPE_NAME(pI830->pipe),
+                   (int)(temp / pI8301->cpp), pI830->entityPrivate->pScrn_1->displayWidth);
+@@ -3470,7 +3470,7 @@
+             sizereg = pI830->pipe ? DSPASIZE : DSPBSIZE;
+             temp = INREG(stridereg);
+-            if (temp / pI8302->cpp != pI830->entityPrivate->pScrn_2->displayWidth) {
++            if (temp / pI8302->cpp != (CARD32)(pI830->entityPrivate->pScrn_2->displayWidth)) {
+              xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+                   "Correcting plane %c stride (%d -> %d)\n", PIPE_NAME(!pI830->pipe),
+                   (int)(temp / pI8302->cpp), pI830->entityPrivate->pScrn_2->displayWidth);
+@@ -3489,7 +3489,7 @@
+          I830Ptr pI8302 = I830PTR(pI830->entityPrivate->pScrn_2);
+          temp = INREG(stridereg);
+-         if (temp / pI8301->cpp != pI830->entityPrivate->pScrn_1->displayWidth) {
++         if (temp / pI8301->cpp != (CARD32)(pI830->entityPrivate->pScrn_1->displayWidth)) {
+           xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+                   "Correcting plane %c stride (%d -> %d)\n", PIPE_NAME(pI830->pipe),
+                   (int)(temp / pI8301->cpp), pI830->entityPrivate->pScrn_1->displayWidth);
+@@ -3505,7 +3505,7 @@
+          sizereg = !pI830->pipe ? DSPASIZE : DSPBSIZE;
+          temp = INREG(stridereg);
+-         if (temp / pI8302->cpp != pI830->entityPrivate->pScrn_2->displayWidth) {
++         if (temp / pI8302->cpp != ((CARD32)pI830->entityPrivate->pScrn_2->displayWidth)) {
+           xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+                   "Correcting plane %c stride (%d -> %d)\n", PIPE_NAME(!pI830->pipe),
+                   (int)(temp / pI8302->cpp), pI830->entityPrivate->pScrn_2->displayWidth);
+@@ -3526,7 +3526,7 @@
+           continue;
+          temp = INREG(stridereg);
+-         if (temp / pI830->cpp != pScrn->displayWidth) {
++         if (temp / pI830->cpp != (CARD32)pScrn->displayWidth) {
+           xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+                   "Correcting plane %c stride (%d -> %d)\n", PIPE_NAME(i),
+                   (int)(temp / pI830->cpp), pScrn->displayWidth);
+@@ -4527,7 +4527,8 @@
+    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+    I830Ptr pI830 = I830PTR(pScrn);
+    Bool on = xf86IsUnblank(mode);
+-   CARD32 temp, ctrl, base, i;
++   CARD32 temp, ctrl, base;
++   int i;
+    DPRINTF(PFX, "I830BIOSSaveScreen: %d, on is %s\n", mode, BOOLTOSTRING(on));
+Only in programs/Xserver/hw/xfree86/drivers/i810: i830_driver.c.orig
+diff -ur programs/Xserver/hw/xfree86/drivers/i810_old/i830_memory.c programs/Xserver/hw/xfree86/drivers/i810/i830_memory.c
+--- programs/Xserver/hw/xfree86/drivers/i810_old/i830_memory.c 2004-09-29 16:03:59.547828054 +0200
++++ programs/Xserver/hw/xfree86/drivers/i810/i830_memory.c     2004-09-29 16:04:13.988717673 +0200
+@@ -63,10 +63,10 @@
+  */
+ static unsigned long
+ AllocFromPool(ScrnInfoPtr pScrn, I830MemRange *result, I830MemPool *pool,
+-            unsigned long size, unsigned long alignment, int flags)
++            long size, unsigned long alignment, int flags)
+ {
+    I830Ptr pI830 = I830PTR(pScrn);
+-   unsigned long needed, start, end;
++   long needed, start, end;
+    Bool dryrun = ((flags & ALLOCATE_DRY_RUN) != 0);
+    if (!result || !pool || !size)
+@@ -94,7 +94,7 @@
+       }
+    }
+    if (needed > pool->Free.Size) {
+-      unsigned long extra;
++      long extra;
+       /* See if the pool can be grown. */
+       if (pI830->StolenOnly && !dryrun)
+        return 0;
+@@ -107,7 +107,7 @@
+           return 0;
+       }
+-      if (!dryrun && (extra > pI830->MemoryAperture.Size))
++      if (!dryrun && ((long)extra > pI830->MemoryAperture.Size))
+        return 0;
+       pool->Free.Size += extra;
+@@ -136,7 +136,7 @@
+ }
+ static unsigned long
+-AllocFromAGP(ScrnInfoPtr pScrn, I830MemRange *result, unsigned long size,
++AllocFromAGP(ScrnInfoPtr pScrn, I830MemRange *result, long size,
+            unsigned long alignment, int flags)
+ {
+    I830Ptr pI830 = I830PTR(pScrn);
+@@ -212,7 +212,7 @@
+ unsigned long
+ I830AllocVidMem(ScrnInfoPtr pScrn, I830MemRange *result, I830MemPool *pool,
+-              unsigned long size, unsigned long alignment, int flags)
++              long size, unsigned long alignment, int flags)
+ {
+    I830Ptr pI830 = I830PTR(pScrn);
+    Bool dryrun = ((flags & ALLOCATE_DRY_RUN) != 0);
+@@ -392,7 +392,7 @@
+ I830Allocate2DMemory(ScrnInfoPtr pScrn, const int flags)
+ {
+    I830Ptr pI830 = I830PTR(pScrn);
+-   unsigned long size, alloced;
++   long size, alloced;
+    Bool dryrun = ((flags & ALLOCATE_DRY_RUN) != 0);
+    int verbosity = dryrun ? 4 : 1;
+    const char *s = dryrun ? "[dryrun] " : "";
+@@ -610,9 +610,9 @@
+        return FALSE;
+       }
+    } else {
+-      unsigned long lineSize;
+-      unsigned long extra = 0;
+-      unsigned long maxFb = 0;
++      long lineSize;
++      long extra = 0;
++      long maxFb = 0;
+       /*
+        * XXX Need to "free" up any 3D allocations if the DRI ended up
+@@ -857,7 +857,7 @@
+ I830GetExcessMemoryAllocations(ScrnInfoPtr pScrn)
+ {
+    I830Ptr pI830 = I830PTR(pScrn);
+-   unsigned long allocated;
++   long allocated;
+    allocated = pI830->StolenPool.Total.Size + pI830->allocatedMemory;
+    if (allocated > pI830->TotalVideoRam)
+@@ -1367,7 +1367,7 @@
+    I830Ptr pI830 = I830PTR(pScrn);
+    int pitch, ntiles, i;
+    static int nextTile = 0;
+-   static int tileGeneration = -1;
++   static unsigned int tileGeneration = -1;
+ #if 0
+    /* Hack to "improve" the alignment of the front buffer.
This page took 0.048052 seconds and 4 git commands to generate.