[Openchrome-users] VIA Announces Open Source Driver Initiative

Xavier Bachelot xavier
Thu Apr 17 12:58:55 PDT 2008


Paulo Cesar Pereira de Andrade wrote:
> 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
> 
hmm, I forgot to update a couple of places. I attach another patch, give 
it a try, but it's probably better to start slowly and disable 
acceleration at least for the beginning (Option "NoAccel").

Regards,
Xavier
-------------- next part --------------
A non-text attachment was scrubbed...
Name: VX800_2.patch
Type: text/x-patch
Size: 11424 bytes
Desc: not available
Url : http://wiki.openchrome.org/pipermail/openchrome-users/attachments/20080417/2e1ac3cf/VX800_2-0001.bin



More information about the Openchrome-users mailing list