On Fri, Jan 03, 2025 at 12:20:19AM +0100, Marek Vasut wrote: > On 1/2/25 6:58 PM, Dmitry Baryshkov wrote: > > [...] > > > > @@ -97,13 +100,36 @@ static int lcdif_attach_bridge(struct lcdif_drm_private *lcdif) > > > return ret; > > > } > > > - ret = drm_bridge_attach(encoder, bridge, NULL, 0); > > > + ret = drm_bridge_attach(encoder, bridge, NULL, > > > + DRM_BRIDGE_ATTACH_NO_CONNECTOR); > > > if (ret) { > > > of_node_put(ep); > > > return dev_err_probe(dev, ret, > > > "Failed to attach bridge for endpoint%u\n", > > > of_ep.id); > > > } > > > + > > > + nextbridge = drm_bridge_get_next_bridge(bridge); > > > + nextbridge = drm_bridge_get_next_bridge(nextbridge); > > > + /* Test if connector node in DT, if not, it was created already */ > > > > By whom? And why? > > By the HDMI bridge driver, see 1/4. > > > There is no display-connector bridge, but there is a > > normal bridge chain, you have passed DRM_BRIDGE_ATTACH_NO_CONNECTOR, so > > now it's a proper time to create drm_bridge_connector. You have added > > the next_bridge_optional flag, but it should just prevent the dw driver > > from returning the error if there is no next_bridge. > So what exactly should I do here ? > > If dw_hdmi_parse_dt() only exits with 0 if there is no connector node in DT, > I don't get any output on the HDMI. I have to create a connector in the HDMI > bridge driver instead and not here, right ? No. Please make dw_hdmi_parse_dt() return 0 if there is no connector and the flag is set. Then create drm_bridge_connector here. -- With best wishes Dmitry