debian/changelog | 28 ++- debian/patches/234-composite-borderclip.patch | 48 ----- debian/patches/235-composite-tracking.diff | 78 -------- debian/patches/235-composite-tracking.patch | 78 ++++++++ debian/patches/236-use-fbdev-for-poulsbo-oaktrail-medfield.patch | 88 ++++++++++ debian/patches/237-dix-set-the-device-transformation-matrix.patch | 42 ++++ debian/patches/series | 5 7 files changed, 229 insertions(+), 138 deletions(-)
New commits: commit 7544ad5f070f6a347e89ad071b963b8fbdeae1ab Author: Bryce Harrington <[email protected]> Date: Fri Nov 16 14:01:28 2012 -0800 Add 237-dix-set-the-device-transformation-matrix.patch diff --git a/debian/changelog b/debian/changelog index bf7d458..11367e3 100644 --- a/debian/changelog +++ b/debian/changelog @@ -7,16 +7,20 @@ xorg-server (2:1.13.0-0ubuntu7) raring; urgency=low * Add 235-composite-tracking.patch to fix exa corruption. (LP: #1010794) + [ Bryce Harrington ] + * Add 236-use-fbdev-for-poulsbo-oaktrail-medfield.patch: Never use Intel + driver on Poulsbo/Oaktrail/Medfield. Thanks to Matthias Klumpp. + (LP: #1069031) + * Add 237-dix-set-the-device-transformation-matrix.patch: Fix pointer + jumping with absolute pointing device. Initializes device + transformation matrix to an identity matrix. Thanks to a7x. + (LP: #1041063) + [ Tim Lunn ] * 500_pointer_barrier_thresholds.diff: Update to fix gaps above barriers at edge of screen (LP: #1073724) - [ Matthias Klumpp ] - * Add 236-use-fbdev-for-poulsbo-oaktrail-medfield.patch: Never use Intel - driver on Poulsbo/Oaktrail/Medfield - (LP: #1069031) - -- Bryce Harrington <[email protected]> Fri, 16 Nov 2012 11:37:26 -0800 xorg-server (2:1.13.0-0ubuntu6) quantal; urgency=low diff --git a/debian/patches/237-dix-set-the-device-transformation-matrix.patch b/debian/patches/237-dix-set-the-device-transformation-matrix.patch new file mode 100644 index 0000000..92a9f57 --- /dev/null +++ b/debian/patches/237-dix-set-the-device-transformation-matrix.patch @@ -0,0 +1,42 @@ +From 3d1051aecbb1955084804133cacd12c7f696833a Mon Sep 17 00:00:00 2001 +From: Peter Hutterer <[email protected]> +Date: Thu, 20 Sep 2012 05:56:39 +1000 +Subject: [PATCH] dix: set the device transformation matrix + +The property handler is registered after setting the property, so +dev->transform remains as all-zeros. That causes pixman_f_transform_invert() +to fail (in transformAbsolute()) and invert remains as garbage. This +may then cause a cursor jump to 0,0. + +Since the axes are not yet initialized here and we need to allow for drivers +changing the matrix, we cannot use the property handler for matrix +initialization, essentially duplicating the code. + +Triggered by the fix to (#49347) in 749a593e49adccdf1225be28a521412ec85333f4 + +https://bugzilla.redhat.com/show_bug.cgi?id=852841 + +Signed-off-by: Peter Hutterer <[email protected]> +Reviewed-by: Chase Douglas <[email protected]> +Signed-off-by: Keith Packard <[email protected]> +--- + dix/devices.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/dix/devices.c b/dix/devices.c +index 9cf04ed..66d4406 100644 +--- a/dix/devices.c ++++ b/dix/devices.c +@@ -306,6 +306,9 @@ AddInputDevice(ClientPtr client, DeviceProc deviceProc, Bool autoStart) + /* unity matrix */ + memset(transform, 0, sizeof(transform)); + transform[0] = transform[4] = transform[8] = 1.0f; ++ dev->transform.m[0][0] = 1.0; ++ dev->transform.m[1][1] = 1.0; ++ dev->transform.m[2][2] = 1.0; + + XIChangeDeviceProperty(dev, XIGetKnownProperty(XI_PROP_TRANSFORM), + XIGetKnownProperty(XATOM_FLOAT), 32, +-- +1.7.11.3 + diff --git a/debian/patches/series b/debian/patches/series index 523f8bf..b2d86a6 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -35,3 +35,4 @@ 229_udev-fix.diff 230-fix-compat-output-selection.patch 231-scan-pci-after-probing-devices.patch +237-dix-set-the-device-transformation-matrix.patch commit fd444153524ced3bb41175c7c291d56eaad682e6 Author: Bryce Harrington <[email protected]> Date: Fri Nov 16 11:44:33 2012 -0800 Drop patch 234 as per mlankhorst. (Still awaiting response from upstream.) diff --git a/debian/changelog b/debian/changelog index f2f6444..bf7d458 100644 --- a/debian/changelog +++ b/debian/changelog @@ -4,11 +4,6 @@ xorg-server (2:1.13.0-0ubuntu7) raring; urgency=low * Add 233-xf86events-valgrind.patch to fix a xserver corruption when acpid is stopped before Xorg is. (LP: #1070481) - * Add 234-composite-borderclip.patch to fix another valgrind - that I found when investigating a bug. - (LP: #1065113) - - This might not be the cause, though. Patch is wrong, waiting - for upstream response for right fix.. * Add 235-composite-tracking.patch to fix exa corruption. (LP: #1010794) diff --git a/debian/patches/234-composite-borderclip.patch b/debian/patches/234-composite-borderclip.patch deleted file mode 100644 index 5d9b6c4..0000000 --- a/debian/patches/234-composite-borderclip.patch +++ /dev/null @@ -1,48 +0,0 @@ -compRedirectWindow does not initialize borderClip(X,Y ) members on allocation, -which could theoretically cause a crash because borderClip contains a pointer. -Solve this by copying the data over from pWin. - -Noticed this when working on -https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/1065113 - -Specific error valgrind error I was receiving is: - -==25858== Conditional jump or move depends on uninitialised value(s) -==25858== at 0x1EBF32: compClipNotify (compwindow.c:304) -==25858== by 0x2A2C23: miComputeClips (mivaltree.c:489) -==25858== by 0x2A321C: miValidateTree (mivaltree.c:695) -==25858== by 0x1896EE: MapWindow (window.c:2594) -==25858== by 0x1EB15B: compCreateOverlayWindow (compoverlay.c:155) -==25858== by 0x1E9ABA: ProcCompositeGetOverlayWindow (compext.c:304) -==25858== by 0x15DA50: Dispatch (dispatch.c:428) -==25858== by 0x14C569: main (main.c:295) -==25858== Uninitialised value was created by a heap allocation -==25858== at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) -==25858== by 0x1ED4A3: compRedirectWindow (compalloc.c:172) -==25858== by 0x1EC142: compCreateWindow (compwindow.c:558) -==25858== by 0x18C56C: CreateWindow (window.c:801) -==25858== by 0x1EB0FF: compCreateOverlayWindow (compoverlay.c:145) -==25858== by 0x1E9ABA: ProcCompositeGetOverlayWindow (compext.c:304) -==25858== by 0x15DA50: Dispatch (dispatch.c:428) -==25858== by 0x14C569: main (main.c:295) - -Signed-off-by: Maarten Lankhorst <[email protected]> - ---- -I'm not 100% sure if this is the correct assignment, I'm just guessing from the functions. - -diff --git a/composite/compalloc.c b/composite/compalloc.c -index cc69c68..b6c5785 100644 ---- a/composite/compalloc.c -+++ b/composite/compalloc.c -@@ -195,6 +195,8 @@ compRedirectWindow(ClientPtr pClient, WindowPtr pWin, int update) - cw->damaged = FALSE; - cw->pOldPixmap = NullPixmap; - dixSetPrivate(&pWin->devPrivates, CompWindowPrivateKey, cw); -+ cw->borderClipX = pWin->drawable.x; -+ cw->borderClipY = pWin->drawable.y; - } - ccw->next = cw->clients; - cw->clients = ccw; - - diff --git a/debian/patches/series b/debian/patches/series index 3d7935e..523f8bf 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -24,7 +24,6 @@ 227_null_ptr_midispcur.patch 232-xf86compatoutput-valgrind.patch 233-xf86events-valgrind.patch -234-composite-borderclip.patch 235-composite-tracking.patch 236-use-fbdev-for-poulsbo-oaktrail-medfield.patch commit 688eb713a9a2163cb2bb763107fd0684e92655e1 Author: Bryce Harrington <[email protected]> Date: Fri Nov 16 11:42:50 2012 -0800 Add 236-use-fbdev-for-poulsbo-oaktrail-medfield.patch Also, rename 235 from .diff to .patch for consistency diff --git a/debian/changelog b/debian/changelog index e20b6f6..f2f6444 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,19 +1,28 @@ -xorg-server (2:1.13.0-0ubuntu7) UNRELEASED; urgency=low +xorg-server (2:1.13.0-0ubuntu7) raring; urgency=low [ Maarten Lankhorst ] - * add 233-xf86events-valgrind.patch to fix a xserver corruption - when acpid is stopped before Xorg is. (LP: #1070481) - * add 234-composite-borderclip.patch to fix another valgrind - that I found when investigating a bug. (LP: #1065113) - - This might not the cause, though. Patch is wrong, waiting + * Add 233-xf86events-valgrind.patch to fix a xserver corruption + when acpid is stopped before Xorg is. + (LP: #1070481) + * Add 234-composite-borderclip.patch to fix another valgrind + that I found when investigating a bug. + (LP: #1065113) + - This might not be the cause, though. Patch is wrong, waiting for upstream response for right fix.. - * add 235-composite-tracking.diff to fix exa corruption. (LP: #1010794) + * Add 235-composite-tracking.patch to fix exa corruption. + (LP: #1010794) [ Tim Lunn ] * 500_pointer_barrier_thresholds.diff: Update to fix gaps above - barriers at edge of screen (LP: #1073724) + barriers at edge of screen + (LP: #1073724) - -- Timo Aaltonen <[email protected]> Thu, 25 Oct 2012 15:43:26 +0300 + [ Matthias Klumpp ] + * Add 236-use-fbdev-for-poulsbo-oaktrail-medfield.patch: Never use Intel + driver on Poulsbo/Oaktrail/Medfield + (LP: #1069031) + + -- Bryce Harrington <[email protected]> Fri, 16 Nov 2012 11:37:26 -0800 xorg-server (2:1.13.0-0ubuntu6) quantal; urgency=low diff --git a/debian/patches/235-composite-tracking.diff b/debian/patches/235-composite-tracking.diff deleted file mode 100644 index 46e1294..0000000 --- a/debian/patches/235-composite-tracking.diff +++ /dev/null @@ -1,78 +0,0 @@ -From: Michel Dänzer <[email protected]> - -In particular, make sure pExaScr->src/maskPix are cleared when the -corresponding pictures aren't associated with drawables, i.e. solid or gradient -pictures. Without this, we would in some cases associate the source/mask region -with unrelated pixmaps from previous Composite fallbacks, resulting in random -corruption. - -Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=47266 - -Signed-off-by: Michel Dänzer <[email protected]> ---- - exa/exa_priv.h | 1 + - exa/exa_unaccel.c | 16 ++++++++++++---- - 2 files changed, 13 insertions(+), 4 deletions(-) - -diff --git a/exa/exa_priv.h b/exa/exa_priv.h -index cd6a40b..819feb0 100644 ---- a/exa/exa_priv.h -+++ b/exa/exa_priv.h -@@ -201,6 +201,7 @@ typedef struct { - RegionRec srcReg; - RegionRec maskReg; - PixmapPtr srcPix; -+ PixmapPtr maskPix; - - } ExaScreenPrivRec, *ExaScreenPrivPtr; - -diff --git a/exa/exa_unaccel.c b/exa/exa_unaccel.c -index 72e59ca..ec49ef0 100644 ---- a/exa/exa_unaccel.c -+++ b/exa/exa_unaccel.c -@@ -451,6 +451,13 @@ ExaSrcValidate(DrawablePtr pDrawable, - RegionPtr dst; - int xoff, yoff; - -+ if (pExaScr->srcPix == pPix) -+ dst = &pExaScr->srcReg; -+ else if (pExaScr->maskPix == pPix) -+ dst = &pExaScr->maskReg; -+ else -+ return; -+ - exaGetDrawableDeltas(pDrawable, pPix, &xoff, &yoff); - - box.x1 = x + xoff; -@@ -458,8 +465,6 @@ ExaSrcValidate(DrawablePtr pDrawable, - box.x2 = box.x1 + width; - box.y2 = box.y1 + height; - -- dst = (pExaScr->srcPix == pPix) ? &pExaScr->srcReg : &pExaScr->maskReg; -- - RegionInit(®, &box, 1); - RegionUnion(dst, dst, ®); - RegionUninit(®); -@@ -504,16 +509,19 @@ ExaPrepareCompositeReg(ScreenPtr pScreen, - if (pSrc != pDst) - RegionTranslate(pSrc->pCompositeClip, - -pSrc->pDrawable->x, -pSrc->pDrawable->y); -- } -+ } else -+ pExaScr->srcPix = NULL; - - if (pMask && pMask->pDrawable) { - pMaskPix = exaGetDrawablePixmap(pMask->pDrawable); - RegionNull(&pExaScr->maskReg); - maskReg = &pExaScr->maskReg; -+ pExaScr->maskPix = pMaskPix; - if (pMask != pDst && pMask != pSrc) - RegionTranslate(pMask->pCompositeClip, - -pMask->pDrawable->x, -pMask->pDrawable->y); -- } -+ } else -+ pExaScr->maskPix = NULL; - - RegionTranslate(pDst->pCompositeClip, - -pDst->pDrawable->x, -pDst->pDrawable->y); --- 1.7.10.4 diff --git a/debian/patches/235-composite-tracking.patch b/debian/patches/235-composite-tracking.patch new file mode 100644 index 0000000..46e1294 --- /dev/null +++ b/debian/patches/235-composite-tracking.patch @@ -0,0 +1,78 @@ +From: Michel Dänzer <[email protected]> + +In particular, make sure pExaScr->src/maskPix are cleared when the +corresponding pictures aren't associated with drawables, i.e. solid or gradient +pictures. Without this, we would in some cases associate the source/mask region +with unrelated pixmaps from previous Composite fallbacks, resulting in random +corruption. + +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=47266 + +Signed-off-by: Michel Dänzer <[email protected]> +--- + exa/exa_priv.h | 1 + + exa/exa_unaccel.c | 16 ++++++++++++---- + 2 files changed, 13 insertions(+), 4 deletions(-) + +diff --git a/exa/exa_priv.h b/exa/exa_priv.h +index cd6a40b..819feb0 100644 +--- a/exa/exa_priv.h ++++ b/exa/exa_priv.h +@@ -201,6 +201,7 @@ typedef struct { + RegionRec srcReg; + RegionRec maskReg; + PixmapPtr srcPix; ++ PixmapPtr maskPix; + + } ExaScreenPrivRec, *ExaScreenPrivPtr; + +diff --git a/exa/exa_unaccel.c b/exa/exa_unaccel.c +index 72e59ca..ec49ef0 100644 +--- a/exa/exa_unaccel.c ++++ b/exa/exa_unaccel.c +@@ -451,6 +451,13 @@ ExaSrcValidate(DrawablePtr pDrawable, + RegionPtr dst; + int xoff, yoff; + ++ if (pExaScr->srcPix == pPix) ++ dst = &pExaScr->srcReg; ++ else if (pExaScr->maskPix == pPix) ++ dst = &pExaScr->maskReg; ++ else ++ return; ++ + exaGetDrawableDeltas(pDrawable, pPix, &xoff, &yoff); + + box.x1 = x + xoff; +@@ -458,8 +465,6 @@ ExaSrcValidate(DrawablePtr pDrawable, + box.x2 = box.x1 + width; + box.y2 = box.y1 + height; + +- dst = (pExaScr->srcPix == pPix) ? &pExaScr->srcReg : &pExaScr->maskReg; +- + RegionInit(®, &box, 1); + RegionUnion(dst, dst, ®); + RegionUninit(®); +@@ -504,16 +509,19 @@ ExaPrepareCompositeReg(ScreenPtr pScreen, + if (pSrc != pDst) + RegionTranslate(pSrc->pCompositeClip, + -pSrc->pDrawable->x, -pSrc->pDrawable->y); +- } ++ } else ++ pExaScr->srcPix = NULL; + + if (pMask && pMask->pDrawable) { + pMaskPix = exaGetDrawablePixmap(pMask->pDrawable); + RegionNull(&pExaScr->maskReg); + maskReg = &pExaScr->maskReg; ++ pExaScr->maskPix = pMaskPix; + if (pMask != pDst && pMask != pSrc) + RegionTranslate(pMask->pCompositeClip, + -pMask->pDrawable->x, -pMask->pDrawable->y); +- } ++ } else ++ pExaScr->maskPix = NULL; + + RegionTranslate(pDst->pCompositeClip, + -pDst->pDrawable->x, -pDst->pDrawable->y); +-- 1.7.10.4 diff --git a/debian/patches/236-use-fbdev-for-poulsbo-oaktrail-medfield.patch b/debian/patches/236-use-fbdev-for-poulsbo-oaktrail-medfield.patch new file mode 100644 index 0000000..dbf210d --- /dev/null +++ b/debian/patches/236-use-fbdev-for-poulsbo-oaktrail-medfield.patch @@ -0,0 +1,88 @@ +From ec3ce5493ec00ca0a9304b705a58a40e364f88fb Mon Sep 17 00:00:00 2001 +From: Stefan Dirsch <[email protected]> +Date: Sun, 22 Jul 2012 12:29:51 +0200 +Subject: [PATCH 3/3] Do not use intel driver on Poulsbo, Oaktrail, Medfield, CDV. + +IDs stolen from Kernel psb driver. +--- + hw/xfree86/common/xf86pciBus.c | 64 +++++++++++++++++++++++++++++++++++----- + 1 files changed, 56 insertions(+), 8 deletions(-) + +diff --git a/hw/xfree86/common/xf86pciBus.c b/hw/xfree86/common/xf86pciBus.c +index a2c18eb..258988a 100644 +--- a/hw/xfree86/common/xf86pciBus.c ++++ b/hw/xfree86/common/xf86pciBus.c +@@ -1147,14 +1147,62 @@ xf86VideoPtrToDriverList(struct pci_device *dev, + driverList[0] = "i128"; + break; + case 0x8086: +- if ((dev->device_id == 0x00d1) || (dev->device_id == 0x7800)) { +- driverList[0] = "i740"; +- } +- else if (dev->device_id == 0x8108) { +- break; /* "hooray" for poulsbo */ +- } +- else { +- driverList[0] = "intel"; ++ switch (dev->device_id) ++ { ++ /* Intel i740 */ ++ case 0x00d1: ++ case 0x7800: ++ driverList[0] = "i740"; ++ break; ++ /* GMA500/Poulsbo */ ++ case 0x8108: ++ case 0x8109: ++ /* Try psb driver on Poulsbo - if available */ ++ driverList[0] = "psb"; ++ driverList[1] = "psb_drv"; ++ break; ++ /* GMA600/Oaktrail */ ++ case 0x4100: ++ case 0x4101: ++ case 0x4102: ++ case 0x4103: ++ case 0x4104: ++ case 0x4105: ++ case 0x4106: ++ case 0x4107: ++ /* Atom E620/Oaktrail */ ++ case 0x4108: ++ /* Medfield */ ++ case 0x0130: ++ case 0x0131: ++ case 0x0132: ++ case 0x0133: ++ case 0x0134: ++ case 0x0135: ++ case 0x0136: ++ case 0x0137: ++ /* GMA 3600/CDV */ ++ case 0x0be0: ++ case 0x0be1: ++ case 0x0be2: ++ case 0x0be3: ++ case 0x0be4: ++ case 0x0be5: ++ case 0x0be6: ++ case 0x0be7: ++ case 0x0be8: ++ case 0x0be9: ++ case 0x0bea: ++ case 0x0beb: ++ case 0x0bec: ++ case 0x0bed: ++ case 0x0bee: ++ case 0x0bef: ++ /* Use fbdev/vesa driver on Oaktrail, Medfield, CDV */ ++ break; ++ default: ++ driverList[0] = "intel"; ++ break; + } + break; + case 0x102b: +-- +1.7.3.4 + diff --git a/debian/patches/series b/debian/patches/series index 9753288..3d7935e 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -25,7 +25,8 @@ 232-xf86compatoutput-valgrind.patch 233-xf86events-valgrind.patch 234-composite-borderclip.patch -235-composite-tracking.diff +235-composite-tracking.patch +236-use-fbdev-for-poulsbo-oaktrail-medfield.patch ## waiting for review by upstream 111_armel-drv-fallbacks.patch -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

