On 21.01.2016 19:08, Daniel Vetter wrote:
These should be functionally equivalent to the older per/post modeset functions, except that they block out drm_vblank_get right away. There's only the clock adjusting code (outside of pageflips) in readone which uses drm_vblank_get. But that code doesn't synchronize against concurrent modesets and instead handles any such races by waiting for the right vblank to arrive with a short timetout.
The longer-term plan here is to switch all kms drivers to drm_vblank_on/off so that common code like pending event cleanup can be done there, while drm_vblank_pre/post_modeset will be purely drm internal for the old UMS ioctl.
Note that with this patch Michel uncovered a bug in the dri3 implementation of the DDX (it does vblank waits when the pipe is off), which had to be fixed first.
Cc: Michel Dänzer michel.daenzer@amd.com Acked-and-tested-by: Michel Dänzer michel.daenzer@amd.com Signed-off-by: Daniel Vetter daniel.vetter@intel.com
Note that this should be rebased onto Mario's PM fixes, but those might go to 4.5 / stable anyway.