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 v4: - Added bindings patches. Dropped hpd-gpios from the IFC6410 board DT. - Fixed checkpatch.pl warning about non-const string arrays. - Rebased on top of linux-next and the MSM HDMI patchset. - Link to v3: https://lore.kernel.org/r/20240623-fd-hdmi-hpd-v3-0-8645a64cbd63@xxxxxxxxxx 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 (16): dt-bindings: display/msm/hdmi: drop obsolete GPIOs from schema dt-bindings: display/msm: hdmi: drop hpd-gpios drm/msm/hdmi: convert clock and regulator arrays to const arrays 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 ARM: dts: qcom: apq8064-ifc6410: drop HDMI HPD GPIO .../devicetree/bindings/display/msm/hdmi.yaml | 20 --- arch/arm/boot/dts/qcom/qcom-apq8064-ifc6410.dts | 1 - drivers/gpu/drm/msm/hdmi/hdmi.c | 147 ++++++++++----------- drivers/gpu/drm/msm/hdmi/hdmi.h | 28 ++-- drivers/gpu/drm/msm/hdmi/hdmi_bridge.c | 55 +++----- drivers/gpu/drm/msm/hdmi/hdmi_hpd.c | 141 ++++---------------- drivers/gpu/drm/msm/hdmi/hdmi_i2c.c | 14 +- drivers/gpu/drm/msm/hdmi/hdmi_phy.c | 6 +- 8 files changed, 141 insertions(+), 271 deletions(-) --- base-commit: 866e43b945bf98f8e807dfa45eca92f931f3a032 change-id: 20240522-fd-hdmi-hpd-e3868deb6ae0 prerequisite-change-id: 20240307-bridge-hdmi-connector-7e3754e661d0:v7 prerequisite-patch-id: 2ab3eb29f644faba596a27259c8c4d35f824b37b prerequisite-patch-id: 469e655ccdfd1989d58b043a6b4766d40a334ba4 prerequisite-patch-id: caf6f731bbce246ee20f92f128a1480c230aa9f3 prerequisite-patch-id: 56a9d57d44360d0913023c4d77f765c2ebf29749 prerequisite-patch-id: ac7b8e8a14af4f45170ef5df6a632adb6d8ed483 prerequisite-patch-id: 4b6ed8a13b525d2c6a3ee449ba2381041d78dacd prerequisite-patch-id: 396e7abb756bb9c8818d44dca8fb3f819c011ee0 Best regards, -- Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx>