[PATCH] drm/bridge: tc358767: Handle bridge past DPI output

Robert Foss robert.foss at linaro.org
Mon Aug 29 14:58:41 UTC 2022


Hi Marek,

On Mon, 25 Jul 2022 at 00:43, Marek Vasut <marex at denx.de> wrote:
>
> Currently the driver only handles panel directly connected to the DPI output.
> Handle the case where a bridge is connected past DPI output of this bridge.
> This could be e.g. DPI to LVDS encoder chip.
>
> Signed-off-by: Marek Vasut <marex at denx.de>
> Cc: Jonas Karlman <jonas at kwiboo.se>
> Cc: Laurent Pinchart <Laurent.pinchart at ideasonboard.com>
> Cc: Lucas Stach <l.stach at pengutronix.de>
> Cc: Maxime Ripard <maxime at cerno.tech>
> Cc: Neil Armstrong <narmstrong at baylibre.com>
> Cc: Robert Foss <robert.foss at linaro.org>
> Cc: Sam Ravnborg <sam at ravnborg.org>
> ---
>  drivers/gpu/drm/bridge/tc358767.c | 15 ++++++++-------
>  1 file changed, 8 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/bridge/tc358767.c b/drivers/gpu/drm/bridge/tc358767.c
> index f8c1cd711753b..814ab206fe7ef 100644
> --- a/drivers/gpu/drm/bridge/tc358767.c
> +++ b/drivers/gpu/drm/bridge/tc358767.c
> @@ -1926,22 +1926,23 @@ static int tc_mipi_dsi_host_attach(struct tc_data *tc)
>  static int tc_probe_dpi_bridge_endpoint(struct tc_data *tc)
>  {
>         struct device *dev = tc->dev;
> +       struct drm_bridge *bridge;
>         struct drm_panel *panel;
>         int ret;
>
>         /* port at 1 is the DPI input/output port */
> -       ret = drm_of_find_panel_or_bridge(dev->of_node, 1, 0, &panel, NULL);
> +       ret = drm_of_find_panel_or_bridge(dev->of_node, 1, 0, &panel, &bridge);
>         if (ret && ret != -ENODEV)
>                 return ret;
>
>         if (panel) {
> -               struct drm_bridge *panel_bridge;
> -
> -               panel_bridge = devm_drm_panel_bridge_add(dev, panel);
> -               if (IS_ERR(panel_bridge))
> -                       return PTR_ERR(panel_bridge);
> +               bridge = devm_drm_panel_bridge_add(dev, panel);
> +               if (IS_ERR(bridge))
> +                       return PTR_ERR(bridge);
> +       }
>
> -               tc->panel_bridge = panel_bridge;
> +       if (bridge) {
> +               tc->panel_bridge = bridge;
>                 tc->bridge.type = DRM_MODE_CONNECTOR_DPI;
>                 tc->bridge.funcs = &tc_dpi_bridge_funcs;
>
> --
> 2.35.1

Reviewed-by: Robert Foss <robert.foss at linaro.org>

Applied to drm-misc-next.


More information about the dri-devel mailing list