Skip to content

drm/bridge: display-connector: detect DP state if cable is plugged on boot#397

Merged
sgaud-quic merged 2 commits intoqualcomm-linux:qcom-6.18.yfrom
YongxingMou:for-2.0-DPprebot
Apr 8, 2026
Merged

drm/bridge: display-connector: detect DP state if cable is plugged on boot#397
sgaud-quic merged 2 commits intoqualcomm-linux:qcom-6.18.yfrom
YongxingMou:for-2.0-DPprebot

Conversation

@YongxingMou
Copy link
Copy Markdown

@YongxingMou YongxingMou commented Mar 31, 2026

Unlike the USB-C AltMode handling and unlike the DP controller handling
the HPD on its own, if the display-connector is being used to handle the
HPD pin, DP controller might not be able to get either the HPD
notification nor detect the cable state if the cable is plugged in
before the system has booted.

Make the display-connector send the HPD notifications during system
startup for DisplayPort connectors.

It's typically not a problem for other types of display connectors since
there is no special procedure to detect if the monitor is actually
plugged in or not.

CRs-Fixed:4455495

If HPD IRQ is enabled in the display_connector's probe, it can be
triggered too early, before the DRM connector is completely setup. Use
the enable_hpd / disable_hpd callbacks to control enablement of the HPD
IRQ.

Fixes: 0c275c3 ("drm/bridge: Add bridge driver for display connectors")
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://lore.kernel.org/all/20260314-dp-connector-hpd-v1-1-786044cedc17@oss.qualcomm.com/
@YongxingMou YongxingMou requested a review from a team March 31, 2026 07:15
@YongxingMou YongxingMou force-pushed the for-2.0-DPprebot branch 2 times, most recently from aff469d to c523701 Compare March 31, 2026 07:19
Copy link
Copy Markdown

@shashim-quic shashim-quic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • qcom-6.18.y-check

Associate your CR with this github PR else orbit check will keep failing

…r DP

If the DisplayPort drivers use display-connector for the HPD detection,
the internal HPD state machine might be not active and thus the hardware
might be not able to handle cable detection correctly. Instead it will
depend on the externall HPD notifications to set the cable state,
bypassing the internal HPD state machine (for example this is the case
for the msm DP driver).

However if the cable has been plugged before the HPD IRQ has been
enabled, there will be no HPD event coming. The drivers might fail
detection in such a case. Trigger the HPD notification after enabling
the HPD IRQ, propagating the cable insertion state.

Fixes: 2e2bf3a ("drm/bridge: display-connector: add DP support")
Reported-by: Yongxing Mou <yongxing.mou@oss.qualcomm.com>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://lore.kernel.org/all/20260314-dp-connector-hpd-v1-2-786044cedc17@oss.qualcomm.com/
@YongxingMou
Copy link
Copy Markdown
Author

  • qcom-6.18.y-check

Associate your CR with this github PR else orbit check will keep failing
Done.

@YongxingMou YongxingMou requested a review from shashim-quic April 1, 2026 02:52
@qcomlnxci
Copy link
Copy Markdown

Test Matrix

