guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/02: gnu: xorg: Add patch to fix sis driver crashes.


From: Alex Kost
Subject: 02/02: gnu: xorg: Add patch to fix sis driver crashes.
Date: Fri, 03 Apr 2015 12:24:28 +0000

alezost pushed a commit to branch master
in repository guix.

commit 946dc71f632e053083c98f845b04b1bcf1588c02
Author: Alex Kost <address@hidden>
Date:   Wed Apr 1 22:15:15 2015 +0300

    gnu: xorg: Add patch to fix sis driver crashes.
    
    * gnu/packages/patches/xf86-video-sis-fix-exa-crash.patch: New file.
    * gnu/packages/xorg.scm (xf86-video-sis): Use it.
    * gnu-system.am (dist_patch_DATA): Add it.
---
 gnu-system.am                                      |    1 +
 .../patches/xf86-video-sis-fix-exa-crash.patch     |   45 ++++++++++++++++++++
 gnu/packages/xorg.scm                              |    3 +-
 3 files changed, 48 insertions(+), 1 deletions(-)

diff --git a/gnu-system.am b/gnu-system.am
index e9ee5ad..ebcf60f 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -562,6 +562,7 @@ dist_patch_DATA =                                           
\
   gnu/packages/patches/xf86-video-openchrome-glibc-2.20.patch  \
   gnu/packages/patches/xf86-video-r128-glibc-2.20.patch                \
   gnu/packages/patches/xf86-video-siliconmotion-remove-mibstore.patch \
+  gnu/packages/patches/xf86-video-sis-fix-exa-crash.patch      \
   gnu/packages/patches/xf86-video-sis-update-api.patch         \
   gnu/packages/patches/xf86-video-tdfx-remove-mibstore.patch   \
   gnu/packages/patches/xf86-video-tga-remove-mibstore.patch    \
diff --git a/gnu/packages/patches/xf86-video-sis-fix-exa-crash.patch 
b/gnu/packages/patches/xf86-video-sis-fix-exa-crash.patch
new file mode 100644
index 0000000..f5cd0b9
--- /dev/null
+++ b/gnu/packages/patches/xf86-video-sis-fix-exa-crash.patch
@@ -0,0 +1,45 @@
+Fix X server crash when sis driver is used with EXA acceleration.
+
+Source: 
http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/trusty/xserver-xorg-video-sis/trusty/revision/24/debian/patches/fix-exa-crash.diff
+
+The patch was originally proposed by nihui:
+https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-sis/+bug/1066464/comments/13
+
+--- a/src/sis310_accel.c
++++ b/src/sis310_accel.c
+@@ -1874,7 +1874,7 @@
+ {
+       ScrnInfoPtr pScrn = xf86ScreenToScrn(pDst->drawable.pScreen);
+       SISPtr pSiS = SISPTR(pScrn);
+-      unsigned char *dst = pDst->devPrivate.ptr;
++      unsigned char *dst = ((unsigned char *) pSiS->FbBase) + 
exaGetPixmapOffset(pDst);
+       int dst_pitch = exaGetPixmapPitch(pDst);
+ 
+       (pSiS->SyncAccel)(pScrn);
+@@ -1882,7 +1882,7 @@
+       if(pDst->drawable.bitsPerPixel < 8)
+          return FALSE;
+ 
+-      dst += (x * pDst->drawable.bitsPerPixel / 8) + (y * src_pitch);
++      dst += (x * pDst->drawable.bitsPerPixel / 8) + (y * dst_pitch);
+       while(h--) {
+          SiSMemCopyToVideoRam(pSiS, dst, (unsigned char *)src,
+                               (w * pDst->drawable.bitsPerPixel / 8));
+@@ -1953,7 +1953,7 @@
+ {
+       ScrnInfoPtr pScrn = xf86ScreenToScrn(pSrc->drawable.pScreen);
+       SISPtr pSiS = SISPTR(pScrn);
+-      unsigned char *src = pSrc->devPrivate.ptr;
++      unsigned char *src = ((unsigned char *) pSiS->FbBase) + 
exaGetPixmapOffset(pSrc);
+       int src_pitch = exaGetPixmapPitch(pSrc);
+       int size = src_pitch < dst_pitch ? src_pitch : dst_pitch;
+ 
+@@ -1964,7 +1964,7 @@
+ 
+       src += (x * pSrc->drawable.bitsPerPixel / 8) + (y * src_pitch);
+       while(h--) {
+-         SiSMemCopyFromVideoRam(pSiS, (unsigned char *)dst, src, size);
++         SiSMemCopyFromVideoRam(pSiS, (unsigned char *)dst, src, (w * 
pSrc->drawable.bitsPerPixel / 8));
+          src += src_pitch;
+          dst += dst_pitch;
+       }
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index cfb4cc1..998f080 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -2932,7 +2932,8 @@ graphics cards.")
         (sha256
           (base32
            "1l0w84x39gq4y9j81dny9r6rma1xkqvxpsavpkd8h7h8panbcbmy"))
-        (patches (list (search-patch "xf86-video-sis-update-api.patch")))))
+        (patches (list (search-patch "xf86-video-sis-update-api.patch")
+                       (search-patch "xf86-video-sis-fix-exa-crash.patch")))))
     (build-system gnu-build-system)
     (inputs `(("mesa" ,mesa)
               ("xf86dgaproto" ,xf86dgaproto)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]