xserver-xorg-video-cirrus: Changes to 'debian-unstable'
ChangeLog | 106 ++++++++++++++
configure.ac | 20 ++
debian/changelog | 12 +
debian/control | 4
debian/patches/10-qemu.diff | 8 -
src/CirrusClk.c | 1
src/Makefile.am | 3
src/alp.h | 2
src/alp_driver.c | 88 +++++------
src/alp_hwcurs.c | 5
src/alp_i2c.c | 1
src/alp_xaa.c | 6
src/alp_xaam.c | 9 -
src/cir.h | 9 -
src/cir_dga.c | 20 +-
src/cir_driver.c | 19 +-
src/cir_pcirename.h | 24 +++
src/cir_shadow.c | 324 ++++++++++++++++++++++++--------------------
src/compat-api.h | 99 +++++++++++++
src/lg.h | 2
src/lg_driver.c | 84 +++++------
src/lg_hwcurs.c | 5
src/lg_i2c.c | 1
src/lg_xaa.c | 7
24 files changed, 582 insertions(+), 277 deletions(-)
New commits:
commit 6cd7cef87189c744bdea4e972fb76eb89a0f9772
Author: Michele Cane <michele.cane@gmail.com>
Date: Sun Sep 8 21:28:29 2013 +0200
Bump Standards-Version to 3.9.4, no changes needed.
diff --git a/debian/changelog b/debian/changelog
index 38e9429..270bbea 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,9 +1,13 @@
xserver-xorg-video-cirrus (1:1.5.2-1) UNRELEASED; urgency=low
+ [ Maarten Lankhorst ]
* New upstream release.
* Require xserver 1.13rc1
* Refresh 10-qemu.diff
+ [ Michele Cane ]
+ * Bump Standards-Version to 3.9.4, no changes needed.
+
-- Maarten Lankhorst <maarten.lankhorst@canonical.com> Mon, 16 Jul 2012 15:30:58 +0200
xserver-xorg-video-cirrus (1:1.4.0-2) unstable; urgency=low
diff --git a/debian/control b/debian/control
index 7470065..e86ad63 100644
--- a/debian/control
+++ b/debian/control
@@ -16,7 +16,7 @@ Build-Depends:
x11proto-render-dev,
x11proto-xext-dev,
xutils-dev
-Standards-Version: 3.9.3
+Standards-Version: 3.9.4
Vcs-Git: git://git.debian.org/git/pkg-xorg/driver/xserver-xorg-video-cirrus
Vcs-Browser: http://git.debian.org/?p=pkg-xorg/driver/xserver-xorg-video-cirrus.git
commit 257211311d6f94ad50615a632ff99caccbc01bd7
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date: Tue Jan 8 11:15:51 2013 +0100
New upstream release.
diff --git a/ChangeLog b/ChangeLog
index a5d1a48..d730d78 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,47 @@
+commit e2bf5b255611de267bc1c56b2fccf51268d28f3d
+Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
+Date: Tue Jan 8 11:04:38 2013 +0100
+
+ cirrus: release 1.5.2
+
+commit bade70ce71ea26fae4f250f0bd1729dfb0d392df
+Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
+Date: Tue Jan 8 11:00:33 2013 +0100
+
+ cirrus: fix out of bounds access to shadowfb
+
+ Perform the same bounds checking other drivers do. Thanks to Dave Gilbert for feedback on this patch.
+
+ Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
+
+commit 5fcb3b018797457c3099a86c6c1257b6e4e89ceb
+Author: Adam Jackson <ajax@redhat.com>
+Date: Tue Sep 25 08:54:36 2012 -0400
+
+ Remove mibstore.h
+
+ Signed-off-by: Adam Jackson <ajax@redhat.com>
+
+commit aa9016576163b3065910437b6ea51a69f24a41ca
+Author: Dave Airlie <airlied@gmail.com>
+Date: Tue Aug 21 21:01:43 2012 +1000
+
+ cirrus: fix build against old server
+
+ Reported-by: jobermayer on irc
+ Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit bc04e9ed659be51a3c712f34a038bd60f639f9c5
+Author: Dave Airlie <airlied@redhat.com>
+Date: Mon Aug 20 13:49:19 2012 +1000
+
+ cirrus: fix falling back after kernel check
+
+ if we find a kernel driver the code leave the pci slot claimed which
+ stops us falling back. unclaim the pci slot.
+
+ Signed-off-by: Dave Airlie <airlied@redhat.com>
+
commit 129076c2a9c20ab515736bb7141b4f334699e21b
Author: Dave Airlie <airlied@redhat.com>
Date: Tue Jul 17 16:05:09 2012 +1000
diff --git a/debian/changelog b/debian/changelog
index b47b682..dee9d6b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,6 @@
-xserver-xorg-video-cirrus (1:1.5.1-1) UNRELEASED; urgency=low
+xserver-xorg-video-cirrus (1:1.5.2-1) UNRELEASED; urgency=low
- * New upstream release 1.5.1
+ * New upstream release.
* Require xserver 1.13rc1
* Refresh 10-qemu.diff
commit e2bf5b255611de267bc1c56b2fccf51268d28f3d
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date: Tue Jan 8 11:04:38 2013 +0100
cirrus: release 1.5.2
diff --git a/configure.ac b/configure.ac
index dddf9ef..0e00305 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
# Initialize Autoconf
AC_PREREQ([2.60])
AC_INIT([xf86-video-cirrus],
- [1.5.1],
+ [1.5.2],
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
[xf86-video-cirrus])
AC_CONFIG_SRCDIR([Makefile.am])
commit bade70ce71ea26fae4f250f0bd1729dfb0d392df
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date: Tue Jan 8 11:00:33 2013 +0100
cirrus: fix out of bounds access to shadowfb
Perform the same bounds checking other drivers do. Thanks to Dave Gilbert for feedback on this patch.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
diff --git a/src/cir_shadow.c b/src/cir_shadow.c
index a9b425b..6bde0fd 100644
--- a/src/cir_shadow.c
+++ b/src/cir_shadow.c
@@ -15,30 +15,41 @@
#include "cir.h"
#include "alp.h"
+#define MIN(a, b) (((a) < (b)) ? (a) : (b))
+#define MAX(a, b) (((a) > (b)) ? (a) : (b))
+
_X_EXPORT void
cirRefreshArea(ScrnInfoPtr pScrn, int num, BoxPtr pbox)
{
CirPtr pCir = CIRPTR(pScrn);
- int width, height, Bpp, FBPitch;
+ int width, height, Bpp, FBPitch, x1, x2, y1, y2;
unsigned char *src, *dst;
Bpp = pScrn->bitsPerPixel >> 3;
FBPitch = BitmapBytePad(pScrn->displayWidth * pScrn->bitsPerPixel);
while(num--) {
- width = (pbox->x2 - pbox->x1) * Bpp;
- height = pbox->y2 - pbox->y1;
- src = pCir->ShadowPtr + (pbox->y1 * pCir->ShadowPitch) +
- (pbox->x1 * Bpp);
- dst = pCir->FbBase + (pbox->y1 * FBPitch) + (pbox->x1 * Bpp);
-
- while(height--) {
- memcpy(dst, src, width);
- dst += FBPitch;
- src += pCir->ShadowPitch;
- }
-
- pbox++;
+ x1 = MAX(pbox->x1, 0);
+ y1 = MAX(pbox->y1, 0);
+ x2 = MIN(pbox->x2, pScrn->virtualX);
+ y2 = MIN(pbox->y2, pScrn->virtualY);
+
+ width = (x2 - x1) * Bpp;
+ height = y2 - y1;
+
+ if (width <= 0 || height <= 0)
+ continue;
+
+ src = pCir->ShadowPtr + (y1 * pCir->ShadowPitch) + (x1 * Bpp);
+ dst = pCir->FbBase + (y1 * FBPitch) + (x1 * Bpp);
+
+ while(height--) {
+ memcpy(dst, src, width);
+ dst += FBPitch;
+ src += pCir->ShadowPitch;
+ }
+
+ pbox++;
}
}
@@ -64,7 +75,7 @@ _X_EXPORT void
cirRefreshArea8(ScrnInfoPtr pScrn, int num, BoxPtr pbox)
{
CirPtr pCir = CIRPTR(pScrn);
- int count, width, height, y1, y2, dstPitch, srcPitch;
+ int count, width, height, x1, x2, y1, y2, dstPitch, srcPitch;
CARD8 *dstPtr, *srcPtr, *src;
CARD32 *dst;
@@ -72,36 +83,44 @@ cirRefreshArea8(ScrnInfoPtr pScrn, int num, BoxPtr pbox)
srcPitch = -pCir->rotate * pCir->ShadowPitch;
while(num--) {
- width = pbox->x2 - pbox->x1;
- y1 = pbox->y1 & ~3;
- y2 = (pbox->y2 + 3) & ~3;
- height = (y2 - y1) >> 2; /* in dwords */
-
- if(pCir->rotate == 1) {
- dstPtr = pCir->FbBase +
- (pbox->x1 * dstPitch) + pScrn->virtualX - y2;
- srcPtr = pCir->ShadowPtr + ((1 - y2) * srcPitch) + pbox->x1;
- } else {
- dstPtr = pCir->FbBase +
- ((pScrn->virtualY - pbox->x2) * dstPitch) + y1;
- srcPtr = pCir->ShadowPtr + (y1 * srcPitch) + pbox->x2 - 1;
- }
-
- while(width--) {
- src = srcPtr;
- dst = (CARD32*)dstPtr;
- count = height;
- while(count--) {
- *(dst++) = src[0] | (src[srcPitch] << 8) |
- (src[srcPitch * 2] << 16) |
- (src[srcPitch * 3] << 24);
- src += srcPitch * 4;
- }
- srcPtr += pCir->rotate;
- dstPtr += dstPitch;
- }
-
- pbox++;
+ x1 = MAX(pbox->x1, 0);
+ y1 = MAX(pbox->y1, 0);
+ x2 = MIN(pbox->x2, pScrn->virtualX);
+ y2 = MIN(pbox->y2, pScrn->virtualY);
+
+ width = x2 - x1;
+ y1 = y1 & ~3;
+ y2 = (y2 + 3) & ~3;
+ height = (y2 - y1) / 4; /* in dwords */
+
+ if (width <= 0 || height <= 0)
+ continue;
+
+ if(pCir->rotate == 1) {
+ dstPtr = pCir->FbBase +
+ (x1 * dstPitch) + pScrn->virtualX - y2;
+ srcPtr = pCir->ShadowPtr + ((1 - y2) * srcPitch) + x1;
+ } else {
+ dstPtr = pCir->FbBase +
+ ((pScrn->virtualY - x2) * dstPitch) + y1;
+ srcPtr = pCir->ShadowPtr + (y1 * srcPitch) + x2 - 1;
+ }
+
+ while(width--) {
+ src = srcPtr;
+ dst = (CARD32*)dstPtr;
+ count = height;
+ while(count--) {
+ *(dst++) = src[0] | (src[srcPitch] << 8) |
+ (src[srcPitch * 2] << 16) |
+ (src[srcPitch * 3] << 24);
+ src += srcPitch * 4;
+ }
+ srcPtr += pCir->rotate;
+ dstPtr += dstPitch;
+ }
+
+ pbox++;
}
}
@@ -110,7 +129,7 @@ _X_EXPORT void
cirRefreshArea16(ScrnInfoPtr pScrn, int num, BoxPtr pbox)
{
CirPtr pCir = CIRPTR(pScrn);
- int count, width, height, y1, y2, dstPitch, srcPitch;
+ int count, width, height, x1, x2, y1, y2, dstPitch, srcPitch;
CARD16 *dstPtr, *srcPtr, *src;
CARD32 *dst;
@@ -118,36 +137,44 @@ cirRefreshArea16(ScrnInfoPtr pScrn, int num, BoxPtr pbox)
srcPitch = -pCir->rotate * pCir->ShadowPitch >> 1;
while(num--) {
- width = pbox->x2 - pbox->x1;
- y1 = pbox->y1 & ~1;
- y2 = (pbox->y2 + 1) & ~1;
- height = (y2 - y1) >> 1; /* in dwords */
-
- if(pCir->rotate == 1) {
- dstPtr = (CARD16*)pCir->FbBase +
- (pbox->x1 * dstPitch) + pScrn->virtualX - y2;
- srcPtr = (CARD16*)pCir->ShadowPtr +
- ((1 - y2) * srcPitch) + pbox->x1;
- } else {
- dstPtr = (CARD16*)pCir->FbBase +
- ((pScrn->virtualY - pbox->x2) * dstPitch) + y1;
- srcPtr = (CARD16*)pCir->ShadowPtr +
- (y1 * srcPitch) + pbox->x2 - 1;
- }
-
- while(width--) {
- src = srcPtr;
- dst = (CARD32*)dstPtr;
- count = height;
- while(count--) {
- *(dst++) = src[0] | (src[srcPitch] << 16);
- src += srcPitch * 2;
- }
- srcPtr += pCir->rotate;
- dstPtr += dstPitch;
- }
-
- pbox++;
+ x1 = MAX(pbox->x1, 0);
+ y1 = MAX(pbox->y1, 0);
+ x2 = MIN(pbox->x2, pScrn->virtualX);
+ y2 = MIN(pbox->y2, pScrn->virtualY);
+
+ width = x2 - x1;
+ y1 = y1 & ~1;
+ y2 = (y2 + 1) & ~1;
+ height = (y2 - y1) / 2; /* in dwords */
+
+ if (width <= 0 || height <= 0)
+ continue;
+
+ if(pCir->rotate == 1) {
+ dstPtr = (CARD16*)pCir->FbBase +
+ (x1 * dstPitch) + pScrn->virtualX - y2;
+ srcPtr = (CARD16*)pCir->ShadowPtr +
+ ((1 - y2) * srcPitch) + x1;
+ } else {
+ dstPtr = (CARD16*)pCir->FbBase +
+ ((pScrn->virtualY - x2) * dstPitch) + y1;
+ srcPtr = (CARD16*)pCir->ShadowPtr +
+ (y1 * srcPitch) + x2 - 1;
+ }
+
+ while(width--) {
+ src = srcPtr;
+ dst = (CARD32*)dstPtr;
+ count = height;
+ while(count--) {
+ *(dst++) = src[0] | (src[srcPitch] << 16);
+ src += srcPitch * 2;
+ }
+ srcPtr += pCir->rotate;
+ dstPtr += dstPitch;
+ }
+
+ pbox++;
}
}
@@ -157,7 +184,7 @@ _X_EXPORT void
cirRefreshArea24(ScrnInfoPtr pScrn, int num, BoxPtr pbox)
{
CirPtr pCir = CIRPTR(pScrn);
- int count, width, height, y1, y2, dstPitch, srcPitch;
+ int count, width, height, x1, x2, y1, y2, dstPitch, srcPitch;
CARD8 *dstPtr, *srcPtr, *src;
CARD32 *dst;
@@ -165,42 +192,50 @@ cirRefreshArea24(ScrnInfoPtr pScrn, int num, BoxPtr pbox)
srcPitch = -pCir->rotate * pCir->ShadowPitch;
while(num--) {
- width = pbox->x2 - pbox->x1;
- y1 = pbox->y1 & ~3;
- y2 = (pbox->y2 + 3) & ~3;
- height = (y2 - y1) >> 2; /* blocks of 3 dwords */
-
- if(pCir->rotate == 1) {
- dstPtr = pCir->FbBase +
- (pbox->x1 * dstPitch) + ((pScrn->virtualX - y2) * 3);
- srcPtr = pCir->ShadowPtr + ((1 - y2) * srcPitch) + (pbox->x1 * 3);
- } else {
- dstPtr = pCir->FbBase +
- ((pScrn->virtualY - pbox->x2) * dstPitch) + (y1 * 3);
- srcPtr = pCir->ShadowPtr + (y1 * srcPitch) + (pbox->x2 * 3) - 3;
- }
-
- while(width--) {
- src = srcPtr;
- dst = (CARD32*)dstPtr;
- count = height;
- while(count--) {
- dst[0] = src[0] | (src[1] << 8) | (src[2] << 16) |
+ x1 = MAX(pbox->x1, 0);
+ y1 = MAX(pbox->y1, 0);
+ x2 = MIN(pbox->x2, pScrn->virtualX);
+ y2 = MIN(pbox->y2, pScrn->virtualY);
+
+ width = x2 - x1;
+ y1 = y1 & ~3;
+ y2 = (y2 + 3) & ~3;
+ height = (y2 - y1) / 4; /* blocks of 3 dwords */
+
+ if (width <= 0 || height <= 0)
+ continue;
+
+ if(pCir->rotate == 1) {
+ dstPtr = pCir->FbBase +
+ (x1 * dstPitch) + ((pScrn->virtualX - y2) * 3);
+ srcPtr = pCir->ShadowPtr + ((1 - y2) * srcPitch) + (x1 * 3);
+ } else {
+ dstPtr = pCir->FbBase +
+ ((pScrn->virtualY - x2) * dstPitch) + (y1 * 3);
+ srcPtr = pCir->ShadowPtr + (y1 * srcPitch) + (x2 * 3) - 3;
+ }
+
+ while(width--) {
+ src = srcPtr;
+ dst = (CARD32*)dstPtr;
+ count = height;
+ while(count--) {
+ dst[0] = src[0] | (src[1] << 8) | (src[2] << 16) |
(src[srcPitch] << 24);
- dst[1] = src[srcPitch + 1] | (src[srcPitch + 2] << 8) |
+ dst[1] = src[srcPitch + 1] | (src[srcPitch + 2] << 8) |
(src[srcPitch * 2] << 16) |
(src[(srcPitch * 2) + 1] << 24);
- dst[2] = src[(srcPitch * 2) + 2] | (src[srcPitch * 3] << 8) |
+ dst[2] = src[(srcPitch * 2) + 2] | (src[srcPitch * 3] << 8) |
(src[(srcPitch * 3) + 1] << 16) |
(src[(srcPitch * 3) + 2] << 24);
- dst += 3;
- src += srcPitch * 4;
- }
- srcPtr += pCir->rotate * 3;
- dstPtr += dstPitch;
- }
-
- pbox++;
+ dst += 3;
+ src += srcPitch * 4;
+ }
+ srcPtr += pCir->rotate * 3;
+ dstPtr += dstPitch;
+ }
+
+ pbox++;
}
}
@@ -208,41 +243,49 @@ _X_EXPORT void
cirRefreshArea32(ScrnInfoPtr pScrn, int num, BoxPtr pbox)
{
CirPtr pCir = CIRPTR(pScrn);
- int count, width, height, dstPitch, srcPitch;
+ int count, width, height, x1, x2, y1, y2, dstPitch, srcPitch;
CARD32 *dstPtr, *srcPtr, *src, *dst;
dstPitch = pScrn->displayWidth;
srcPitch = -pCir->rotate * pCir->ShadowPitch >> 2;
while(num--) {
- width = pbox->x2 - pbox->x1;
- height = pbox->y2 - pbox->y1;
-
- if(pCir->rotate == 1) {
- dstPtr = (CARD32*)pCir->FbBase +
- (pbox->x1 * dstPitch) + pScrn->virtualX - pbox->y2;
- srcPtr = (CARD32*)pCir->ShadowPtr +
- ((1 - pbox->y2) * srcPitch) + pbox->x1;
- } else {
- dstPtr = (CARD32*)pCir->FbBase +
- ((pScrn->virtualY - pbox->x2) * dstPitch) + pbox->y1;
- srcPtr = (CARD32*)pCir->ShadowPtr +
- (pbox->y1 * srcPitch) + pbox->x2 - 1;
- }
-
- while(width--) {
- src = srcPtr;
- dst = dstPtr;
- count = height;
- while(count--) {
- *(dst++) = *src;
- src += srcPitch;
- }
- srcPtr += pCir->rotate;
- dstPtr += dstPitch;
- }
-
- pbox++;
+ x1 = MAX(pbox->x1, 0);
+ y1 = MAX(pbox->y1, 0);
+ x2 = MIN(pbox->x2, pScrn->virtualX);
+ y2 = MIN(pbox->y2, pScrn->virtualY);
+
+ width = x2 - x1;
+ height = y2 - y1;
+
+ if (width <= 0 || height <= 0)
+ continue;
+
+ if(pCir->rotate == 1) {
+ dstPtr = (CARD32*)pCir->FbBase +
+ (x1 * dstPitch) + pScrn->virtualX - y2;
+ srcPtr = (CARD32*)pCir->ShadowPtr +
+ ((1 - y2) * srcPitch) + x1;
+ } else {
+ dstPtr = (CARD32*)pCir->FbBase +
+ ((pScrn->virtualY - x2) * dstPitch) + y1;
+ srcPtr = (CARD32*)pCir->ShadowPtr +
+ (y1 * srcPitch) + x2 - 1;
+ }
+
+ while(width--) {
+ src = srcPtr;
+ dst = dstPtr;
+ count = height;
+ while(count--) {
+ *(dst++) = *src;
+ src += srcPitch;
+ }
+ srcPtr += pCir->rotate;
+ dstPtr += dstPitch;
+ }
+
+ pbox++;
}
}
commit 5fcb3b018797457c3099a86c6c1257b6e4e89ceb
Author: Adam Jackson <ajax@redhat.com>
Date: Tue Sep 25 08:54:36 2012 -0400
Remove mibstore.h
Signed-off-by: Adam Jackson <ajax@redhat.com>
diff --git a/src/alp_driver.c b/src/alp_driver.c
index e38c613..36f2039 100644
--- a/src/alp_driver.c
+++ b/src/alp_driver.c
@@ -39,9 +39,6 @@
/* All drivers initialising the SW cursor need this */
#include "mipointer.h"
-/* All drivers implementing backing store need this */
-#include "mibstore.h"
-
#include "micmap.h"
/* Needed by the Shadow Framebuffer */
@@ -1617,8 +1614,6 @@ AlpScreenInit(SCREEN_INIT_ARGS_DECL)
if (init_picture)
fbPictureInit (pScreen, 0, 0);
- miInitializeBackingStore(pScreen);
-
/*
* Set initial black & white colourmap indices.
*/
diff --git a/src/lg_driver.c b/src/lg_driver.c
index 13f222d..c20bbd0 100644
--- a/src/lg_driver.c
+++ b/src/lg_driver.c
@@ -46,9 +46,6 @@
/* need this for inputInfo */
#include "inputstr.h"
-/* All drivers implementing backing store need this */
-#include "mibstore.h"
-
#include "micmap.h"
/* Needed by the Shadow Framebuffer */
@@ -1373,8 +1370,6 @@ LgScreenInit(SCREEN_INIT_ARGS_DECL)
fbPictureInit(pScreen, 0, 0);
- miInitializeBackingStore(pScreen);
-
/*
* Set initial black & white colourmap indices.
*/
commit aa9016576163b3065910437b6ea51a69f24a41ca
Author: Dave Airlie <airlied@gmail.com>
Date: Tue Aug 21 21:01:43 2012 +1000
cirrus: fix build against old server
Reported-by: jobermayer on irc
Signed-off-by: Dave Airlie <airlied@redhat.com>
diff --git a/src/cir_driver.c b/src/cir_driver.c
index c8d5aae..2df4a2e 100644
--- a/src/cir_driver.c
+++ b/src/cir_driver.c
@@ -258,7 +258,11 @@ CIRProbe(DriverPtr drv, int flags)
pPci->device_id, pPci->bus, pPci->domain, pPci->dev, pPci->func);
xf86DrvMsg(0, X_ERROR,
"cirrus: This driver cannot operate until it has been unloaded.\n");
+#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 13
+ xf86UnclaimPciSlot(pPci);
+#else
xf86UnclaimPciSlot(pPci, devSections[0]);
+#endif
free(devSections);
return FALSE;
}
commit bc04e9ed659be51a3c712f34a038bd60f639f9c5
Author: Dave Airlie <airlied@redhat.com>
Date: Mon Aug 20 13:49:19 2012 +1000
cirrus: fix falling back after kernel check
if we find a kernel driver the code leave the pci slot claimed which
stops us falling back. unclaim the pci slot.
Signed-off-by: Dave Airlie <airlied@redhat.com>
diff --git a/src/cir_driver.c b/src/cir_driver.c
index 5468b6b..c8d5aae 100644
--- a/src/cir_driver.c
+++ b/src/cir_driver.c
@@ -237,9 +237,10 @@ CIRProbe(DriverPtr drv, int flags)
CIRChipsets, CIRPciChipsets, devSections,
numDevSections, drv, &usedChips);
/* Free it since we don't need that list after this */
- free(devSections);
- if (numUsed <= 0)
+ if (numUsed <= 0) {
+ free(devSections);
return FALSE;
+ }
if (flags & PROBE_DETECT)
foundScreen = TRUE;
else for (i = 0; i < numUsed; i++) {
@@ -257,6 +258,8 @@ CIRProbe(DriverPtr drv, int flags)
pPci->device_id, pPci->bus, pPci->domain, pPci->dev, pPci->func);
xf86DrvMsg(0, X_ERROR,
"cirrus: This driver cannot operate until it has been unloaded.\n");
+ xf86UnclaimPciSlot(pPci, devSections[0]);
+ free(devSections);
return FALSE;
}
#endif
@@ -290,6 +293,7 @@ CIRProbe(DriverPtr drv, int flags)
pScrn->Probe = NULL;
}
}
+ free(devSections);
free(usedChips);
return foundScreen;
commit 793c8649e5ce47298e3c488a85674328aac865db
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date: Wed Jul 25 09:09:43 2012 +0200
Bump changelog
diff --git a/ChangeLog b/ChangeLog
index d10418a..a5d1a48 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+commit 129076c2a9c20ab515736bb7141b4f334699e21b
+Author: Dave Airlie <airlied@redhat.com>
+Date: Tue Jul 17 16:05:09 2012 +1000
+
+ xf86-video-cirrus: bump to version 1.5.1
+
+ Signed-off-by: Dave Airlie <airlied@redhat.com>
+
commit e443ede15981549ff5f6b01f42c3cb8dc909d778
Author: Dave Airlie <airlied@gmail.com>
Date: Fri Jul 13 14:47:40 2012 +1000
commit 8fc560784e21fdb773c3e21d7b732dff76f29256
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date: Wed Jul 25 09:07:48 2012 +0200
New upstream release 1.5.1
diff --git a/debian/changelog b/debian/changelog
index 363ed16..b47b682 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,6 @@
-xserver-xorg-video-cirrus (1:1.5.99~somegit) UNRELEASED; urgency=low
+xserver-xorg-video-cirrus (1:1.5.1-1) UNRELEASED; urgency=low
- * New upstream release 1.5.0
+ * New upstream release 1.5.1
* Require xserver 1.13rc1
* Refresh 10-qemu.diff
diff --git a/debian/control b/debian/control
index cf053c5..7470065 100644
--- a/debian/control
+++ b/debian/control
@@ -16,7 +16,7 @@ Build-Depends:
x11proto-render-dev,
x11proto-xext-dev,
xutils-dev
-Standards-Version: 3.9.1
+Standards-Version: 3.9.3
Vcs-Git: git://git.debian.org/git/pkg-xorg/driver/xserver-xorg-video-cirrus
Vcs-Browser: http://git.debian.org/?p=pkg-xorg/driver/xserver-xorg-video-cirrus.git
commit 129076c2a9c20ab515736bb7141b4f334699e21b
Author: Dave Airlie <airlied@redhat.com>
Date: Tue Jul 17 16:05:09 2012 +1000
xf86-video-cirrus: bump to version 1.5.1
Signed-off-by: Dave Airlie <airlied@redhat.com>
diff --git a/configure.ac b/configure.ac
index 1157ab1..dddf9ef 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
# Initialize Autoconf
AC_PREREQ([2.60])
AC_INIT([xf86-video-cirrus],
- [1.5.0],
+ [1.5.1],
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
[xf86-video-cirrus])
AC_CONFIG_SRCDIR([Makefile.am])
commit a3c79a44c306eb55c77fe227c04f2f133fd73215
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date: Mon Jul 16 15:38:46 2012 +0200
Refresh 10-qemu.diff
diff --git a/debian/changelog b/debian/changelog
index e08d0f2..363ed16 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,7 @@ xserver-xorg-video-cirrus (1:1.5.99~somegit) UNRELEASED; urgency=low
* New upstream release 1.5.0
* Require xserver 1.13rc1
+ * Refresh 10-qemu.diff
-- Maarten Lankhorst <maarten.lankhorst@canonical.com> Mon, 16 Jul 2012 15:30:58 +0200
diff --git a/debian/patches/10-qemu.diff b/debian/patches/10-qemu.diff
index 4a5532d..7089205 100644
--- a/debian/patches/10-qemu.diff
+++ b/debian/patches/10-qemu.diff
@@ -5,10 +5,11 @@ Stolen from Fedora.
Pointed out by Guido Günther <agx@sigxcpu.org> in #586693.
--- a/src/alp_driver.c
+++ b/src/alp_driver.c
-@@ -734,6 +734,20 @@ AlpPreInit(ScrnInfoPtr pScrn, int flags)
+@@ -775,7 +775,21 @@
else
xf86SetDDCproperties(pScrn,xf86PrintEDID(
- xf86DoEDID_DDC2(pScrn->scrnIndex,pCir->I2CPtr1)));
+ xf86DoEDID_DDC2(XF86_SCRN_ARG(pScrn),pCir->I2CPtr1)));
+-
+#ifdef XSERVER_LIBPCIACCESS
+ if (!pScrn->monitor->DDC &&
+ ((pCir->PciInfo->subvendor_id & 0xffff) == 0x1af4)) {
@@ -23,6 +24,7 @@ Pointed out by Guido Günther <agx@sigxcpu.org> in #586693.
+ pScrn->monitor->maxPixClock = 65000;
+ }
+#endif
-
++
/* Probe the possible LCD display */
AlpProbeLCD(pScrn);
+
commit c855e6d70261c02a32388b54c90f8b1ee42716f1
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date: Mon Jul 16 15:32:29 2012 +0200
Bump changelog
diff --git a/ChangeLog b/ChangeLog
index 9881813..d10418a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,57 @@
+commit e443ede15981549ff5f6b01f42c3cb8dc909d778
+Author: Dave Airlie <airlied@gmail.com>
+Date: Fri Jul 13 14:47:40 2012 +1000
+
+ cirrus: handle server with no XAA
+
+ this fixes cirrus to work with a server with no XAA module.
+
+ Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit 46a9e962c6f33509e89d664115a9a2db51c9b67d
+Author: Dave Airlie <airlied@redhat.com>
+Date: Mon Jul 2 11:57:59 2012 +0100
+
+ cirrus: bump to 1.5.0 for release.
+
+ Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit 7ae890b29b12609d410f5558640bb0407b0fdd2d
+Author: Johannes Obermayr <johannesobermayr@gmx.de>
+Date: Sat Jun 9 11:29:02 2012 +0100
+
+ use int scrnIndex instead of int i in macro SCREEN_INIT_ARGS_DECL.
+
+ Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit bab8041291ff81c81a98aca385cce561ecddc9d1
+Author: Dave Airlie <airlied@redhat.com>
+Date: Tue Jun 5 19:35:39 2012 +0100
+
+ cirrus: drop xf86PciInfo.
+
+ This drops usage of deprecated header file.
+
+ Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit 9a5e19597be4f5ee4c1030e4a716207789e78668
+Author: Dave Airlie <airlied@redhat.com>
+Date: Tue Jun 5 19:26:15 2012 +0100
+
+ cirrus: convert to compat server API.
+
+ Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit 2e35bc316d7b74feca177c87a49a8050a2a0ff00
+Author: Dave Airlie <airlied@redhat.com>
+Date: Thu May 17 10:23:34 2012 +0100
+
+ cirrus: don't bind if there is a PCI kernel driver loaded.
+
+ this should ensure we end up using -modesetting under kms.
+
+ Signed-off-by: Dave Airlie <airlied@redhat.com>
+
commit 52ae4d254fee97a215ac497a45b69b4c83470b2b
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Fri Mar 23 18:48:04 2012 -0700
commit fd02fec2f7033d876815e43d02fa8a876db03d8c
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date: Mon Jul 16 15:32:16 2012 +0200
New upstream release 1.5.0
* New upstream release 1.5.0
* Require xserver 1.13rc1
diff --git a/debian/changelog b/debian/changelog
index e4030f1..e08d0f2 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+xserver-xorg-video-cirrus (1:1.5.99~somegit) UNRELEASED; urgency=low
+
+ * New upstream release 1.5.0
+ * Require xserver 1.13rc1
+
+ -- Maarten Lankhorst <maarten.lankhorst@canonical.com> Mon, 16 Jul 2012 15:30:58 +0200
+
xserver-xorg-video-cirrus (1:1.4.0-1) unstable; urgency=low
* New upstream release:
diff --git a/debian/control b/debian/control
index d2f1197..cf053c5 100644
--- a/debian/control
+++ b/debian/control
@@ -8,7 +8,7 @@ Build-Depends:
dh-autoreconf,
quilt,
pkg-config,
- xserver-xorg-dev (>= 2:1.9.4),
+ xserver-xorg-dev (>= 2:1.12.99.901),
x11proto-video-dev,
x11proto-core-dev,
x11proto-fonts-dev,
commit e443ede15981549ff5f6b01f42c3cb8dc909d778
Author: Dave Airlie <airlied@gmail.com>
Date: Fri Jul 13 14:47:40 2012 +1000
cirrus: handle server with no XAA
this fixes cirrus to work with a server with no XAA module.
Signed-off-by: Dave Airlie <airlied@redhat.com>
diff --git a/configure.ac b/configure.ac
index 1cc4d93..1157ab1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -72,6 +72,24 @@ AC_CHECK_HEADER(xf1bpp.h,[AC_DEFINE(HAVE_XF1BPP, 1, [Have 1bpp support])],[])
AC_CHECK_HEADER(xf4bpp.h,[AC_DEFINE(HAVE_XF4BPP, 1, [Have 4bpp support])],[])
CPPFLAGS="$SAVE_CPPFLAGS"
+AC_ARG_ENABLE(xaa,
+ AS_HELP_STRING([--enable-xaa],
+ [Enable legacy X Acceleration Architecture (XAA) [default=auto]]),
+ [XAA="$enableval"],
+ [XAA=auto])
+if test "x$XAA" != xno; then
+ save_CFLAGS=$CFLAGS
+ save_CPPFLAGS=$CPPFLAGS
+ CFLAGS=$XORG_CFLAGS
+ CPPFLAGS="$XORG_CFLAGS"
+ AC_CHECK_HEADERS([xaa.h], XAA=yes, XAA=no)
+ CFLAGS=$save_CFLAGS
+ CPPFLAGS=$save_CPPFLAGS
+fi
+AC_MSG_CHECKING([whether to include XAA support])
+AM_CONDITIONAL(XAA, test "x$XAA" = xyes)
+AC_MSG_RESULT([$XAA])
+
if test "x$XSERVER_LIBPCIACCESS" = xyes; then
PKG_CHECK_MODULES([PCIACCESS], [pciaccess >= 0.8.0])
XORG_CFLAGS="$XORG_CFLAGS $PCIACCESS_CFLAGS"
diff --git a/src/alp.h b/src/alp.h
index a182d0c..c09e24b 100644
--- a/src/alp.h
+++ b/src/alp.h
@@ -40,8 +40,10 @@ typedef struct {
} AlpRegRec, *AlpRegPtr;
extern Bool AlpHWCursorInit(ScreenPtr pScreen, int size);
+#ifdef HAVE_XAA_H
extern Bool AlpXAAInit(ScreenPtr pScreen);
extern Bool AlpXAAInitMMIO(ScreenPtr pScreen);
+#endif
extern Bool AlpDGAInit(ScreenPtr pScreen);
extern Bool AlpI2CInit(ScrnInfoPtr pScrn);
diff --git a/src/alp_driver.c b/src/alp_driver.c
index d1300df..e38c613 100644
--- a/src/alp_driver.c
+++ b/src/alp_driver.c
@@ -1088,7 +1088,12 @@ AlpPreInit(ScrnInfoPtr pScrn, int flags)
/* Load XAA if needed */
if (!pCir->NoAccel) {
- if (!xf86LoadSubModule(pScrn, "xaa")) {
+#ifdef HAVE_XAA_H
+ if (!xf86LoadSubModule(pScrn, "xaa"))
+#else
+ if (1)
+#endif
+ {
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"Falling back to shadowfb\n");
pCir->NoAccel = TRUE;
@@ -1096,6 +1101,7 @@ AlpPreInit(ScrnInfoPtr pScrn, int flags)
}
}
Reply to: