Re: FAILED: patch "[PATCH] drm/amdgpu/display/mst: Fix mst_state->pbn_div and slot count" failed to apply to 6.1-stable tree

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

 



Hi,

On Fri, Mar 10, 2023 at 12:36:33PM +0100, gregkh@xxxxxxxxxxxxxxxxxxx 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@xxxxxxxxxxxxxxx>.
> 
> 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 c689e1e362ea29d10fbd9a5e94b17be991d0e231
> # <resolve conflicts, build, test, etc.>
> git commit -s
> git send-email --to '<stable@xxxxxxxxxxxxxxx>' --in-reply-to '167844819310084@xxxxxxxxx' --subject-prefix 'PATCH 6.1.y' HEAD^..
> 
> Possible dependencies:
> 
> c689e1e362ea ("drm/amdgpu/display/mst: Fix mst_state->pbn_div and slot count assignments")
> 
> thanks,
> 
> greg k-h
> 
> ------------------ original commit in Linus's tree ------------------
> 
> From c689e1e362ea29d10fbd9a5e94b17be991d0e231 Mon Sep 17 00:00:00 2001
> From: Lyude Paul <lyude@xxxxxxxxxx>
> Date: Wed, 23 Nov 2022 14:50:16 -0500
> Subject: [PATCH] drm/amdgpu/display/mst: Fix mst_state->pbn_div and slot count
>  assignments
> 
> Looks like I made a pretty big mistake here without noticing: it seems when
> I moved the assignments of mst_state->pbn_div I completely missed the fact
> that the reason for us calling drm_dp_mst_update_slots() earlier was to
> account for the fact that we need to call this function using info from the
> root MST connector, instead of just trying to do this from each MST
> encoder's atomic check function. Otherwise, we end up filling out all of
> DC's link information with zeroes.
> 
> So, let's restore that and hopefully fix this DSC regression.
> 
> Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/2171
> Signed-off-by: Lyude Paul <lyude@xxxxxxxxxx>
> Signed-off-by: Harry Wentland <harry.wentland@xxxxxxx>
> Fixes: 4d07b0bc4034 ("drm/display/dp_mst: Move all payload info into the atomic state")
> Cc: stable@xxxxxxxxxxxxxxx # 6.1
> Reviewed-by: Harry Wentland <harry.wentland@xxxxxxx>
> Tested-by: Didier Raboud <odyx@xxxxxxxxxx>
> Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
> 
> 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 39513a6d2244..2122c2be269b 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -9683,6 +9683,8 @@ static int amdgpu_dm_atomic_check(struct drm_device *dev,
>  	struct drm_connector_state *old_con_state, *new_con_state;
>  	struct drm_crtc *crtc;
>  	struct drm_crtc_state *old_crtc_state, *new_crtc_state;
> +	struct drm_dp_mst_topology_mgr *mgr;
> +	struct drm_dp_mst_topology_state *mst_state;
>  	struct drm_plane *plane;
>  	struct drm_plane_state *old_plane_state, *new_plane_state;
>  	enum dc_status status;
> @@ -9938,6 +9940,28 @@ static int amdgpu_dm_atomic_check(struct drm_device *dev,
>  		lock_and_validation_needed = true;
>  	}
>  
> +#if defined(CONFIG_DRM_AMD_DC_DCN)
> +	/* set the slot info for each mst_state based on the link encoding format */
> +	for_each_new_mst_mgr_in_state(state, mgr, mst_state, i) {
> +		struct amdgpu_dm_connector *aconnector;
> +		struct drm_connector *connector;
> +		struct drm_connector_list_iter iter;
> +		u8 link_coding_cap;
> +
> +		drm_connector_list_iter_begin(dev, &iter);
> +		drm_for_each_connector_iter(connector, &iter) {
> +			if (connector->index == mst_state->mgr->conn_base_id) {
> +				aconnector = to_amdgpu_dm_connector(connector);
> +				link_coding_cap = dc_link_dp_mst_decide_link_encoding_format(aconnector->dc_link);
> +				drm_dp_mst_update_slots(mst_state, link_coding_cap);
> +
> +				break;
> +			}
> +		}
> +		drm_connector_list_iter_end(&iter);
> +	}
> +#endif
> +
>  	/**
>  	 * Streams and planes are reset when there are changes that affect
>  	 * bandwidth. Anything that affects bandwidth needs to go through
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
> index 5fa9bab95038..e8d14ab0953a 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
> @@ -927,11 +927,6 @@ static int compute_mst_dsc_configs_for_link(struct drm_atomic_state *state,
>  	if (IS_ERR(mst_state))
>  		return PTR_ERR(mst_state);
>  
> -	mst_state->pbn_div = dm_mst_get_pbn_divider(dc_link);
> -#if defined(CONFIG_DRM_AMD_DC_DCN)
> -	drm_dp_mst_update_slots(mst_state, dc_link_dp_mst_decide_link_encoding_format(dc_link));
> -#endif
> -
>  	/* Set up params */
>  	for (i = 0; i < dc_state->stream_count; i++) {
>  		struct dc_dsc_policy dsc_policy = {0};

FWIW, I'm not sure what happened here exactly. The commit was applied
for the first time in 1119e1f9636b76aef14068c7fd0b4d55132b86b8 in
6.2-rc6, backported to 6.1.9. Then again as
c689e1e362ea29d10fbd9a5e94b17be991d0e231 in 6.3-rc1.

Similar for the related commits, which was one of the major blocking
regressions for the 6.1 series.

Just wanted to mention here as noiced the failed apply mail.

Regards,
Salvatore



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux