drm/amd/display: Fix GPU scaling regression by FS video support
authorNicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Wed, 19 May 2021 20:12:19 +0000 (16:12 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 2 Jun 2021 21:48:32 +0000 (17:48 -0400)
commita53085c1d20f914590fe446d01d4546150758983
tree03b903629174a30e2b6ae49d1fcf005480d67e68
parentba8e59773ae59818695d1e20b8939282da80ec8c
drm/amd/display: Fix GPU scaling regression by FS video support

[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: 6f59f229f8ed7a ("drm/amd/display: Skip modeset for front porch change")

Cc: Aurabindo Pillai <aurabindo.pillai@amd.com>
Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Reviewed-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c