Hi Sakari,

Thank you for the patch.

On Fri, Nov 02, 2018 at 12:31:23AM +0100, Niklas Söderlund wrote:
> From: Sakari Ailus <[email protected]>
> 
> 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 <[email protected]>
> Reviewed-by: Niklas Söderlund <[email protected]>
> ---
>  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

Reply via email to