Test Case lemans-evk monaco-evk qcs615-ride qcs6490-rb3gen2 qcs8300-ride qcs9100-ride-r3 sm8750-mtp
0_qcom-next-ci-premerge-tests ◻️ ◻️ ◻️ ◻️ ◻️ ◻️ ❌ Fail
BT_FW_KMD_Service ❌ Fail ❌ Fail ◻️ ✅ Pass ◻️ ❌ Fail ❌ Fail
BT_ON_OFF ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ⚠️ skip
BT_SCAN ✅ Pass ❌ Fail ◻️ ✅ Pass ◻️ ✅ Pass ◻️
CPUFreq_Validation ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ✅ Pass
CPU_affinity ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ✅ Pass
DSP_AudioPD ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ◻️
Ethernet ✅ Pass ✅ Pass ◻️ ⚠️ skip ◻️ ⚠️ skip ⚠️ skip
Freq_Scaling ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ❌ Fail
GIC ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ✅ Pass
IPA ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ✅ Pass
Interrupts ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ✅ Pass
OpenCV ⚠️ skip ⚠️ skip ◻️ ⚠️ skip ◻️ ⚠️ skip ◻️
PCIe ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ✅ Pass
Probe_Failure_Check ❌ Fail ❌ Fail ◻️ ❌ Fail ◻️ ❌ Fail ❌ Fail
RMNET ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ✅ Pass
UFS_Validation ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ✅ Pass
USBHost ✅ Pass ✅ Pass ◻️ ❌ Fail ◻️ ✅ Pass ❌ Fail
WiFi_Firmware_Driver ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ◻️
WiFi_OnOff ✅ Pass ⚠️ skip ◻️ ✅ Pass ◻️ ✅ Pass ◻️
cdsp_remoteproc ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ❌ Fail
hotplug ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ✅ Pass
irq ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ✅ Pass
kaslr ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ✅ Pass
pinctrl ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ✅ Pass
qcom_hwrng ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ◻️
remoteproc ✅ Pass ❌ Fail ◻️ ✅ Pass ◻️ ✅ Pass ❌ Fail
rngtest ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ✅ Pass
shmbridge ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ❌ Fail ✅ Pass
smmu ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ✅ Pass
watchdog ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ◻️
wpss_remoteproc ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ✅ Pass

@qcomlnxci
Copy link
Copy Markdown

Test Matrix

Test Case lemans-evk monaco-evk qcs615-ride qcs6490-rb3gen2 qcs8300-ride qcs9100-ride-r3 sm8750-mtp
0_qcom-next-ci-premerge-tests ◻️ ◻️ ◻️ ◻️ ◻️ ◻️ ❌ Fail
BT_FW_KMD_Service ❌ Fail ❌ Fail ◻️ ✅ Pass ◻️ ❌ Fail ❌ Fail
BT_ON_OFF ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ⚠️ skip
BT_SCAN ✅ Pass ❌ Fail ◻️ ✅ Pass ◻️ ✅ Pass ◻️
CPUFreq_Validation ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ✅ Pass
CPU_affinity ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ✅ Pass
DSP_AudioPD ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ◻️
Ethernet ✅ Pass ✅ Pass ◻️ ⚠️ skip ◻️ ⚠️ skip ⚠️ skip
Freq_Scaling ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ❌ Fail
GIC ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ✅ Pass
IPA ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ✅ Pass
Interrupts ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ✅ Pass
OpenCV ⚠️ skip ⚠️ skip ◻️ ⚠️ skip ◻️ ⚠️ skip ◻️
PCIe ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ✅ Pass
Probe_Failure_Check ❌ Fail ❌ Fail ◻️ ❌ Fail ◻️ ❌ Fail ❌ Fail
RMNET ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ✅ Pass
UFS_Validation ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ✅ Pass
USBHost ✅ Pass ✅ Pass ◻️ ❌ Fail ◻️ ✅ Pass ❌ Fail
WiFi_Firmware_Driver ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ◻️
WiFi_OnOff ✅ Pass ⚠️ skip ◻️ ✅ Pass ◻️ ✅ Pass ◻️
cdsp_remoteproc ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ❌ Fail
hotplug ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ✅ Pass
irq ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ✅ Pass
kaslr ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ✅ Pass
pinctrl ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ✅ Pass
qcom_hwrng ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ◻️
remoteproc ✅ Pass ❌ Fail ◻️ ✅ Pass ◻️ ✅ Pass ❌ Fail
rngtest ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ✅ Pass
shmbridge ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ❌ Fail ✅ Pass
smmu ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ✅ Pass
watchdog ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ◻️
wpss_remoteproc ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️ ✅ Pass ✅ Pass

@qcomlnxci
Copy link
Copy Markdown

Test Matrix

