• Daniel Vetter's avatar
    drm/radeon: Switch to drm_vblank_on/off · 777e3cbc
    Daniel Vetter authored
    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: default avatarMichel Dänzer <michel.daenzer@amd.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
    Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
    777e3cbc
radeon_legacy_crtc.c 32.8 KB