On Fri, Aug 08, 2025 at 05:35:23PM -0700, Jessica Zhang wrote: > Since internal HPD IRQ event handling has been moved to being handled by > the DRM framework detect() and hpd_notify() callbacks, there is no need > for the MSM driver to track the HPD state separately. > > Drop all references to the HPD state machine and replace existing checks > with checks for link_ready or sink_count.
After this patch there should no more difference between 'internal_hpd' and 'external_hpd' cases. However, the code still tries to make the difference for some reason. There are several places where the driver calls msm_dp_display_send_hpd_notification(), e.g. msm_dp_hpd_unplug_handle(), msm_dp_display_process_hpd_high(), etc. These functions are called from msm_dp_bridge_hpd_notify(), which means that we can end up with the lock ups because of the event loops. > > Signed-off-by: Jessica Zhang <jessica.zh...@oss.qualcomm.com> > --- > drivers/gpu/drm/msm/dp/dp_ctrl.c | 22 ------ > drivers/gpu/drm/msm/dp/dp_ctrl.h | 1 - > drivers/gpu/drm/msm/dp/dp_display.c | 148 > +++++++++--------------------------- > 3 files changed, 34 insertions(+), 137 deletions(-) > -- With best wishes Dmitry