Hi Steve, On Wed, Apr 29, 2020 at 01:49:35PM -0700, Steve Longerbeam wrote: > Hi Sakari, > > On 4/29/20 7:39 AM, Sakari Ailus wrote: > > Hi Steve, > > > > On Sun, Apr 19, 2020 at 05:39:10PM -0700, Steve Longerbeam wrote: > > > Add a convenience function that can be used as the .get_fwnode_pad > > > operation for subdevices that map port numbers and pad indexes 1:1. > > > The function verifies the endpoint is owned by the subdevice, and if > > > so returns the endpoint port number. > > > > > > Signed-off-by: Steve Longerbeam <slongerbeam@xxxxxxxxx> > > > --- > > > drivers/media/v4l2-core/v4l2-subdev.c | 25 +++++++++++++++++++++++++ > > > include/media/v4l2-subdev.h | 17 +++++++++++++++++ > > > 2 files changed, 42 insertions(+) > > > > > > diff --git a/drivers/media/v4l2-core/v4l2-subdev.c b/drivers/media/v4l2-core/v4l2-subdev.c > > > index a376b351135f..d5b5cd7a6049 100644 > > > --- a/drivers/media/v4l2-core/v4l2-subdev.c > > > +++ b/drivers/media/v4l2-core/v4l2-subdev.c > > > @@ -696,6 +696,31 @@ const struct v4l2_file_operations v4l2_subdev_fops = { > > > }; > > > #ifdef CONFIG_MEDIA_CONTROLLER > > > + > > > +int v4l2_subdev_get_fwnode_pad_default(struct media_entity *entity, > > > + struct fwnode_endpoint *endpoint) > > > +{ > > > + struct fwnode_handle *ep; > > > + struct v4l2_subdev *sd; > > > + > > > + if (!is_media_entity_v4l2_subdev(entity)) > > > + return -EINVAL; > > > + > > > + sd = media_entity_to_v4l2_subdev(entity); > > > + > > > + fwnode_graph_for_each_endpoint(dev_fwnode(sd->dev), ep) { > > > + if (ep != endpoint->local_fwnode) > > > + continue; > > If the purpose is just to check a given endpoint belongs to a device, could > > it be done in a more simple way? E.g.: > > > > fwnode = fwnode_graph_get_port_parent(endpoint->local_fwnode); > > fwnode_handle_put(fwnode); > > > > if (dev_fwnode(sd->dev) == fwnode) > > return endpoint->port; > > > > return -ENXIO; > > Sorry you are right, I was stuck on confirming the endpoint itself is one of > the devices endpoints, but yes, above is all that is needed to confirm the > endpoint is owned by the device, I'll make that change. Thanks. Could you calso call the function e.g. v4l2_subdev_get_fwnode_pad_1_to_1 or such? I presume there will be a few of these, and it depends on the device what suits it. -- Regards, Sakari Ailus