public inbox for stable@vger.kernel.org
 help / color / mirror / Atom feed
* FAILED: patch "[PATCH] drm/amd/display: Defer BW-optimization-blocked DRR" failed to apply to 6.1-stable tree
@ 2025-05-19 12:02 gregkh
  2025-05-21 14:09 ` John Olender
  0 siblings, 1 reply; 2+ messages in thread
From: gregkh @ 2025-05-19 12:02 UTC (permalink / raw)
  To: john.olender, alexander.deucher, aurabindo.pillai, daniel.wheeler,
	ray.wu, sunpeng.li
  Cc: stable


The patch below does not apply to the 6.1-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable@vger.kernel.org>.

To reproduce the conflict and resubmit, you may use the following commands:

git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-6.1.y
git checkout FETCH_HEAD
git cherry-pick -x 874697e127931bf50a37ce9d96ee80f3a08a0c38
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<stable@vger.kernel.org>' --in-reply-to '2025051956-disdain-foyer-a53c@gregkh' --subject-prefix 'PATCH 6.1.y' HEAD^..

Possible dependencies:



thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

From 874697e127931bf50a37ce9d96ee80f3a08a0c38 Mon Sep 17 00:00:00 2001
From: John Olender <john.olender@gmail.com>
Date: Wed, 16 Apr 2025 02:54:26 -0400
Subject: [PATCH] drm/amd/display: Defer BW-optimization-blocked DRR
 adjustments

[Why & How]
Instead of dropping DRR updates, defer them. This fixes issues where
monitor continues to see incorrect refresh rate after VRR was turned off
by userspace.

Fixes: 32953485c558 ("drm/amd/display: Do not update DRR while BW optimizations pending")
Link: https://gitlab.freedesktop.org/drm/amd/-/issues/3546
Reviewed-by: Sun peng Li <sunpeng.li@amd.com>
Signed-off-by: John Olender <john.olender@gmail.com>
Signed-off-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
Signed-off-by: Ray Wu <ray.wu@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 53761b7ecd83e6fbb9f2206f8c980a6aa308c844)
Cc: stable@vger.kernel.org

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 1525c408d452..cc01b9c68b47 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -372,6 +372,8 @@ get_crtc_by_otg_inst(struct amdgpu_device *adev,
 static inline bool is_dc_timing_adjust_needed(struct dm_crtc_state *old_state,
 					      struct dm_crtc_state *new_state)
 {
+	if (new_state->stream->adjust.timing_adjust_pending)
+		return true;
 	if (new_state->freesync_config.state ==  VRR_STATE_ACTIVE_FIXED)
 		return true;
 	else if (amdgpu_dm_crtc_vrr_active(old_state) != amdgpu_dm_crtc_vrr_active(new_state))
diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c
index 28d1353f403d..ba4ce8a63158 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc.c
@@ -439,9 +439,12 @@ bool dc_stream_adjust_vmin_vmax(struct dc *dc,
 	 * Don't adjust DRR while there's bandwidth optimizations pending to
 	 * avoid conflicting with firmware updates.
 	 */
-	if (dc->ctx->dce_version > DCE_VERSION_MAX)
-		if (dc->optimized_required || dc->wm_optimized_required)
+	if (dc->ctx->dce_version > DCE_VERSION_MAX) {
+		if (dc->optimized_required || dc->wm_optimized_required) {
+			stream->adjust.timing_adjust_pending = true;
 			return false;
+		}
+	}
 
 	dc_exit_ips_for_hw_access(dc);
 
@@ -3168,7 +3171,8 @@ static void copy_stream_update_to_stream(struct dc *dc,
 
 	if (update->crtc_timing_adjust) {
 		if (stream->adjust.v_total_min != update->crtc_timing_adjust->v_total_min ||
-			stream->adjust.v_total_max != update->crtc_timing_adjust->v_total_max)
+			stream->adjust.v_total_max != update->crtc_timing_adjust->v_total_max ||
+			stream->adjust.timing_adjust_pending)
 			update->crtc_timing_adjust->timing_adjust_pending = true;
 		stream->adjust = *update->crtc_timing_adjust;
 		update->crtc_timing_adjust->timing_adjust_pending = false;


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: FAILED: patch "[PATCH] drm/amd/display: Defer BW-optimization-blocked DRR" failed to apply to 6.1-stable tree
  2025-05-19 12:02 FAILED: patch "[PATCH] drm/amd/display: Defer BW-optimization-blocked DRR" failed to apply to 6.1-stable tree gregkh
@ 2025-05-21 14:09 ` John Olender
  0 siblings, 0 replies; 2+ messages in thread
From: John Olender @ 2025-05-21 14:09 UTC (permalink / raw)
  To: alexander.deucher
  Cc: stable, gregkh, aurabindo.pillai, daniel.wheeler, ray.wu,
	sunpeng.li, danny.wang, Zhongwei.Zhang, chiahsuan.chung,
	anthony.koo, robin.chen, charlene.liu

