drm/amd/display: Fix duplicating scaling/underscan connector state
authorNicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Fri, 7 Dec 2018 15:07:09 +0000 (10:07 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 11 Dec 2018 20:52:36 +0000 (15:52 -0500)
[Why]
These properties aren't being carried over when the atomic state.
This tricks atomic check and commit tail into performing underscan
and scaling operations when they aren't needed.

With the patch that forced scaling/RMX_ASPECT on by default this
results in many unnecessary surface updates and hangs under certain
conditions.

[How]
Duplicate the properties.

Fixes: 91b66c47ba34 ("drm/amd/display: Set RMX_ASPECT as default")

Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Leo Li <sunpeng.li@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c

index e40684a..ad0848d 100644 (file)
@@ -3240,6 +3240,10 @@ amdgpu_dm_connector_atomic_duplicate_state(struct drm_connector *connector)
 
        new_state->freesync_capable = state->freesync_capable;
        new_state->abm_level = state->abm_level;
+       new_state->scaling = state->scaling;
+       new_state->underscan_enable = state->underscan_enable;
+       new_state->underscan_hborder = state->underscan_hborder;
+       new_state->underscan_vborder = state->underscan_vborder;
        new_state->max_bpc = state->max_bpc;
 
        return &new_state->base;