Hi,
On Mon, Jul 26, 2021 at 4:15 PM Bjorn Andersson bjorn.andersson@linaro.org 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