Currently, all HPD interrupt handling must go through the HPD state machine.
This has caused many issues where the DRM framework assumes that DP is in one state while the state machine is stuck in another state. As discussed here [1], this series: - Removes the state machine - Moves link training to atomic_enable() - Changes the detect() behavior to return true if a display is physically plugged in (as opposed to if the DP link is ready). - Remove event queue and move internal HPD handling to hpd_notify() I'm not completely satisfied with the PM runtime handling, I might want to review it at the next iterations or with the another series. Note: eDP is mostly untested. [1] https://patchwork.freedesktop.org/patch/656312/?series=142010&rev=2#comment_1201738 --- Changes in v3: - Take over the series (thanks, Jessica, for the previous work!) - Major rework of the series, squashed the set of patches touching the HPD states and handling, it is easier to do it this way rather than pulling the strings one by one. - Link to v2: https://lore.kernel.org/r/[email protected] Changes in v2: - Dropped event queue (Dmitry) - Moved internal HPD handling to use hpd_notify() (Dmitry) - Reworked bridge detect() to read DPCP and sink count (Dmitry) - Moved setting of link_trained to plug/unplugged handling - Dropped msm_dp::connected (Dmitry) - Squashed all hpd state related patches (Dmitry) - Link to v1: https://lore.kernel.org/r/[email protected] --- Dmitry Baryshkov (1): drm/msm/dp: drop event data Jessica Zhang (7): drm/msm/dp: fix HPD state status bit shift value drm/msm/dp: Fix the ISR_* enum values drm/msm/dp: Read DPCD and sink count in bridge detect() drm/msm/dp: Move link training to atomic_enable() drm/msm/dp: Drop EV_USER_NOTIFICATION drm/msm/dp: rework HPD handling drm/msm/dp: Add sink_count and link_ready to debug logs 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 | 673 +++++++++++------------------------- drivers/gpu/drm/msm/dp/dp_display.h | 2 +- drivers/gpu/drm/msm/dp/dp_drm.c | 22 +- drivers/gpu/drm/msm/dp/dp_drm.h | 2 + drivers/gpu/drm/msm/dp/dp_reg.h | 4 +- 7 files changed, 208 insertions(+), 518 deletions(-) --- base-commit: b775e489bec70895b7ef6b66927886bbac79598f change-id: 20250523-hpd-refactor-74e25b55620a Best regards, -- With best wishes Dmitry