Test Case lemans-evk monaco-evk qcs615-ride qcs6490-rb3gen2 qcs8300-ride qcs9100-ride-r3 sm8750-mtp
0_qcom-next-ci-premerge-tests ◻️ ◻️ ◻️ ◻️ ◻️ ◻️ ❌ Fail
BT_FW_KMD_Service ❌ Fail ❌ Fail ❌ Fail ✅ Pass ◻️ ❌ Fail ❌ Fail
BT_ON_OFF ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ⚠️ skip
BT_SCAN ✅ Pass ❌ Fail ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️
CPUFreq_Validation ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ✅ Pass
CPU_affinity ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ✅ Pass
DSP_AudioPD ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️
Ethernet ✅ Pass ✅ Pass ⚠️ skip ⚠️ skip ◻️ ⚠️ skip ⚠️ skip
Freq_Scaling ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ❌ Fail
GIC ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ✅ Pass
IPA ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ✅ Pass
Interrupts ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ✅ Pass
OpenCV ⚠️ skip ⚠️ skip ⚠️ skip ⚠️ skip ◻️ ⚠️ skip ◻️
PCIe ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ✅ Pass
Probe_Failure_Check ❌ Fail ❌ Fail ✅ Pass ❌ Fail ◻️ ❌ Fail ❌ Fail
RMNET ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ✅ Pass
UFS_Validation ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ✅ Pass
USBHost ✅ Pass ✅ Pass ✅ Pass ❌ Fail ◻️ ✅ Pass ❌ Fail
WiFi_Firmware_Driver ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️
WiFi_OnOff ✅ Pass ⚠️ skip ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️
cdsp_remoteproc ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ❌ Fail
hotplug ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ✅ Pass
irq ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ✅ Pass
kaslr ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ✅ Pass
pinctrl ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ✅ Pass
qcom_hwrng ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️
remoteproc ✅ Pass ❌ Fail ✅ Pass ✅ Pass ◻️ ✅ Pass ❌ Fail
rngtest ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ✅ Pass
shmbridge ✅ Pass ✅ Pass ❌ Fail ✅ Pass ◻️ ❌ Fail ✅ Pass
smmu ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ✅ Pass
watchdog ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ◻️
wpss_remoteproc ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️ ✅ Pass ✅ Pass

@qcomlnxci
Copy link
Copy Markdown

Test Matrix

Test Case lemans-evk monaco-evk qcs615-ride qcs6490-rb3gen2 qcs8300-ride qcs9100-ride-r3 sm8750-mtp
0_qcom-next-ci-premerge-tests ◻️ ◻️ ◻️ ◻️ ◻️ ◻️ ❌ Fail
BT_FW_KMD_Service ❌ Fail ❌ Fail ❌ Fail ✅ Pass ✅ Pass ❌ Fail ❌ Fail
BT_ON_OFF ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ⚠️ skip
BT_SCAN ✅ Pass ❌ Fail ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
CPUFreq_Validation ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
CPU_affinity ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
DSP_AudioPD ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
Ethernet ✅ Pass ✅ Pass ⚠️ skip ⚠️ skip ✅ Pass ⚠️ skip ⚠️ skip
Freq_Scaling ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ❌ Fail
GIC ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
IPA ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
Interrupts ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
OpenCV ⚠️ skip ⚠️ skip ⚠️ skip ⚠️ skip ⚠️ skip ⚠️ skip ◻️
PCIe ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
Probe_Failure_Check ❌ Fail ❌ Fail ✅ Pass ❌ Fail ❌ Fail ❌ Fail ❌ Fail
RMNET ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
UFS_Validation ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
USBHost ✅ Pass ✅ Pass ✅ Pass ❌ Fail ✅ Pass ✅ Pass ❌ Fail
WiFi_Firmware_Driver ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
WiFi_OnOff ✅ Pass ⚠️ skip ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
cdsp_remoteproc ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ❌ Fail
hotplug ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
irq ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
kaslr ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
pinctrl ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
qcom_hwrng ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
remoteproc ✅ Pass ❌ Fail ✅ Pass ✅ Pass ❌ Fail ✅ Pass ❌ Fail
rngtest ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
shmbridge ✅ Pass ✅ Pass ❌ Fail ✅ Pass ✅ Pass ❌ Fail ✅ Pass
smmu ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass
watchdog ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
wpss_remoteproc ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass

@sgaud-quic sgaud-quic merged commit 8915fc6 into qualcomm-linux:qcom-6.18.y Apr 8, 2026
6 of 8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants