[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