Re: [PATCH 1/2] drm/amd/dm: Don't forget to attach MST encoders

From: Lyude Paul
Date: Mon Nov 19 2018 - 13:51:58 EST


Cool! If it did actually fix those problems, would you mind making sure this
gets Cc'd to stable when it gets pushed upstream?

On Mon, 2018-11-19 at 15:00 +0000, Zuo, Jerry wrote:
> Reviewed-by: Jerry (Fangzhi) Zuo <Jerry.Zuo@xxxxxxx>
>
> The change fixed MST + SST daisy chain and S3 scenarios. The issue shows
> huge delay in MST + SST daisy chain, and soft hang in S3 resume.
>
> The aux sequence is changed by failed iteration search in
> drm_connector_for_each_possible_encoder().
> The failure of searching for the best encoder for the connector due to the
> miss of attached encoder in the process of adding MST connector. The
> iteration search takes time to push drm_dp_send_enum_path_resources() aux
> transaction after the mode probe, and causes conflict to
> drm_dp_mst_i2c_xfer(), leading to the aux transaction timeout.
>
> -----Original Message-----
> From: Lyude Paul <lyude@xxxxxxxxxx>
> Sent: November 16, 2018 6:25 PM
> To: amd-gfx@xxxxxxxxxxxxxxxxxxxxx
> Cc: Zuo, Jerry <Jerry.Zuo@xxxxxxx>; Wentland, Harry <Harry.Wentland@xxxxxxx>
> ; Li, Sun peng (Leo) <Sunpeng.Li@xxxxxxx>; Deucher, Alexander <
> Alexander.Deucher@xxxxxxx>; Koenig, Christian <Christian.Koenig@xxxxxxx>;
> Zhou, David(ChunMing) <David1.Zhou@xxxxxxx>; David Airlie <airlied@xxxxxxxx>
> ; Li, Roman <Roman.Li@xxxxxxx>; S, Shirish <Shirish.S@xxxxxxx>; Daniel
> Vetter <daniel.vetter@xxxxxxxx>; dri-devel@xxxxxxxxxxxxxxxxxxxxx;
> linux-kernel@xxxxxxxxxxxxxxx
> Subject: [PATCH 1/2] drm/amd/dm: Don't forget to attach MST encoders
>
> Drive-by fix, this is bound to cause problems somewhere.
>
> Signed-off-by: Lyude Paul <lyude@xxxxxxxxxx>
> Cc: Jerry Zuo <Jerry.Zuo@xxxxxxx>
> ---
> drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> 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 d02c32a1039c..0cca1809fdcd 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
> @@ -342,6 +342,8 @@ dm_dp_add_mst_connector(struct drm_dp_mst_topology_mgr
> *mgr,
> master->connector_id);
>
> aconnector->mst_encoder = dm_dp_create_fake_mst_encoder(master);
> + drm_connector_attach_encoder(&aconnector->base,
> + &aconnector->mst_encoder->base);
>
> /*
> * TODO: understand why this one is needed
--
Cheers,
Lyude Paul