[Openchrome-devel] Bugs in via_wait_idle()
Thomas Hellström
thomas
Tue Feb 10 00:14:41 PST 2009
Thomas,
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.
/Thomas
> 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