Comment 108 for bug 586325

Revision history for this message
In , Chris Wilson (ickle) wrote :

I forgot to check whether fb->width was signed or not. Hmm, should check with sparse more often I guess. Thanks for spotting that.

CURAPOS:
"This register specifies the physical memory address at which the cursor image data is located. Writes to this register acts like a trigger that enables atomic updates of the cursor registers. When updating the cursor registers, this register should be written last in the sequence. This register should be written even if the actual contents did not change to allow the holding registers to move to the active registers on the next VBLANK."

Hmm, but if the cursor is enabled first with an invalid position what happens? Yes, the update to base and the pos updated is buffered until the next vblank, but that smells like a race and elsewhere the docs say that CUR*BASE should be written last to trigger the updates...