From: Sakari Ailus <sakari.ai...@linux.intel.com>

This way the pads are always passed to the has_route() op sink pad first.
Makes sense.

Signed-off-by: Sakari Ailus <sakari.ai...@linux.intel.com>
Signed-off-by: Niklas Söderlund <niklas.soderlund+rene...@ragnatech.se>
---
 drivers/media/media-entity.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/media/media-entity.c b/drivers/media/media-entity.c
index ccd991d2d3450ab3..f0386ddd7c92cc4e 100644
--- a/drivers/media/media-entity.c
+++ b/drivers/media/media-entity.c
@@ -256,6 +256,10 @@ bool media_entity_has_route(struct media_entity *entity, 
unsigned int pad0,
        if (!entity->ops || !entity->ops->has_route)
                return true;
 
+       if (entity->pads[pad0].flags & MEDIA_PAD_FL_SOURCE
+           && entity->pads[pad1].flags & MEDIA_PAD_FL_SINK)
+               swap(pad0, pad1);
+
        return entity->ops->has_route(entity, pad0, pad1);
 }
 EXPORT_SYMBOL_GPL(media_entity_has_route);
-- 
2.12.2

Reply via email to