• Nicholas Kazlauskas's avatar
    drm/amd/display: Fix GPU scaling regression by FS video support · b0781603
    Nicholas Kazlauskas authored
    [Why]
    FS video support regressed GPU scaling and the scaled buffer ends up
    stuck in the top left of the screen at native size - full, aspect,
    center scaling modes do not function.
    
    This is because decide_crtc_timing_for_drm_display_mode() does not
    get called when scaling is enabled.
    
    [How]
    Split recalculate timing and scaling into two different flags.
    
    We don't want to call drm_mode_set_crtcinfo() for scaling, but we
    do want to call it for FS video.
    
    Optimize and move preferred_refresh calculation next to
    decide_crtc_timing_for_drm_display_mode() like it used to be since
    that's not used for FS video.
    
    We don't need to copy over the VIC or polarity in the case of FS video
    modes because those don't change.
    
    Fixes: 6f59f229 ("drm/amd/display: Skip modeset for front porch change")
    
    Cc: Aurabindo Pillai <aurabindo.pillai@amd.com>
    Signed-off-by: default avatarNicholas Kazlauskas <nicholas.kazlauskas@amd.com>
    Reviewed-by: default avatarAurabindo Pillai <aurabindo.pillai@amd.com>
    Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
    b0781603
amdgpu_dm.c 309 KB