Quoting Kuogee Hsieh (2022-04-22 16:45:23)
Current DP driver implementation has adding safe mode done at dp_hpd_plug_handle() which is expected to be executed under event thread context.
However there is possible circular locking happen (see blow stack trace) after edp driver call dp_hpd_plug_handle() from dp_bridge_enable() which is executed under drm_thread context.
To break this circular locking, this patch have safe mode added at dp_connector_get_mode() which is executed under drm thread context. Therefore no lock acquired required for &dev->mode_config.mutex while adding fail safe mode since it has been hold by drm thread already.
Reported-by: Douglas Anderson dianders@chromium.org Fixes: 8b2c181e3dcf ("drm/msm/dp: add fail safe mode outside of event_mutex context") Reviewed-by: Stephen Boyd swboyd@chromium.org