[Openchrome-users] VIA Announces Open Source Driver Initiative

Paulo Cesar Pereira de Andrade pcpa
Thu Apr 17 11:40:02 PDT 2008


Xavier Bachelot wrote:

  Hi again,

>> Hope I did not go over any mailing list limit, and this information
>> is useful. Also the Xorg version is the one from Mandriva 2008, but
>> we tried "cooker" version. And without the option TTLLCD (available
>> on the latest binary only driver), the display would look like
>> http://www.youtube.com/watch?v=wG9dV3l0oeA
>>
> Try the attached guess work patch. Not sure it'll do any good, but at 
> least should show you what to tweak to get openchrome working on the 
> VX800. Most notably the fifo settings are probably completely borked.
> Gabriel or Jon would have more insight.
>
> Regards,
> Xavier

  Logfile Xorg.openchrome.quanta-with-via-driver-in-another-vt.log.gz
 from A Xserver started from a console, while another X Server
(with via driver) was active in another VT.
  Attaching gdb:
-%<-
# gdb /usr/bin/Xorg 3691
GNU gdb 6.6-3mdv2008.0 (Mandriva Linux release 2008.0)
[blahblah]
0xb7c0513d in viaFlushPCI (buf=0x8239688)
    at via_accel.c:110
110                             while (!(VIAGETREG(VIA_REG_STATUS) & 
VIA_VR_QUEUE_BUSY)
(gdb) bt
#0  0xb7bca13d in viaFlushPCI (buf=0x8239690) at via_accel.c:110
#1  0xb7bc7fb8 in viaAccelFillRect (pScrn=0x82382c8, x=0, y=0, w=640, 
h=480,
    color=0) at via_accel.c:2584
#2  0xb7bd1542 in VIAScreenInit (scrnIndex=0, pScreen=0x823b760, argc=12,
    argv=0xbff9d4f4) at via_driver.c:2684
#3  0x080706ba in AddScreen ()
#4  0x080a3834 in InitOutput ()
#5  0x08070e52 in main ()
(gdb) n


-%<-
and it would loop forever. If not attaching gdb, the computer would just
completely lock when trying to kill the X Server with the openchrome driver.


  When testing with a "init 3" boot, I got the same result, so I patched
via_accel.c as:
-%<-
--- via_accel.c    2008-04-16 14:17:34.000000000 -0300
+++ via_accel.c    2007-09-22 01:38:41.000000000 -0300
@@ -106,7 +106,8 @@
                      */
                     if (pVia->Chipset != VIA_P4M890 &&
                         pVia->Chipset != VIA_K8M890 &&
-                        pVia->Chipset != VIA_P4M900) {
+                        pVia->Chipset != VIA_P4M900 &&
+                        pVia->Chipset != VIA_VX800) {
                         while (!(VIAGETREG(VIA_REG_STATUS) & 
VIA_VR_QUEUE_BUSY)
                                && (loop++ < MAXLOOP)) ;
                     }
-%<-


Logfile Xorg.openchrome.quanta.log.gz is when running with that patch,
and gdb:
-%<-
# gdb /usr/bin/Xorg `pidof X`
GNU gdb 6.6-3mdv2008.0 (Mandriva Linux release 2008.0)
[blahblah]
0xb7b817d3 in viaAccelSync (pScrn=0x82382b8)
    at via_accel.c:419
419             default:
(gdb) c
Continuing.

Program received signal SIGINT, Interrupt.
[Switching to Thread -1211427136 (LWP 13382)]
0xb7b8513d in viaFlushPCI (buf=0x8239680) at via_accel.c:110
110                             pVia->Chipset != VIA_VX800) {
(gdb) bt
#0  0xb7b8513d in viaFlushPCI (buf=0x8239680) at via_accel.c:110
#1  0xb7b81d69 in viaSubsequentSolidFillRect (pScrn=0x82382b8, x=0, y=0,
    w=640, h=480) at via_accel.c:663
#2  0xb7a00334 in XAAFillSolidRects () from /usr/lib/xorg/modules//libxaa.so
#3  0xb7a0d5f8 in XAAPaintWindow () from /usr/lib/xorg/modules//libxaa.so
#4  0x0817926d in ?? ()
#5  0x08174862 in ?? ()
#6  0x08103b1e in compPaintWindowBackground ()
#7  0x08139bd5 in miClearToBackground ()
#8  0x08085d3a in ProcClearToBackground ()
#9  0x081533bd in ?? ()
#10 0x08089d6f in Dispatch ()
#11 0x08071025 in main ()
(gdb) c
Continuing.

Program received signal SIGINT, Interrupt.
0xb7b8513d in viaFlushPCI (buf=0x8239680) at via_accel.c:110
110                             pVia->Chipset != VIA_VX800) {
(gdb) bt
#0  0xb7b8513d in viaFlushPCI (buf=0x8239680) at via_accel.c:110
#1  0xb7b81d69 in viaSubsequentSolidFillRect (pScrn=0x82382b8, x=0, y=0,
    w=640, h=480) at via_accel.c:663
#2  0xb7a00334 in XAAFillSolidRects () from /usr/lib/xorg/modules//libxaa.so
#3  0xb7a0d5f8 in XAAPaintWindow () from /usr/lib/xorg/modules//libxaa.so
#4  0x0817926d in ?? ()
#5  0x08174862 in ?? ()
#6  0x08103b1e in compPaintWindowBackground ()
#7  0x08139bd5 in miClearToBackground ()
#8  0x08085d3a in ProcClearToBackground ()
#9  0x081533bd in ?? ()
#10 0x08089d6f in Dispatch ()
#11 0x08071025 in main ()
(gdb) c
Continuing.

-%<-
but again it would completely lock if trying to exit the X Server.
I did not follow carefully the code, but my attempt to
"skip the busy loop" was probably pointless as it seens to be always
coming back to viaFlushPCI...

Paulo

-------------- next part --------------
A non-text attachment was scrubbed...
Name: Xorg.openchrome.quanta-with-via-driver-in-another-vt.log.gz
Type: application/x-gzip
Size: 7052 bytes
Desc: not available
Url : http://wiki.openchrome.org/pipermail/openchrome-users/attachments/20080417/cd9a13b8/Xorg.openchrome.quanta-with-via-driver-in-another-vt.log.bin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Xorg.openchrome.quanta.log.gz
Type: application/x-gzip
Size: 6871 bytes
Desc: not available
Url : http://wiki.openchrome.org/pipermail/openchrome-users/attachments/20080417/cd9a13b8/Xorg.openchrome.quanta.log.bin



More information about the Openchrome-users mailing list