Re: [XFree86] All annoying error in I830WaitLpRing() in some details

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

 



On Tue, Oct 07, 2003 at 05:16:28PM +0300, Alexey E. Suslikov wrote:
>Tuesday, October 7, 2003, 4:53:45 PM, you wrote:
>
>>> bang! this is it: the bug still exist, at least on i830m (like in my
>>> case). setting "NoAccel" "true" is turning off Xaa functions for first.
>>> linux people did so. i did too, but with no success :(
>
>> I've tried very hard and I'm not seeing the problem any more.
>> If you are still seeing it maybe you could do a little 
>> investigation into its cause?
>
>> One thing you may want to try is setting
>pI830->>NeedRingBufferLow = TRUE
>> This isn't done for the i830 as it didn't seem to be necessary.
>
>ok. i will try and report as soon as possible.

That shouldn't make any difference to the noaccel case, since the
ring buffer isn't allocated then.

>> Yes, turning XAA off will work around the problem. The LpRing is
>> only used for that.
>
>no. as i described above, this recipe was digged from mailing list
>and solves the problem for some linux people. but not for me on
>OpenBSD and this guy on NetBSD.

A couple of other things I can think of are 1) some subtle difference in
the implementation of the agpgart support for those two platforms, or
2) the fact that the BIOS is executed via the emulator on the BSDs but
uses vm86 mode on Linux.  Does anyone running FreeBSD see the problem?
If not, that should rule out 2).  To take the agp support out of the
picture, disable the HW cursor, and make sure the videoram is set to
some amount lower than what the BIOS preallocates at boot time (e.g.,
4096).  From your noaccel log, the agp interface is only used to allocate
the HW cursor space (because it needs a physical address).  That means
just adding 'Option "SWCursor"' to your Device section should be
sufficient for this test.

It would be very useful to try different OSs (Linux and one or more
BSDs) on exactly the same machine, and see if the results were the same.
It really has to be exactly the same machine to eliminate possible
differences in BIOS and hardware revisions.

The messages in your log:

(WW) I810(0): PRB0_CTL (0x000b6007) indicates ring buffer enabled
(WW) I810(0): PRB0_HEAD (0x00000000) and PRB0_TAIL (0x00092660) indicate ring buffer not flushed

are results of some sanity checks on the inherited state that the driver
tries to make.  It doesn't do anything other than report them.  These
don't seem to show up at initial startup, only after switching VT's back
and forth.

There seemed to be some evidence that some BIOSes did stuff that the
driver didn't expect when switching back to text mode.  I was never able
to prove or disprove that theory, because I couldn't reproduce these
lockups that others had reported.  Maybe it depends on the BIOS rev or
hardware rev.  Maybe it's simply a bug lurking somewhere that doesn't
affect most platforms.  It's hard to say for sure at this point.

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