From: Sakari Ailus <sakari.ailus@linux.intel.com>
A single entity may contain multiple pipelines. Only add pads that were
connected to the pad through which the entity was reached to the pipeline.
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
---
drivers/media/mc/mc-entity.c | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
@@ -469,7 +469,7 @@ __must_check int __media_pipeline_start(struct media_pad *pad,
ret = 0;
- media_entity_for_each_pad(entity, iter) {
+ media_entity_for_each_routed_pad(pad, iter) {
if (iter->pipe && iter->pipe != pipe) {
pr_err("Pipe active for %s. Can't start for %s\n",
entity->name, iter->entity->name);
@@ -558,10 +558,9 @@ __must_check int __media_pipeline_start(struct media_pad *pad,
media_graph_walk_start(graph, pad_err);
while ((pad_err = media_graph_walk_next(graph))) {
- struct media_entity *entity = pad_err->entity;
struct media_pad *iter;
- media_entity_for_each_pad(entity, iter) {
+ media_entity_for_each_routed_pad(pad_err, iter) {
/* Sanity check for negative stream_count */
if (!WARN_ON_ONCE(iter->stream_count <= 0)) {
--iter->stream_count;
@@ -614,10 +613,9 @@ void __media_pipeline_stop(struct media_pad *pad)
media_graph_walk_start(graph, pad);
while ((pad = media_graph_walk_next(graph))) {
- struct media_entity *entity = pad->entity;
struct media_pad *iter;
- media_entity_for_each_pad(entity, iter) {
+ media_entity_for_each_routed_pad(pad, iter) {
/* Sanity check for negative stream_count */
if (!WARN_ON_ONCE(iter->stream_count <= 0)) {
iter->stream_count--;