[PATCH v1.1 3/5] media: Pads that are not connected by even a disabled link are fine

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux