Hi Sakari, Thank you for the patch. On Fri, Nov 02, 2018 at 12:31:23AM +0100, Niklas Söderlund wrote: > From: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx> > > This way the pads are always passed to the has_route() op sink pad first. > Makes sense. Is there anything in the API that mandates one pad to be a sink and the other pad to the a source ? I had designed the operation to allow sink-sink and source-source connections to be checked too. If your goal is to simplify the implementation of the .has_route() operation in drivers, I would instead sort pad0 and pad1 by value. > Signed-off-by: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx> > Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@xxxxxxxxxxxx> > --- > 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 3c0e7425c8983b45..33f00e35ccd92c6f 100644 > --- a/drivers/media/media-entity.c > +++ b/drivers/media/media-entity.c > @@ -249,6 +249,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); -- Regards, Laurent Pinchart