Re: [PATCH v2 2/4] media: v4l2-async: Pass notifier pointer to match functions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Laurent,

On 18/03/2020 00:25, Laurent Pinchart wrote:
> The notifier is useful to match functions to access information about
> the device matching a subdev. This will be used to print messages using
> the correct struct device and driver name.

The number of times I've added debug prints in these match functions
debugging issues already, I should have done this too!

Reviewed-by: Kieran Bingham <kieran.bingham+renesas@xxxxxxxxxxxxxxxx>


> Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@xxxxxxxxxxxxxxxx>
> ---
>  drivers/media/v4l2-core/v4l2-async.c | 18 +++++++++++-------
>  1 file changed, 11 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/media/v4l2-core/v4l2-async.c b/drivers/media/v4l2-core/v4l2-async.c
> index 995e5464cba7..224b39a7aeb1 100644
> --- a/drivers/media/v4l2-core/v4l2-async.c
> +++ b/drivers/media/v4l2-core/v4l2-async.c
> @@ -50,7 +50,8 @@ static int v4l2_async_notifier_call_complete(struct v4l2_async_notifier *n)
>  	return n->ops->complete(n);
>  }
>  
> -static bool match_i2c(struct v4l2_subdev *sd, struct v4l2_async_subdev *asd)
> +static bool match_i2c(struct v4l2_async_notifier *notifier,
> +		      struct v4l2_subdev *sd, struct v4l2_async_subdev *asd)
>  {
>  #if IS_ENABLED(CONFIG_I2C)
>  	struct i2c_client *client = i2c_verify_client(sd->dev);
> @@ -63,13 +64,14 @@ static bool match_i2c(struct v4l2_subdev *sd, struct v4l2_async_subdev *asd)
>  #endif
>  }
>  
> -static bool match_devname(struct v4l2_subdev *sd,
> -			  struct v4l2_async_subdev *asd)
> +static bool match_devname(struct v4l2_async_notifier *notifier,
> +			  struct v4l2_subdev *sd, struct v4l2_async_subdev *asd)
>  {
>  	return !strcmp(asd->match.device_name, dev_name(sd->dev));
>  }
>  
> -static bool match_fwnode(struct v4l2_subdev *sd, struct v4l2_async_subdev *asd)
> +static bool match_fwnode(struct v4l2_async_notifier *notifier,
> +			 struct v4l2_subdev *sd, struct v4l2_async_subdev *asd)
>  {
>  	struct fwnode_handle *other_fwnode;
>  	struct fwnode_handle *dev_fwnode;
> @@ -114,7 +116,8 @@ static bool match_fwnode(struct v4l2_subdev *sd, struct v4l2_async_subdev *asd)
>  	return dev_fwnode == other_fwnode;
>  }
>  
> -static bool match_custom(struct v4l2_subdev *sd, struct v4l2_async_subdev *asd)
> +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 */
> @@ -131,7 +134,8 @@ static struct v4l2_async_subdev *
>  v4l2_async_find_match(struct v4l2_async_notifier *notifier,
>  		      struct v4l2_subdev *sd)
>  {
> -	bool (*match)(struct v4l2_subdev *sd, struct v4l2_async_subdev *asd);
> +	bool (*match)(struct v4l2_async_notifier *notifier,
> +		      struct v4l2_subdev *sd, struct v4l2_async_subdev *asd);
>  	struct v4l2_async_subdev *asd;
>  
>  	list_for_each_entry(asd, &notifier->waiting, list) {
> @@ -156,7 +160,7 @@ v4l2_async_find_match(struct v4l2_async_notifier *notifier,
>  		}
>  
>  		/* match cannot be NULL here */
> -		if (match(sd, asd))
> +		if (match(notifier, sd, asd))
>  			return asd;
>  	}
>  
> 




[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux