drm/bridge: ti-sn65dsi86: Add HPD for DisplayPort connector type
authorJayesh Choudhary <j-choudhary@ti.com>
Tue, 24 Jun 2025 04:48:35 +0000 (10:18 +0530)
committerDouglas Anderson <dianders@chromium.org>
Wed, 25 Jun 2025 14:49:01 +0000 (07:49 -0700)
commit55e8ff842051b1150461d7595d8f1d033c69d66b
tree17a76834769dae2ae9d65e04f1a6e51096a21e4e
parent10357824151262636fda879845f8b64553541106
drm/bridge: ti-sn65dsi86: Add HPD for DisplayPort connector type

By default, HPD was disabled on SN65DSI86 bridge. When the driver was
added (commit "a095f15c00e27"), the HPD_DISABLE bit was set in pre-enable
call which was moved to other function calls subsequently.
Later on, commit "c312b0df3b13" added detect utility for DP mode. But with
HPD_DISABLE bit set, all the HPD events are disabled[0] and the debounced
state always return 1 (always connected state).

Set HPD_DISABLE bit conditionally based on display sink's connector type.
Since the HPD_STATE is reflected correctly only after waiting for debounce
time (~100-400ms) and adding this delay in detect() is not feasible
owing to the performace impact (glitches and frame drop), remove runtime
calls in detect() and add hpd_enable()/disable() bridge hooks with runtime
calls, to detect hpd properly without any delay.

[0]: <https://www.ti.com/lit/gpn/SN65DSI86> (Pg. 32)

Fixes: c312b0df3b13 ("drm/bridge: ti-sn65dsi86: Implement bridge connector operations for DP")
Cc: Max Krummenacher <max.krummenacher@toradex.com>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Tested-by: Ernest Van Hoecke <ernest.vanhoecke@toradex.com>
Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com>
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Link: https://lore.kernel.org/r/20250624044835.165708-1-j-choudhary@ti.com
drivers/gpu/drm/bridge/ti-sn65dsi86.c