• Nicholas Kazlauskas's avatar
    drm/amdgpu: Set FreeSync state using drm VRR properties · bb47de73
    Nicholas Kazlauskas authored
    Support for AMDGPU specific FreeSync properties and ioctls are dropped
    from amdgpu_dm in favor of supporting drm variable refresh rate
    properties.
    
    The notify_freesync and set_freesync_property functions are dropped
    from amdgpu_display_funcs.
    
    The drm vrr_capable property is now attached to any DP/HDMI connector.
    Its value is updated accordingly to the connector's FreeSync capabiltiy.
    
    The freesync_enable logic and ioctl control has has been dropped in
    favor of utilizing the vrr_enabled on the drm CRTC. This allows for more
    fine grained atomic control over which CRTCs should support variable
    refresh rate.
    
    To handle state changes for vrr_enabled it was easiest to drop the
    forced modeset on freesync_enabled change. This patch now performs the
    required stream updates when planes are flipped.
    
    This is done for a few reasons:
    
    (1) VRR stream updates can be done in the fast update path
    
    (2) amdgpu_dm_atomic_check would need to be hacked apart to check
        desired variable refresh state and capability before the CRTC
        disable pass.
    
    (3) Performing VRR stream updates on-flip is needed for enabling BTR
        support.
    
    VRR packets and timing adjustments are now tracked and compared to
    previous values sent to the hardware.
    Signed-off-by: default avatarNicholas Kazlauskas <nicholas.kazlauskas@amd.com>
    Reviewed-by: default avatarHarry Wentland <harry.wentland@amd.com>
    Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
    bb47de73
amdgpu_dm.c 165 KB