[r200] Lockups...
Vladimir Dergachev
volodya at mindspring.com
Mon Mar 14 19:12:13 PST 2005
[[[
I am also cross posting to xorg mailing list.
The e-mail below discusses a RADEONWaitForIdleMMIO() call I put in
radeon_mergedfb.c before OUTREGP() calls in cursor functions.
The call was needed as OUTREGP() calls INREG() implicitly.
However, it turns out that this call breaks on SMP systems with DRI
enabled.
]]]
On Mon, 14 Mar 2005, Michel [ISO-8859-1] Dänzer wrote:
> On Mon, 2005-03-14 at 18:05 -0500, Vladimir Dergachev wrote:
>>
>> I am unsure of how to fix it though, as the call *is* needed, we should
>> not be reading from registers with engine busy.
>
> Something may be needed, but probably not a wait for idle (which may
> never succeed on an SMP system). Other things you could try:
>
> * Keep track of the hardware state in the driver, so you don't
> have to read the registers all the time.
This is probably the easiest. I am unlikely to find time to work on this
until the following weekend (have a conference during this one), so I am
proposing to comment out the WaitForIdle call in X.org CVS, with
appropriate comment and put the fix in later.
Of course, if someone beats me to it, I would not complain :)
Adam - thank you for patient testing :))
best
Vladimir Dergachev
> * Read/write the registers via MM_INDEX/MM_DATA instead of
> directly.
>
> I'm curious if either of this helps.
>
>
> --
> Earthling Michel Dänzer | Debian (powerpc), X and DRI developer
> Libre software enthusiast | http://svcs.affero.net/rm.php?r=daenzer
>
More information about the xorg
mailing list