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 e40684a0ceb93070b76b99cb30191f96328609c2..ad0848dbd9093875386a6258e6158d21ed017aa4 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;