Patch "drm/amd/display: Add affected crtcs to atomic state for dsc mst unplug" has been added to the 5.17-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    drm/amd/display: Add affected crtcs to atomic state for dsc mst unplug

to the 5.17-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     drm-amd-display-add-affected-crtcs-to-atomic-state-f.patch
and it can be found in the queue-5.17 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 6b79a292f4c15622f5e1ec55df43992895ab050b
Author: Roman Li <Roman.Li@xxxxxxx>
Date:   Thu Dec 23 17:39:57 2021 -0500

    drm/amd/display: Add affected crtcs to atomic state for dsc mst unplug
    
    [ Upstream commit 128f8ed5902a287a6bb4afe0ffdae8a80b2a64ec ]
    
    [Why]
    When display topology changed on DSC hub we add all crtcs with dsc support to
    atomic state.
    Refer to patch:"drm/amd/display: Trigger modesets on MST DSC connectors"
    However the original implementation may skip crtc if the topology change
    caused by unplug.
    That potentially could lead to no-lightup or corruption on DSC hub after
    unplug event on one of the connectors.
    
    [How]
    Update add_affected_mst_dsc_crtcs() to use old connector state
    if new connector state has no crtc (undergoes modeset due to unplug)
    
    Fixes: 44be939ff7ac58 ("drm/amd/display: Trigger modesets on MST DSC connectors")
    
    Reviewed-by: Hersen Wu <hersenwu@xxxxxxx>
    Acked-by: Jasdeep Dhillon <jdhillon@xxxxxxx>
    Signed-off-by: Roman Li <Roman.Li@xxxxxxx>
    Tested-by: Daniel Wheeler <daniel.wheeler@xxxxxxx>
    Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index 5f4a346c9c2a..eae9f9e26f0e 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -10861,10 +10861,13 @@ static int dm_check_crtc_cursor(struct drm_atomic_state *state,
 static int add_affected_mst_dsc_crtcs(struct drm_atomic_state *state, struct drm_crtc *crtc)
 {
 	struct drm_connector *connector;
-	struct drm_connector_state *conn_state;
+	struct drm_connector_state *conn_state, *old_conn_state;
 	struct amdgpu_dm_connector *aconnector = NULL;
 	int i;
-	for_each_new_connector_in_state(state, connector, conn_state, i) {
+	for_each_oldnew_connector_in_state(state, connector, old_conn_state, conn_state, i) {
+		if (!conn_state->crtc)
+			conn_state = old_conn_state;
+
 		if (conn_state->crtc != crtc)
 			continue;
 



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux