Summary: | [solved again] Xorg 7.0.0: S3 driver doesn't work | ||
---|---|---|---|
Product: | xorg | Reporter: | Evgeny Zubok <zoubok> |
Component: | Driver/s3 | Assignee: | Evgeny Zubok <zoubok> |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | major | ||
Priority: | high | CC: | alexdeucher, libv, spamtrap |
Version: | 7.0.0 | ||
Hardware: | x86 (IA32) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Evgeny Zubok
2006-06-04 13:33:48 UTC
I experience the same issue. The S3 driver hangs the machine. It freezes, only a hard reset is possible after it tries to load the X server. I can use the VESA driver (with poor resolution). I have a Diamond Steath 64DRAM with 2MB of RAM. It is a PCI card. I'm using the official xorg packages from the latest Ubuntu (6.06). Ubuntu 5.10 works fine. I ran dpkg-reconfigure xserver-xorg and the card was detected as S3 86c764/765 [Trio32/64/64V+]. The monitor does not blank or lose signal, it just displays a foggy cursor at the center of the screen forever (since the machine is freezed). Tempting to throw in a V2/DX and test and fix this... Must resist for at least several more days. I also have the same issue after upgrading to Xorg 7.0, please, see bug #377386 in the Debian BTS: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=377386 (In reply to comment #2) > Tempting to throw in a V2/DX and test and fix this... Must resist for at least > several more days. Temporary workaround is to disable 2D acceleration in xorg.conf Section "Device" Identifier "s3_trio64v2" Driver "s3" Option "noaccel" ^^^^^^ ^^^^^^^^^ Option "DPMS" EndSection I think it helps to locate the bug. (In reply to comment #4) > (In reply to comment #2) > Temporary workaround is to disable 2D acceleration in xorg.conf > Option "noaccel" > ^^^^^^ ^^^^^^^^^ I can confirm that s3 driver works with this "noaccel" option for xorg 7.0.22, but it seems to be even slower that with a vesa driver. I downloaded xserver-xorg-video-s3 sources of Xorg 7.0.22 and discovered that the S3_NEWMMIO doesn't defined. I don't know exactly where it need to be defined, so I added #define S3_NEWMMIO into s3.h and recompiled the driver. Now it works perfectly with acceleration! I don't supply a patch because don't know yet when and where the S3_NEMMIO should be defined. It used for conditional compilation of s3_accel.c and s3_reg.h This is a patch that solves the problem. A C preprocessor macro #define S3_NEWMMIO was lost while transition from Xorg 6.9 to Xorg 7.0/7.1. This patch should be applied against configure.ac. After that it need to reconfigure a package: autoreconf -v --install to generate new scripts and headers. Now the S3 driver works as before. --- orig/configure.ac 2006-02-13 03:48:46.000000000 +0000 +++ new/configure.ac 2006-10-08 02:31:54.000000000 +0000 @@ -62,6 +62,8 @@ # Checks for header files. AC_HEADER_STDC +AC_DEFINE(S3_NEWMMIO, 1, [Enable support for the new MMIO]) + AC_SUBST([XORG_CFLAGS]) AC_SUBST([moduledir]) Fix committed. I suppose I should do a new release? I'm reopening this bug. I've got a feedback after the patch was published in the Debian BTS. My patch solves the problem only for those S3 cards which are support S3 New MMIO. But more ancient cards still don't work. The problem is in the compilation of s3_accel.c. While moving from xorg 6.9 to 7.0/7.1 the rules for compilation this source were lost. Following these 'Imake' rules, s3_accel.c should be compliled twice: with S3_NEWMMIO=1 and without it. I'll publish new patch soon here. A new patch. As we can see, s3_accel is compiled twice: with and without S3_NEWMMIO and then linked together with other objects files. This patch has to be applied against /xorg/driver/xf86-video-s3/src/Makefile.am . My previous patch above for configure.ac must be removed!!! Version number can be increased, I think. --- xf86-video-s3.orig/src/Makefile.am 2006-11-24 22:49:28.000000000 +0000 +++ xf86-video-s3/src/Makefile.am 2006-11-24 22:51:19.000000000 +0000 @@ -30,7 +30,6 @@ s3_drv_la_SOURCES = \ newmmio.h \ - s3_accel.c \ s3_bios.c \ s3_cursor.c \ s3_dga.c \ @@ -41,3 +40,12 @@ s3_Ti.c \ s3_Trio64DAC.c \ s3_video.c + +noinst_LTLIBRARIES = libs3_accel_newmmio.la libs3_accel_pio.la +s3_drv_la_LIBADD = libs3_accel_newmmio.la libs3_accel_pio.la + +libs3_accel_newmmio_la_SOURCES = s3_accel.c +libs3_accel_newmmio_la_CFLAGS = $(AM_CFLAGS) -DS3_NEWMMIO=1 + +libs3_accel_pio_la_SOURCES = s3_accel.c +libs3_accel_pio_la_CFLAGS = $(AM_CFLAGS) (In reply to comment #10) > A new patch. As we can see, s3_accel is compiled twice: with and without > S3_NEWMMIO and then linked together with other objects files. This patch has to > be applied against /xorg/driver/xf86-video-s3/src/Makefile.am . My previous > patch above for configure.ac must be removed!!! Version number can be increased, > I think. > I've committed this. let me know if all is well, I'll go ahead and make a release. Any interest in becoming the s3 maintainer? >I've committed this. let me know if all is well, I'll go ahead and make a release. I looked at git tree. All seems fine. >Any interest in becoming the s3 maintainer? I'll think about it. I need to learn more about working with git tree. I started to port the s3 driver to EXA. Some work is done: Solid/Copy fuctionality and EXA driver intialization was written. But I got some artefacts. The main problem is the absence of any documentation for s3 chips. There is only source code (XFree86-S3 3.3.6 and present driver) without any helpful comments. When I'll get the results then I decide to maintain s3. But not today. I'm not ready yet :) xf86-video-s3 0.5.0 released. *** Bug 8901 has been marked as a duplicate of this bug. *** |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.