Hi, On Mon, Jul 26, 2021 at 4:15 PM Bjorn Andersson <bjorn.andersson@xxxxxxxxxx> wrote: > > +static int dp_parser_find_panel(struct dp_parser *parser) > +{ > + struct device_node *np = parser->pdev->dev.of_node; > + int rc; > + > + rc = drm_of_find_panel_or_bridge(np, 2, 0, &parser->drm_panel, NULL); > + if (rc == -ENODEV) > + rc = 0; > + else if (rc) > + DRM_ERROR("failed to acquire DRM panel: %d\n", rc); > + > + return rc; So rather than storing the drm_panel, I suggest that you actually wrap it with a "panel_bridge". Follow the ideas from commit 4e5763f03e10 ("drm/bridge: ti-sn65dsi86: Wrap panel with panel-bridge") and the fix in commit c7782443a889 ("drm/bridge: ti-sn65dsi86: Avoid creating multiple connectors"). If you do that then actually a bunch of your patch becomes unnecessary. You basically just have to attach the "next" bridge in the right place and you're good, right? -Doug