]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/bridge: dw-hdmi: warn on unsupported attach combination
authorLuca Ceresoli <luca.ceresoli@bootlin.com>
Tue, 7 Apr 2026 12:24:20 +0000 (14:24 +0200)
committerLuca Ceresoli <luca.ceresoli@bootlin.com>
Tue, 14 Apr 2026 11:52:32 +0000 (13:52 +0200)
dw-hdmi can operate in two different modes, depending on the platform data
as set by the driver:

 A. hdmi->plat_data->output_port = 0:
    the HDMI output (port@1) in device tree is not used

 B. hdmi->plat_data->output_port = 1:
    the HDMI output (port@1) is parsed to find the next bridge

Only case B is supported when the DRM_BRIDGE_ATTACH_NO_CONNECTOR flag is
passed to the attach callback. Emit a warning when this is violated. Also
return -EINVAL which would be returned by drm_bridge_attach() right after
anyway.

Reviewed-by: Liu Ying <victor.liu@nxp.com>
Tested-by: Martyn Welch <martyn.welch@collabora.com>
Tested-by: Alexander Stein <alexander.stein@ew.tq-group.com> # TQMa8MPxL/MBa8MPxL
Tested-by: Damon Ding <damon.ding@rock-chips.com> # rk3399
Link: https://patch.msgid.link/20260407-drm-lcdif-dbanc-v4-6-247a16e61ef9@bootlin.com
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c

index 0296e110ce65ffc284e120f4e3f92052474e83e5..ab1a6a8783cd7b35add54249fd620c00d7b89f4f 100644 (file)
@@ -2910,6 +2910,10 @@ static int dw_hdmi_bridge_attach(struct drm_bridge *bridge,
 {
        struct dw_hdmi *hdmi = bridge->driver_private;
 
+       /* DRM_BRIDGE_ATTACH_NO_CONNECTOR requires a remote-endpoint to the next bridge */
+       if (WARN_ON((flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR) && !hdmi->plat_data->output_port))
+               return -EINVAL;
+
        if (flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR)
                return drm_bridge_attach(encoder, hdmi->bridge.next_bridge,
                                         bridge, flags);