Re: [XFree86] RESOLVED: I830WaitLpRing() lockup

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

 



On Mon, Oct 20, 2003 at 11:13:12AM +0300, Alexey E. Suslikov wrote:
>keywords: openbsd, x11, i830, ring buffer, lockup
>
>> It just occurred to me where I had seen this type of black screen problem
>> before.  It happens when using the "vesa" driver with an 845G.  We work
>> around this in the i810 driver by remembering the initial video mode
>> and simply re-initialising it when exiting/VT switching instead of using
>> the VBE save/restore mechanism.  This workaround is only actived for
>> 845G hardware.  You could try enabling it for all hardware by changing
>> this line in i830_driver.c from:
>> 
>> if (!I845G_VBE_WORKAROUND || !IS_845G(pI830)) {
>> 
>> to:
>> 
>> if (!I845G_VBE_WORKAROUND) {
>
>hmmm... my yesterdays reply was lost somewhere... ok, let's repeat :)
>
>turning on I845G_VBE_WORKAROUND magically SOLVES the problem on
>4.3.99.14 in both accel and noaccel setups:
>
>                                  VideoRam
>                        default(8192)  2048  32768
>Accel                        ok         ok     ok
>NoAccel                      ok         ok     ok
>NoAccel+SWcursor             ok         ok     ok

That's good news.

>David, thanks a lot. if you have some spare time, can you write some
>explanations on this case?

It's pretty much as I already said.  Without this workaround, the driver
(just like the vesa driver) uses the video BIOS VBE save/restore calls
to save and restore the original video mode.  Using these appears to be
a problem in at least some cases.  I only ever saw the problem with 845G
systems, and so only enabled the workaround for that case.

The workaround instead saves the original mode number, and uses the
VBE set mode call to go back to that original mode when exiting or VT
switching.

In the 845G cases I saw, where even the generic vesa driver showed this
problem consistently at the first VT switch or exit, it must be a bug
in the video BIOSes.  There are a lot of other variables in the i810/i830
driver case.

Anyway, I'll commit a fix to enable this workaround by default in all cases.

Thanks for the detailed testing and reporting.

David
-- 
David Dawes                                     X-Oz Technologies
www.XFree86.org/~dawes                          www.x-oz.com
_______________________________________________
XFree86 mailing list
XFree86@xxxxxxxxxxx
http://XFree86.Org/mailman/listinfo/xfree86

[Index of Archives]     [X Forum]     [Xorg]     [XFree86 Newbie]     [IETF Announce]     [Security]     [Font Config]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux Kernel]

  Powered by Linux