[Openchrome-devel] Bugs in via_wait_idle()

Thomas Hellström thomas
Tue Feb 10 00:14:41 PST 2009


Thomas Steffen wrote:
> On Sat, Feb 7, 2009 at 3:07 PM, Thomas Hellstr?m <thomas at shipmail.org> wrote:
>> I think the bit VIA_VR_QUEUE_BUSY has an opposite meaning compared to the
>> other bits,
>> so when the VR queue is idle, the bit is set to 1.
> [Sorry, this should have gone to the list in the first place...]
> That would explain the code, but somehow it does not work for me.
> Maybe this changed in Chrome9?
> Anyway, I have no documentation, but the "open source" driver from
> viaarena says:

You can download the documentation (should be reasonably similar to the 
VX800 docs) in
Xavier's new wiki site.

> #define INV_ENG_BUSY_HQV0           0x00040000
> #define INV_ENG_BUSY_HQV1           0x00020000
> #define INV_ENG_BUSY_CR             0x00000010
> #define INV_ENG_BUSY_MPEG           0x00000008
> #define INV_ENG_BUSY_VQ             0x00000004
> #define INV_ENG_BUSY_2D             0x00000002
> #define INV_ENG_BUSY_3D             0x00001FE1
> That looks very different (and of course there is no guarantee it is
> correct, either).
> According to my tests the status register is always zero on my K8M890,
> and that is why the loop times out. So at least on Chrome9, it seems
> that none of the bits is inverted. Can you test that on a Unichrome?
> It may be possible to find a loop and a bit mask that works for both.
I don't think so.
Note that the open source via drm module does not support Chrome9 at 
all, although
VIA has provided some patches that haven't made it upstream yet.

The best way to handle this is to implement a completely different set 
of functions for the new
chipset and plug those in at module loading time.


> Regards,
> Thomas
> _______________________________________________
> Openchrome-devel mailing list
> Openchrome-devel at openchrome.org
> http://wiki.openchrome.org/mailman/listinfo/openchrome-devel

More information about the Openchrome-devel mailing list