This bridge is never a tail bridge, i.e. it always needs a following bridge to complete the pipeline. Add a is_tail func to expose this.
Signed-off-by: Luca Ceresoli <[email protected]> --- drivers/gpu/drm/bridge/ti-sn65dsi83.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi83.c b/drivers/gpu/drm/bridge/ti-sn65dsi83.c index a4f2a86a09be..5613c8812318 100644 --- a/drivers/gpu/drm/bridge/ti-sn65dsi83.c +++ b/drivers/gpu/drm/bridge/ti-sn65dsi83.c @@ -293,6 +293,11 @@ static struct sn65dsi83 *bridge_to_sn65dsi83(struct drm_bridge *bridge) return container_of(bridge, struct sn65dsi83, bridge); } +static bool sn65dsi83_is_tail(struct drm_bridge *bridge) +{ + return false; +} + static int sn65dsi83_attach(struct drm_bridge *bridge, struct drm_encoder *encoder, enum drm_bridge_attach_flags flags) @@ -792,6 +797,7 @@ sn65dsi83_atomic_get_input_bus_fmts(struct drm_bridge *bridge, } static const struct drm_bridge_funcs sn65dsi83_funcs = { + .is_tail = sn65dsi83_is_tail, .attach = sn65dsi83_attach, .detach = sn65dsi83_detach, .atomic_enable = sn65dsi83_atomic_enable, @@ -1066,6 +1072,7 @@ static int sn65dsi83_probe(struct i2c_client *client) dev_set_drvdata(dev, ctx); i2c_set_clientdata(client, ctx); + ctx->bridge.ops = DRM_BRIDGE_OP_IS_TAIL; ctx->bridge.of_node = dev->of_node; ctx->bridge.pre_enable_prev_first = true; ctx->bridge.type = DRM_MODE_CONNECTOR_LVDS; -- 2.54.0