On 5/19/25 8:02 AM, gregkh@linuxfoundation.org wrote:
> 
> The patch below does not apply to the 6.1-stable tree.
> If someone wants it applied there, or to any other stable or longterm
> tree, then please email the backport, including the original git commit
> id to <stable@vger.kernel.org>.
> 
> To reproduce the conflict and resubmit, you may use the following commands:
> 
> git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-6.1.y
> git checkout FETCH_HEAD
> git cherry-pick -x 874697e127931bf50a37ce9d96ee80f3a08a0c38
> # <resolve conflicts, build, test, etc.>
> git commit -s
> git send-email --to '<stable@vger.kernel.org>' --in-reply-to '2025051956-disdain-foyer-a53c@gregkh' --subject-prefix 'PATCH 6.1.y' HEAD^..
> 
> Possible dependencies:
> 
> 
> 
> thanks,
> 
> greg k-h

Alex,

This patch depends on the following commits:

1. bd00b29b5f23 drm/amd/display: Do not enable replay when vtotal update is pending.
2. 34935701b7ed drm/amd/display: Correct timing_adjust_pending flag setting.

These look to be a fix for the panel replay feature.  They can be
cherry-picked cleanly for 6.14.y, but conflicts need to be fixed for the
earlier kernels.

6.1.y doesn't appear to support panel replay though.  I don't know if
the resulting commits should be squashed or just reworded.

Anyway, please let me know if you need anything from me on this.

Thanks,
John

> 
> ------------------ original commit in Linus's tree ------------------
> 
> From 874697e127931bf50a37ce9d96ee80f3a08a0c38 Mon Sep 17 00:00:00 2001
> From: John Olender <john.olender@gmail.com>
> Date: Wed, 16 Apr 2025 02:54:26 -0400
> Subject: [PATCH] drm/amd/display: Defer BW-optimization-blocked DRR
>  adjustments
> 
> [Why & How]
> Instead of dropping DRR updates, defer them. This fixes issues where
> monitor continues to see incorrect refresh rate after VRR was turned off
> by userspace.
> 
> Fixes: 32953485c558 ("drm/amd/display: Do not update DRR while BW optimizations pending")
> Link: https://gitlab.freedesktop.org/drm/amd/-/issues/3546
> Reviewed-by: Sun peng Li <sunpeng.li@amd.com>
> Signed-off-by: John Olender <john.olender@gmail.com>
> Signed-off-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
> Signed-off-by: Ray Wu <ray.wu@amd.com>
> Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
> (cherry picked from commit 53761b7ecd83e6fbb9f2206f8c980a6aa308c844)
> Cc: stable@vger.kernel.org
> 
> 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 1525c408d452..cc01b9c68b47 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -372,6 +372,8 @@ get_crtc_by_otg_inst(struct amdgpu_device *adev,
>  static inline bool is_dc_timing_adjust_needed(struct dm_crtc_state *old_state,
>  					      struct dm_crtc_state *new_state)
>  {
> +	if (new_state->stream->adjust.timing_adjust_pending)
> +		return true;
>  	if (new_state->freesync_config.state ==  VRR_STATE_ACTIVE_FIXED)
>  		return true;
>  	else if (amdgpu_dm_crtc_vrr_active(old_state) != amdgpu_dm_crtc_vrr_active(new_state))
> diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c
> index 28d1353f403d..ba4ce8a63158 100644
> --- a/drivers/gpu/drm/amd/display/dc/core/dc.c
> +++ b/drivers/gpu/drm/amd/display/dc/core/dc.c
> @@ -439,9 +439,12 @@ bool dc_stream_adjust_vmin_vmax(struct dc *dc,
>  	 * Don't adjust DRR while there's bandwidth optimizations pending to
>  	 * avoid conflicting with firmware updates.
>  	 */
> -	if (dc->ctx->dce_version > DCE_VERSION_MAX)
> -		if (dc->optimized_required || dc->wm_optimized_required)
> +	if (dc->ctx->dce_version > DCE_VERSION_MAX) {
> +		if (dc->optimized_required || dc->wm_optimized_required) {
> +			stream->adjust.timing_adjust_pending = true;
>  			return false;
> +		}
> +	}
>  
>  	dc_exit_ips_for_hw_access(dc);
>  
> @@ -3168,7 +3171,8 @@ static void copy_stream_update_to_stream(struct dc *dc,
>  
>  	if (update->crtc_timing_adjust) {
>  		if (stream->adjust.v_total_min != update->crtc_timing_adjust->v_total_min ||
> -			stream->adjust.v_total_max != update->crtc_timing_adjust->v_total_max)
> +			stream->adjust.v_total_max != update->crtc_timing_adjust->v_total_max ||
> +			stream->adjust.timing_adjust_pending)
>  			update->crtc_timing_adjust->timing_adjust_pending = true;
>  		stream->adjust = *update->crtc_timing_adjust;
>  		update->crtc_timing_adjust->timing_adjust_pending = false;
> 


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2025-05-21 14:09 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-19 12:02 FAILED: patch "[PATCH] drm/amd/display: Defer BW-optimization-blocked DRR" failed to apply to 6.1-stable tree gregkh
2025-05-21 14:09 ` John Olender

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox