• Mario Kleiner's avatar
    drm/amd/display: Prevent vblank irq disable while VRR is active. (v3) · 66b0c973
    Mario Kleiner authored
    During VRR mode we can not allow vblank irq dis-/enable
    transitions, as an enable after a disable can happen at
    an arbitrary time during the video refresh cycle, e.g.,
    with a high likelyhood inside vblank front-porch. An
    enable during front-porch would cause vblank timestamp
    updates/calculations which are completely bogus, given
    the code can't know when the vblank will end as long
    as we are in front-porch with no page flip completed.
    
    Hold a permanent vblank reference on the crtc while
    in active VRR mode to prevent a vblank disable, and
    drop the reference again when switching back to fixed
    refresh rate non-VRR mode.
    
    v2: Make sure transition is also handled if vrr is
        disabled and stream gets disabled in the same
        atomic commit by moving the call to the transition
        function outside of plane commit.
        Suggested by Nicholas.
    
    v3: Trivial rebase onto previous patch.
    Signed-off-by: default avatarMario Kleiner <mario.kleiner.de@gmail.com>
    Reviewed-by: default avatarNicholas Kazlauskas <nicholas.kazlauskas@amd.com>
    Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
    66b0c973
amdgpu_dm.c 176 KB