Patch "drm/amd/display: Fix artifacting on eDP panels when engaging freesync video mode" has been added to the 5.15-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: Fix artifacting on eDP panels when engaging freesync video mode

to the 5.15-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-fix-artifacting-on-edp-panels-when-e.patch
and it can be found in the queue-5.15 subdirectory.

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



commit 2d93f65ccdff98ba59f1c577aac05280c5a2a12c
Author: Aurabindo Pillai <aurabindo.pillai@xxxxxxx>
Date:   Wed May 17 14:39:46 2023 -0400

    drm/amd/display: Fix artifacting on eDP panels when engaging freesync video mode
    
    [ Upstream commit b18f05a0666aecd5cb19c26a8305bcfa4e9d6502 ]
    
    [Why]
    When freesync video mode is enabled, switching resolution from native
    mode to one of the freesync video compatible modes can trigger continous
    artifacts on some eDP panels when running under KDE. The articating can be seen in the
    attached bug report.
    
    [How]
    Fix this by restricting updates that require full commit by using the same checks
    for stream and scaling changes in the the enable pass of dm_update_crtc_state()
    along with the check for compatible timings for freesync vide mode.
    
    Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/2162
    Fixes: da5e14909776 ("drm/amd/display: Fix hang when skipping modeset")
    Signed-off-by: Aurabindo Pillai <aurabindo.pillai@xxxxxxx>
    Reviewed-by: Rodrigo Siqueira <Rodrigo.Siqueira@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 be863af956bb0..79ac19948e7af 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -10209,6 +10209,8 @@ static int dm_update_crtc_state(struct amdgpu_display_manager *dm,
 
 		/* Now check if we should set freesync video mode */
 		if (amdgpu_freesync_vid_mode && dm_new_crtc_state->stream &&
+		    dc_is_stream_unchanged(new_stream, dm_old_crtc_state->stream) &&
+		    dc_is_stream_scaling_unchanged(new_stream, dm_old_crtc_state->stream) &&
 		    is_timing_unchanged_for_freesync(new_crtc_state,
 						     old_crtc_state)) {
 			new_crtc_state->mode_changed = false;



[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