RE: [PATCH 3/3] drm/amd/display: Solve mst monitors blank out problem after resume

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

 



[AMD Official Use Only - AMD Internal Distribution Only]

Reviewed-by: Fangzhi Zuo <jerry.zuo@xxxxxxx>

> -----Original Message-----
> From: Wayne Lin <Wayne.Lin@xxxxxxx>
> Sent: Wednesday, June 26, 2024 4:48 AM
> To: amd-gfx@xxxxxxxxxxxxxxxxxxxxx; dri-devel@xxxxxxxxxxxxxxxxxxxxx
> Cc: lyude@xxxxxxxxxx; jani.nikula@xxxxxxxxx; imre.deak@xxxxxxxxx;
> daniel@xxxxxxxx; Wentland, Harry <Harry.Wentland@xxxxxxx>; Zuo, Jerry
> <Jerry.Zuo@xxxxxxx>; Lin, Wayne <Wayne.Lin@xxxxxxx>
> Subject: [PATCH 3/3] drm/amd/display: Solve mst monitors blank out problem
> after resume
>
> [Why]
> In dm resume, we firstly restore dc state and do the mst resume for topology
> probing thereafter. If we change dpcd DP_MSTM_CTRL value after LT in mst
> reume, it will cause light up problem on the hub.
>
> [How]
> Revert the commit 202dc359adda ("drm/amd/display: Defer handling mst up
> request in resume"). And adjust the reason to trigger dc_link_detect by
> DETECT_REASON_RESUMEFROMS3S4.
>
> Fixes: 202dc359adda ("drm/amd/display: Defer handling mst up request in
> resume")
> Signed-off-by: Wayne Lin <Wayne.Lin@xxxxxxx>
> ---
>  drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> 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 c64cc2378a94..b01452eb0981 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -2569,6 +2569,7 @@ static void resume_mst_branch_status(struct
> drm_dp_mst_topology_mgr *mgr)
>
>       ret = drm_dp_dpcd_writeb(mgr->aux, DP_MSTM_CTRL,
>                                DP_MST_EN |
> +                              DP_UP_REQ_EN |
>                                DP_UPSTREAM_IS_SRC);
>       if (ret < 0) {
>               drm_dbg_kms(mgr->dev, "mst write failed - undocked during
> suspend?\n"); @@ -3171,7 +3172,7 @@ static int dm_resume(void *handle)
>               } else {
>                       mutex_lock(&dm->dc_lock);
>                       dc_exit_ips_for_hw_access(dm->dc);
> -                     dc_link_detect(aconnector->dc_link,
> DETECT_REASON_HPD);
> +                     dc_link_detect(aconnector->dc_link,
> DETECT_REASON_RESUMEFROMS3S4);
>                       mutex_unlock(&dm->dc_lock);
>               }
>
> --
> 2.37.3





[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux