Do not require a connected link to a pad if a pad has no links connected to it. Signed-off-by: Sakari Ailus <sakari.ailus@xxxxxx> --- Hi Laurent, This goes on top of patch 2/4. I can combine the two in the end but I think this is cleaner as a separate change. drivers/media/media-entity.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/media/media-entity.c b/drivers/media/media-entity.c index a99396b..2ad291f 100644 --- a/drivers/media/media-entity.c +++ b/drivers/media/media-entity.c @@ -236,6 +236,7 @@ __must_check int media_entity_pipeline_start(struct media_entity *entity, while ((entity = media_entity_graph_walk_next(&graph))) { DECLARE_BITMAP(active, entity->num_pads); + DECLARE_BITMAP(has_no_links, entity->num_pads); unsigned int i; entity->stream_count++; @@ -250,6 +251,7 @@ __must_check int media_entity_pipeline_start(struct media_entity *entity, continue; bitmap_zero(active, entity->num_pads); + bitmap_fill(has_no_links, entity->num_pads); for (i = 0; i < entity->num_links; i++) { struct media_link *link = &entity->links[i]; @@ -257,6 +259,11 @@ __must_check int media_entity_pipeline_start(struct media_entity *entity, ? link->sink : link->source; /* + * Mark that a pad is connected by a link. + */ + bitmap_clear(has_no_links, pad->index, 1); + + /* * Pads that either do not need to connect or * are connected through an enabled link are * fine. @@ -278,6 +285,9 @@ __must_check int media_entity_pipeline_start(struct media_entity *entity, goto error; } + /* Either no links or validated links are fine. */ + bitmap_or(active, active, has_no_links, entity->num_pads); + if (!bitmap_full(active, entity->num_pads)) { ret = -EPIPE; goto error; -- 1.7.10.4 -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html