Re: [PATCH v2 10/14] media: davinci: vpif_display: Remove unused v4l2-async code

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

 



Hi Ezequiel,

On 1/17/21 10:52 PM, Ezequiel Garcia wrote:
> There are no users for vpif_display_config.asd_sizes
> and vpif_display_config.asd members, which means the v4l2-async
> subdevices aren't being defined anywhere.
> 
> Remove the v4l2-async, leaving only the synchronous setup.
> 
> Signed-off-by: Ezequiel Garcia <ezequiel@xxxxxxxxxxxxx>
> ---
>  drivers/media/platform/davinci/vpif_display.c | 86 ++++---------------
>  drivers/media/platform/davinci/vpif_display.h |  1 -
>  include/media/davinci/vpif_types.h            |  2 -
>  3 files changed, 15 insertions(+), 74 deletions(-)
> 
> diff --git a/drivers/media/platform/davinci/vpif_display.c b/drivers/media/platform/davinci/vpif_display.c
> index 46afc029138f..e5f61d9b221d 100644
> --- a/drivers/media/platform/davinci/vpif_display.c
> +++ b/drivers/media/platform/davinci/vpif_display.c
> @@ -1117,23 +1117,6 @@ static void free_vpif_objs(void)
>  		kfree(vpif_obj.dev[i]);
>  }
>  
> -static int vpif_async_bound(struct v4l2_async_notifier *notifier,
> -			    struct v4l2_subdev *subdev,
> -			    struct v4l2_async_subdev *asd)
> -{
> -	int i;
> -
> -	for (i = 0; i < vpif_obj.config->subdev_count; i++)
> -		if (!strcmp(vpif_obj.config->subdevinfo[i].name,
> -			    subdev->name)) {
> -			vpif_obj.sd[i] = subdev;
> -			vpif_obj.sd[i]->grp_id = 1 << i;
> -			return 0;
> -		}
> -
> -	return -EINVAL;
> -}
> -
>  static int vpif_probe_complete(void)
>  {
>  	struct common_obj *common;
> @@ -1230,16 +1213,6 @@ static int vpif_probe_complete(void)
>  	return err;
>  }
>  
> -static int vpif_async_complete(struct v4l2_async_notifier *notifier)
> -{
> -	return vpif_probe_complete();
> -}
> -
> -static const struct v4l2_async_notifier_operations vpif_async_ops = {
> -	.bound = vpif_async_bound,
> -	.complete = vpif_async_complete,
> -};
> -
>  /*
>   * vpif_probe: This function creates device entries by register itself to the
>   * V4L2 driver and initializes fields of each channel objects
> @@ -1294,52 +1267,28 @@ static __init int vpif_probe(struct platform_device *pdev)
>  		goto vpif_unregister;
>  	}
>  
> -	v4l2_async_notifier_init(&vpif_obj.notifier);
> -
> -	if (!vpif_obj.config->asd_sizes) {
> -		i2c_adap = i2c_get_adapter(vpif_obj.config->i2c_adapter_id);
> -		for (i = 0; i < subdev_count; i++) {
> -			vpif_obj.sd[i] =
> -				v4l2_i2c_new_subdev_board(&vpif_obj.v4l2_dev,
> -							  i2c_adap,
> -							  &subdevdata[i].
> -							  board_info,

I'm glad you change this, I didn't see it was a dot in the previous line and I
thought board_info was some global variable that I couldn't find its declaration xD

Reviewed-by: Helen Koike <helen.koike@xxxxxxxxxxxxx>

Regards,
Helen

> -							  NULL);
> -			if (!vpif_obj.sd[i]) {
> -				vpif_err("Error registering v4l2 subdevice\n");
> -				err = -ENODEV;
> -				goto probe_subdev_out;
> -			}
> -
> -			if (vpif_obj.sd[i])
> -				vpif_obj.sd[i]->grp_id = 1 << i;
> -		}
> -		err = vpif_probe_complete();
> -		if (err) {
> +	i2c_adap = i2c_get_adapter(vpif_obj.config->i2c_adapter_id);
> +	for (i = 0; i < subdev_count; i++) {
> +		vpif_obj.sd[i] =
> +			v4l2_i2c_new_subdev_board(&vpif_obj.v4l2_dev,
> +						  i2c_adap,
> +						  &subdevdata[i].board_info,
> +						  NULL);
> +		if (!vpif_obj.sd[i]) {
> +			vpif_err("Error registering v4l2 subdevice\n");
> +			err = -ENODEV;
>  			goto probe_subdev_out;
>  		}
> -	} else {
> -		for (i = 0; i < vpif_obj.config->asd_sizes[0]; i++) {
> -			err = v4l2_async_notifier_add_subdev(
> -				&vpif_obj.notifier, vpif_obj.config->asd[i]);
> -			if (err)
> -				goto probe_cleanup;
> -		}
>  
> -		vpif_obj.notifier.ops = &vpif_async_ops;
> -		err = v4l2_async_notifier_register(&vpif_obj.v4l2_dev,
> -						   &vpif_obj.notifier);
> -		if (err) {
> -			vpif_err("Error registering async notifier\n");
> -			err = -EINVAL;
> -			goto probe_cleanup;
> -		}
> +		if (vpif_obj.sd[i])
> +			vpif_obj.sd[i]->grp_id = 1 << i;
>  	}
> +	err = vpif_probe_complete();
> +	if (err)
> +		goto probe_subdev_out;
>  
>  	return 0;
>  
> -probe_cleanup:
> -	v4l2_async_notifier_cleanup(&vpif_obj.notifier);
>  probe_subdev_out:
>  	kfree(vpif_obj.sd);
>  vpif_unregister:
> @@ -1358,11 +1307,6 @@ static int vpif_remove(struct platform_device *device)
>  	struct channel_obj *ch;
>  	int i;
>  
> -	if (vpif_obj.config->asd_sizes) {
> -		v4l2_async_notifier_unregister(&vpif_obj.notifier);
> -		v4l2_async_notifier_cleanup(&vpif_obj.notifier);
> -	}
> -
>  	v4l2_device_unregister(&vpif_obj.v4l2_dev);
>  
>  	kfree(vpif_obj.sd);
> diff --git a/drivers/media/platform/davinci/vpif_display.h b/drivers/media/platform/davinci/vpif_display.h
> index f731a65eefd6..f98062e79167 100644
> --- a/drivers/media/platform/davinci/vpif_display.h
> +++ b/drivers/media/platform/davinci/vpif_display.h
> @@ -118,7 +118,6 @@ struct vpif_device {
>  	struct v4l2_device v4l2_dev;
>  	struct channel_obj *dev[VPIF_DISPLAY_NUM_CHANNELS];
>  	struct v4l2_subdev **sd;
> -	struct v4l2_async_notifier notifier;
>  	struct vpif_display_config *config;
>  };
>  
> diff --git a/include/media/davinci/vpif_types.h b/include/media/davinci/vpif_types.h
> index 8439e46fb993..d03e5c54347a 100644
> --- a/include/media/davinci/vpif_types.h
> +++ b/include/media/davinci/vpif_types.h
> @@ -48,8 +48,6 @@ struct vpif_display_config {
>  	int i2c_adapter_id;
>  	struct vpif_display_chan_config chan_config[VPIF_DISPLAY_MAX_CHANNELS];
>  	const char *card_name;
> -	struct v4l2_async_subdev **asd;	/* Flat array, arranged in groups */
> -	int *asd_sizes;		/* 0-terminated array of asd group sizes */
>  };
>  
>  struct vpif_input {
> 



[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