On August 6, 2024 2:19:46 AM GMT+07:00, Abhinav Kumar <quic_abhinavk@xxxxxxxxxxx> wrote: > > >On 8/2/2024 12:47 PM, Dmitry Baryshkov wrote: >> During suspend/resume process all connectors are explicitly disabled and >> then reenabled. However resume fails because of the connector_status check: >> >> [ 1185.831970] [dpu error]connector not connected 3 >> >> It doesn't make sense to check for the Writeback connected status (and >> other drivers don't perform such check), so drop the check. >> >> Fixes: 71174f362d67 ("drm/msm/dpu: move writeback's atomic_check to dpu_writeback.c") >> Cc: stable@xxxxxxxxxxxxxxx >> Reported-by: Leonard Lausen <leonard@xxxxxxxxx> >> Closes: https://gitlab.freedesktop.org/drm/msm/-/issues/57 >> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx> >> --- >> drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c | 3 --- >> 1 file changed, 3 deletions(-) >> >> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c >> index 16f144cbc0c9..8ff496082902 100644 >> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c >> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c >> @@ -42,9 +42,6 @@ static int dpu_wb_conn_atomic_check(struct drm_connector *connector, >> if (!conn_state || !conn_state->connector) { >> DPU_ERROR("invalid connector state\n"); >> return -EINVAL; >> - } else if (conn_state->connector->status != connector_status_connected) { >> - DPU_ERROR("connector not connected %d\n", conn_state->connector->status); >> - return -EINVAL; >> } > >For this issue, do we hit the connector->force = DRM_FORCE_OFF path? It was hit during the suspend/resume, so yes, it is a forced off, but by the different means. > >Because otherwise, writeback does not implement .detect() callback today so its always connected. It is undefined/unkown (3), not connected (1) > >But if that was the case how come this error is only for writeback. Even DP has the same connected check in atomic_check() > >Change seems fine with me because ideally this seems like a no-op to me because writeback connector is assumed to be always connected but the issue is missing some details here. > >> crtc = conn_state->crtc; >> -- With best wishes Dmitry