Hi Ezequiel, On 08/01/2021 17:17, Ezequiel Garcia wrote: > Custom/driver-specific v4l2-async match support was introduced > in 2013, as V4L2_ASYNC_BUS_CUSTOM. > > This type of match never had any user, so it's fair > to conclude it's not required and that safe for removal. > If the support is ever needed, it can always be restored. > Simplify v4l2-async? Yes please! Reviewed-by: Kieran Bingham <kieran.bingham+renesas@xxxxxxxxxxxxxxxx> > Suggested-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > Signed-off-by: Ezequiel Garcia <ezequiel@xxxxxxxxxxxxx> > --- > drivers/media/v4l2-core/v4l2-async.c | 14 -------------- > include/media/v4l2-async.h | 17 ----------------- > 2 files changed, 31 deletions(-) > > diff --git a/drivers/media/v4l2-core/v4l2-async.c b/drivers/media/v4l2-core/v4l2-async.c > index e3ab003a6c85..3faf1d12d49d 100644 > --- a/drivers/media/v4l2-core/v4l2-async.c > +++ b/drivers/media/v4l2-core/v4l2-async.c > @@ -139,16 +139,6 @@ static bool match_fwnode(struct v4l2_async_notifier *notifier, > return true; > } > > -static bool match_custom(struct v4l2_async_notifier *notifier, > - struct v4l2_subdev *sd, struct v4l2_async_subdev *asd) > -{ > - if (!asd->match.custom.match) > - /* Match always */ > - return true; > - > - return asd->match.custom.match(sd->dev, asd); > -} > - > static LIST_HEAD(subdev_list); > static LIST_HEAD(notifier_list); > static DEFINE_MUTEX(list_lock); > @@ -164,9 +154,6 @@ v4l2_async_find_match(struct v4l2_async_notifier *notifier, > list_for_each_entry(asd, ¬ifier->waiting, list) { > /* bus_type has been verified valid before */ > switch (asd->match_type) { > - case V4L2_ASYNC_MATCH_CUSTOM: > - match = match_custom; > - break; > case V4L2_ASYNC_MATCH_DEVNAME: > match = match_devname; > break; > @@ -467,7 +454,6 @@ static int v4l2_async_notifier_asd_valid(struct v4l2_async_notifier *notifier, > return -EINVAL; > > switch (asd->match_type) { > - case V4L2_ASYNC_MATCH_CUSTOM: > case V4L2_ASYNC_MATCH_DEVNAME: > case V4L2_ASYNC_MATCH_I2C: > case V4L2_ASYNC_MATCH_FWNODE: > diff --git a/include/media/v4l2-async.h b/include/media/v4l2-async.h > index 0e04b5b2ebb0..8ed42188e7c9 100644 > --- a/include/media/v4l2-async.h > +++ b/include/media/v4l2-async.h > @@ -21,8 +21,6 @@ struct v4l2_async_notifier; > * enum v4l2_async_match_type - type of asynchronous subdevice logic to be used > * in order to identify a match > * > - * @V4L2_ASYNC_MATCH_CUSTOM: Match will use the logic provided by &struct > - * v4l2_async_subdev.match ops > * @V4L2_ASYNC_MATCH_DEVNAME: Match will use the device name > * @V4L2_ASYNC_MATCH_I2C: Match will check for I2C adapter ID and address > * @V4L2_ASYNC_MATCH_FWNODE: Match will use firmware node > @@ -31,7 +29,6 @@ struct v4l2_async_notifier; > * algorithm that will be used to match an asynchronous device. > */ > enum v4l2_async_match_type { > - V4L2_ASYNC_MATCH_CUSTOM, > V4L2_ASYNC_MATCH_DEVNAME, > V4L2_ASYNC_MATCH_I2C, > V4L2_ASYNC_MATCH_FWNODE, > @@ -58,15 +55,6 @@ enum v4l2_async_match_type { > * @match.i2c.address: > * I2C address to be matched. > * Used if @match_type is %V4L2_ASYNC_MATCH_I2C. > - * @match.custom: > - * Driver-specific match criteria. > - * Used if @match_type is %V4L2_ASYNC_MATCH_CUSTOM. > - * @match.custom.match: > - * Driver-specific match function to be used if > - * %V4L2_ASYNC_MATCH_CUSTOM. > - * @match.custom.priv: > - * Driver-specific private struct with match parameters > - * to be used if %V4L2_ASYNC_MATCH_CUSTOM. > * @asd_list: used to add struct v4l2_async_subdev objects to the > * master notifier @asd_list > * @list: used to link struct v4l2_async_subdev objects, waiting to be > @@ -85,11 +73,6 @@ struct v4l2_async_subdev { > int adapter_id; > unsigned short address; > } i2c; > - struct { > - bool (*match)(struct device *dev, > - struct v4l2_async_subdev *sd); > - void *priv; > - } custom; > } match; > > /* v4l2-async core private: not to be used by drivers */ >