On Wed, Mar 2, 2022 at 4:50 AM Linus Walleij linus.walleij@linaro.org wrote:
On Tue, Mar 1, 2022 at 3:13 PM Jagan Teki jagan@amarulasolutions.com wrote:
bridge = devm_drm_of_get_bridge(dev, dev->of_node, 0, 0);
if (IS_ERR(bridge)) {
dev_err(dev, "error to get bridge\n");
return PTR_ERR(bridge); } d->bridge_out = bridge;
Also notice how this bridge gets used in other places:
struct drm_connector *connector = drm_panel_bridge_connector(mcde->bridge);
mcde->bridge bridge is the current bridge pointer it cannot affect this change. d->bridge_out is what we are finding of the downstream bridge.
Since you deleted:
} else if (bridge) {
/* TODO: AV8100 HDMI encoder goes here for example */
dev_info(dev, "connected to non-panel bridge (unsupported)\n");
return -ENODEV;
So, this means mcde dsi can support if the downstream bridge is the panel not if the downstream bridge is the next bridge. With devm_drm_of_get_bridge we cannot find that diff. Identifying the panel-bridge with some name pointer during panel_bridge_add might solve this, not sure that is proper way to do that?
Thanks, Jagan.