[Openchrome-devel] Bugs in via_wait_idle()
Thomas Steffen
steffen.listaccount
Mon Feb 9 05:16:05 PST 2009
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:
#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.
Regards,
Thomas
More information about the Openchrome-devel
mailing list