rpms/xorg-x11-drv-savage/F-9 savage-2.2.0-exa-and-pciaccess.patch, NONE, 1.1 xorg-x11-drv-savage.spec, 1.26, 1.27

Dave Airlie (airlied) fedora-extras-commits at redhat.com
Sat May 10 05:10:22 UTC 2008


Author: airlied

Update of /cvs/pkgs/rpms/xorg-x11-drv-savage/F-9
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv7092

Modified Files:
	xorg-x11-drv-savage.spec 
Added Files:
	savage-2.2.0-exa-and-pciaccess.patch 
Log Message:
* Sat May 10 2008 Dave Airlie <airlied at redhat.com> 2.2.0-2
- Fix aperture mapping issue (#426994)
- fix EXA bug from upstream


savage-2.2.0-exa-and-pciaccess.patch:

--- NEW FILE savage-2.2.0-exa-and-pciaccess.patch ---
diff --git a/src/savage_driver.c b/src/savage_driver.c
index eb06519..2205dc8 100644
--- a/src/savage_driver.c
+++ b/src/savage_driver.c
@@ -3097,10 +3097,16 @@ static Bool SavageMapMem(ScrnInfoPtr pScrn)
     /* On Paramount and Savage 2000, aperture 0 is PCI base 2.  On other
      * chipsets it's in the same BAR as the framebuffer.
      */
+
+    psav->ApertureRegion.size = (psav->IsPrimary || psav->IsSecondary)
+        ? (0x01000000 * 2) : (0x01000000 * 5);
+
     if ((psav->Chipset == S3_SUPERSAVAGE) 
         || (psav->Chipset == S3_SAVAGE2000)) {
 #ifdef XSERVER_LIBPCIACCESS
         psav->ApertureRegion.base = psav->PciInfo->regions[2].base_addr;
+        if (psav->ApertureRegion.size > psav->PciInfo->regions[2].size)
+            psav->ApertureRegion.size = psav->PciInfo->regions[2].size;
 #else
         psav->ApertureRegion.base = psav->PciInfo->memBase[2];
 #endif
@@ -3108,8 +3114,6 @@ static Bool SavageMapMem(ScrnInfoPtr pScrn)
         psav->ApertureRegion.base = psav->FbRegion.base + 0x02000000;
     }
 
-    psav->ApertureRegion.size = (psav->IsPrimary || psav->IsSecondary)
-        ? (0x01000000 * 2) : (0x01000000 * 5);
 
 
     if (psav->FbRegion.size != 0) {
@@ -3128,7 +3132,7 @@ static Bool SavageMapMem(ScrnInfoPtr pScrn)
 #endif
         if (err) {
             xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
-                       "Internal error: cound not map framebuffer range (%d, %s).\n",
+                       "Internal error: could not map framebuffer range (%d, %s).\n",
                        err, strerror(err));
             return FALSE;
         }
@@ -3154,7 +3158,7 @@ static Bool SavageMapMem(ScrnInfoPtr pScrn)
 #endif
         if (err) {
             xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
-                       "Internal error: cound not map aperture range (%d, %s).\n",
+                       "Internal error: could not map aperture range (%d, %s).\n",
                        err, strerror(err));
             return FALSE;
         }
@@ -3179,7 +3183,7 @@ static Bool SavageMapMem(ScrnInfoPtr pScrn)
 #endif
         if (err) {
             xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
-                       "Internal error: cound not map MMIO range (%d, %s).\n",
+                       "Internal error: could not map MMIO range (%d, %s).\n",
                        err, strerror(err));
             return FALSE;
         }
diff --git a/src/savage_exa.c b/src/savage_exa.c
index aa6905a..6320e18 100644
--- a/src/savage_exa.c
+++ b/src/savage_exa.c
@@ -460,7 +460,6 @@ SavageUploadToScreen(PixmapPtr pDst, int x, int y, int w, int h, char *src, int
     CARD32 * srcp; 
     
     Bpp = pDst->drawable.bitsPerPixel / 8;
-    dwords = (((w * Bpp) + 3) >> 2) * h;
 
     psav->sbd_offset = exaGetPixmapOffset(pDst);
     psav->sbd_high = SavageSetBD(psav, pDst);
@@ -486,17 +485,19 @@ SavageUploadToScreen(PixmapPtr pDst, int x, int y, int w, int h, char *src, int
     BCI_SEND(BCI_X_Y(x, y));
     BCI_SEND(BCI_W_H(w, h));
     
-    srcp = (CARD32 *)src;
     queue = 120 * 1024;
-    while (dwords) {
-	if (queue < 4) {
-	    BCI_RESET;
-	    queue = 120 * 1024;
+    dwords = (((w * Bpp) + 3) >> 2);
+    for (i = 0; i < h; i++) {
+	srcp = (CARD32 *)src;
+	for (j = 0; j < dwords; j++) {
+	    if (queue < 4) {
+		BCI_RESET;
+		queue = 120 * 1024;
+	    }
+	    BCI_SEND(*srcp++);
+	    queue -= 4;
 	}
-	BCI_SEND(*srcp);
-	queue -= 4;
-	dwords--;
-	srcp++;
+	src += src_pitch;
     }
 
     /*exaWaitSync(pDst->drawable.pScreen);*/


Index: xorg-x11-drv-savage.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-savage/F-9/xorg-x11-drv-savage.spec,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- xorg-x11-drv-savage.spec	20 Mar 2008 01:43:40 -0000	1.26
+++ xorg-x11-drv-savage.spec	10 May 2008 05:09:42 -0000	1.27
@@ -5,7 +5,7 @@
 Summary:   Xorg X11 savage video driver
 Name:      xorg-x11-drv-savage
 Version:   2.2.0
-Release:   1%{?dist}
+Release:   2%{?dist}
 URL:       http://www.x.org
 License: MIT
 Group:     User Interface/X Hardware Support
@@ -16,6 +16,7 @@
 
 Patch1:    savage-2.1.2-missing-symbol.patch
 Patch2:    savage-2.1.2-panel-range-hack.patch
+Patch3:	   savage-2.2.0-exa-and-pciaccess.patch
 
 ExcludeArch: s390 s390x
 
@@ -33,6 +34,7 @@
 %setup -q -n %{tarball}-%{version}
 %patch1 -p1 -b .missing-symbol
 %patch2 -p1 -b .range-hack
+%patch3 -p1 -b .fix-aperture
 
 %build
 %configure --disable-static --enable-dri
@@ -60,6 +62,10 @@
 %{_mandir}/man4/savage.4*
 
 %changelog
+* Sat May 10 2008 Dave Airlie <airlied at redhat.com> 2.2.0-2
+- Fix aperture mapping issue (#426994)
+- fix EXA bug from upstream
+
 * Thu Mar 20 2008 Dave Airlie <airlied at redhat.com> 2.2.0-1
 - Latest upstream release
 




More information about the fedora-extras-commits mailing list