On Thu, Jan 16, 2014 at 05:55:06PM +0000, Damien Lespiau wrote:
- /* Wait 2 vblanks to be sure we will have the correct CRC value */
- intel_wait_for_vblank(dev, intel_crtc->pipe);
- intel_wait_for_vblank(dev, intel_crtc->pipe);
I think there's a better way to do this. There's a TEST_CRC_COUNT in TEST_SINK_MISC that is incremented everytime the CRCs are updated. You could:
- start by grabbing TEST_CRC_COUNT
- have a loop that waits for a vblank, check if the TEST_CRC_COUNT has changed
- return the new CRC if the update has occured
- or give up after a number of waits (say 10)
There seem to be support for an interrupt to come from the device to signal the CRCs are ready (AUTOMATED_TEST_REQUEST of DEVICE_SERVICE_IRQ_VECTOR), but that's pushing it :)