The MSM HDMI driver is plagued with the long-standing bug. If HDMI cable is disconnected, in most of the cases cable reconnection will not be detected properly. We have been carrying the patch from [1] in our integration tree for ages. The time has come to fix the long-standing bug and implement proper HPD handling. This series was tested on msm8996 and apq8064 boards. Previously HPD handling sometimes could trigger in the CRTC event handling, however I can no longer reproduce it now. [1] https://lore.kernel.org/linux-arm-msm/20171027105732.19235-2-architt@xxxxxxxxxxxxxx/ --- Changes in v3: - Rebase on top of linux-next - Dropped the patches that were replaced by the HDMI Connector framework - Picked up the mode_set -> atomic_pre_enable patch - Link to v2: https://lore.kernel.org/r/20240522-fd-hdmi-hpd-v2-0-c30bdb7c5c7e@xxxxxxxxxx --- Dmitry Baryshkov (13): drm/msm/hdmi: program HDMI timings during atomic_pre_enable drm/msm/hdmi: move the alt_iface clock to the hpd list drm/msm/hdmi: simplify extp clock handling drm/msm/hdmi: drop clock frequency assignment drm/msm/hdmi: switch to clk_bulk API drm/msm/hdmi: switch to pm_runtime_resume_and_get() drm/msm/hdmi: add runtime PM calls to DDC transfer function drm/msm/hdmi: implement proper runtime PM handling drm/msm/hdmi: rename hpd_clks to pwr_clks drm/msm/hdmi: expand the HDMI_CFG macro drm/msm/hdmi: drop hpd-gpios support drm/msm/hdmi: ensure that HDMI is up if HPD is requested drm/msm/hdmi: wire in hpd_enable/hpd_disable bridge ops drivers/gpu/drm/msm/hdmi/hdmi.c | 145 ++++++++++++++++----------------- drivers/gpu/drm/msm/hdmi/hdmi.h | 26 ++---- drivers/gpu/drm/msm/hdmi/hdmi_bridge.c | 73 ++++++++--------- drivers/gpu/drm/msm/hdmi/hdmi_hpd.c | 142 ++++++-------------------------- drivers/gpu/drm/msm/hdmi/hdmi_i2c.c | 14 +++- drivers/gpu/drm/msm/hdmi/hdmi_phy.c | 6 +- 6 files changed, 150 insertions(+), 256 deletions(-) --- base-commit: d6beed9e425d272d4a332e6ee684ac457f91b570 change-id: 20240522-fd-hdmi-hpd-e3868deb6ae0 Best regards, -- Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx>