[PATCH] xf86-video-sis: SIS_{650, 760} Problems with colors, BIOS not detected #19070

Matteo Delfino kendatsuba at gmail.com
Wed Oct 21 05:48:49 PDT 2009


Since the introduction of XSERVER_LIBPCIACCESS BIOS reading is broken
on some hardware (SIS_650, SIS_760, maybe others) causing severe color
corruption. This is a proposed fix.

Xorg bug:
https://bugs.freedesktop.org/show_bug.cgi?id=19070

Related launchpad bug:
https://bugs.launchpad.net/xorg-server/+bug/264769

xf86-video-sis commit switching bios reading to libpciaccess:
http://cgit.freedesktop.org/xorg/driver/xf86-video-sis/commit/?id=585e03e6878dd257c694517be9ea231a6b3cfb66

Signed-off-by: Matteo Delfino <kendatsuba at gmail.com>
---

Apparently a small amount of code in the bios reading routine is
skipped if XSERVER_LIBPCIACCESS is detected. In version 0.9.4 that
portion of code is supposed to read the card BIOS using xf86ReadBIOS
(or xf86ReadDomainMemory) if xf86ReadPciBIOS has failed or
readpci=FALSE. It seems that for SIS_660 and SIS_760 readpci is set to
FALSE resulting in the following error using versions > 0.9.4:

(WW) SIS(0): Could not find/read video BIOS

This fix forces readpci = TRUE for SIS_660 and SIS_760, I don't know
if that's correct but applying the patch solves the problem.

 src/sis_driver.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/src/sis_driver.c b/src/sis_driver.c
index 994b02d..b19e7a9 100644
--- a/src/sis_driver.c
+++ b/src/sis_driver.c
@@ -4099,6 +4099,8 @@ SISPreInit(ScrnInfoPtr pScrn, int flags)
 	     case SIS_315H:
 	     case SIS_330:
 	     case SIS_340:
+	     case SIS_650:
+	     case SIS_760:
 	     case XGI_40:     readpci = TRUE;
 			      break;
 	     case XGI_20:     readpci = TRUE;
-- 
1.6.3.3


More information about the xorg-devel mailing list