On 24 May 2016 at 09:27, Tomeu Vizoso tomeu.vizoso@collabora.com wrote:
As per the docs, atomic_commit should return -EBUSY "if an asycnhronous updated is requested and there is an earlier updated pending".
v2: Use the status of the workqueue instead of vop->event, and don't add a superfluous wait on the workqueue.
v3: Drop work_busy, as there's a sizeable delay when the worker finishes, which introduces a race in which the client has already received the last flip event but the next page flip ioctl will still return -EBUSY because work_busy returns outdated information.
v4: Hold dev->event_lock while checking the VOP's event field as suggested by Daniel Stone.
v5: Only block if there's outstanding work if it's a blocking call.
Signed-off-by: Tomeu Vizoso tomeu.vizoso@collabora.com
Reviewed-by: Daniel Stone daniels@collabora.com
Cheers, Daniel