Skip to content

Commit cb640b2

Browse files
committed
drm/bridge: display-connector: don't set OP_DETECT for DisplayPorts
Detecting the monitor for DisplayPort targets is more complicated than just reading the HPD pin level: it requires reading the DPCD in order to check what kind of device is attached to the port and whether there is an actual display attached. In order to let DRM framework handle such configurations, disable DRM_BRIDGE_OP_DETECT for dp-connector devices, letting the actual DP driver perform detection. This still keeps DRM_BRIDGE_OP_HPD enabled, so it is valid for the bridge to report HPD events. Currently inside the kernel there are only two targets which list hpd-gpios for dp-connector devices: arm64/qcom/qcs6490-rb3gen2 and arm64/qcom/sa8295p-adp. Both should be fine with this change. Cc: Bjorn Andersson <andersson@kernel.org> Cc: Konrad Dybcio <konradybcio@kernel.org> Cc: linux-arm-msm@vger.kernel.org Acked-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Link: https://lore.kernel.org/r/20250802-dp-conn-no-detect-v1-1-2748c2b946da@oss.qualcomm.com Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
1 parent 646dc26 commit cb640b2

1 file changed

Lines changed: 2 additions & 1 deletion

File tree

drivers/gpu/drm/bridge/display-connector.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,8 @@ static int display_connector_probe(struct platform_device *pdev)
373373
if (conn->bridge.ddc)
374374
conn->bridge.ops |= DRM_BRIDGE_OP_EDID
375375
| DRM_BRIDGE_OP_DETECT;
376-
if (conn->hpd_gpio)
376+
/* Detecting the monitor requires reading DPCD */
377+
if (conn->hpd_gpio && type != DRM_MODE_CONNECTOR_DisplayPort)
377378
conn->bridge.ops |= DRM_BRIDGE_OP_DETECT;
378379
if (conn->hpd_irq >= 0)
379380
conn->bridge.ops |= DRM_BRIDGE_OP_HPD;

0 commit comments

Comments
 (0)