diff mbox series

[19/57] media: atomisp: Allow sensor drivers without a s_power callback

Message ID 20230123125205.622152-20-hdegoede@redhat.com (mailing list archive)
State New, archived
Headers show
Series media: atomisp: Big power-management changes + lots of fixes | expand

Commit Message

Hans de Goede Jan. 23, 2023, 12:51 p.m. UTC
The s_power callback for v4l2-subdevs has been deprecated, allow sensor
drivers without a s_power callback to work by ignoring the -ENOIOCTLCMD
return value.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
 drivers/staging/media/atomisp/pci/atomisp_fops.c  | 2 +-
 drivers/staging/media/atomisp/pci/atomisp_ioctl.c | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

Comments

Andy Shevchenko Jan. 23, 2023, 5:49 p.m. UTC | #1
On Mon, Jan 23, 2023 at 01:51:27PM +0100, Hans de Goede wrote:
> The s_power callback for v4l2-subdevs has been deprecated, allow sensor
> drivers without a s_power callback to work by ignoring the -ENOIOCTLCMD
> return value.

Reviewed-by: Andy Shevchenko <andy@kernel.org>

> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> ---
>  drivers/staging/media/atomisp/pci/atomisp_fops.c  | 2 +-
>  drivers/staging/media/atomisp/pci/atomisp_ioctl.c | 4 ++--
>  2 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/staging/media/atomisp/pci/atomisp_fops.c b/drivers/staging/media/atomisp/pci/atomisp_fops.c
> index 833c7aac8f0a..ce01479bdd68 100644
> --- a/drivers/staging/media/atomisp/pci/atomisp_fops.c
> +++ b/drivers/staging/media/atomisp/pci/atomisp_fops.c
> @@ -832,7 +832,7 @@ static int atomisp_release(struct file *file)
>  	if (isp->inputs[asd->input_curr].asd == asd) {
>  		ret = v4l2_subdev_call(isp->inputs[asd->input_curr].camera,
>  				       core, s_power, 0);
> -		if (ret)
> +		if (ret && ret != -ENOIOCTLCMD)
>  			dev_warn(isp->dev, "Failed to power-off sensor\n");
>  
>  		/* clear the asd field to show this camera is not used */
> diff --git a/drivers/staging/media/atomisp/pci/atomisp_ioctl.c b/drivers/staging/media/atomisp/pci/atomisp_ioctl.c
> index d0dd3dbd6f6a..77856cbc5ba7 100644
> --- a/drivers/staging/media/atomisp/pci/atomisp_ioctl.c
> +++ b/drivers/staging/media/atomisp/pci/atomisp_ioctl.c
> @@ -700,7 +700,7 @@ static int atomisp_s_input(struct file *file, void *fh, unsigned int input)
>  	    asd->input_curr != input) {
>  		ret = v4l2_subdev_call(isp->inputs[asd->input_curr].camera,
>  				       core, s_power, 0);
> -		if (ret)
> +		if (ret && ret != -ENOIOCTLCMD)
>  			dev_warn(isp->dev,
>  				 "Failed to power-off sensor\n");
>  		/* clear the asd field to show this camera is not used */
> @@ -709,7 +709,7 @@ static int atomisp_s_input(struct file *file, void *fh, unsigned int input)
>  
>  	/* powe on the new sensor */
>  	ret = v4l2_subdev_call(isp->inputs[input].camera, core, s_power, 1);
> -	if (ret) {
> +	if (ret && ret != -ENOIOCTLCMD) {
>  		dev_err(isp->dev, "Failed to power-on sensor\n");
>  		return ret;
>  	}
> -- 
> 2.39.0
>
diff mbox series

Patch

diff --git a/drivers/staging/media/atomisp/pci/atomisp_fops.c b/drivers/staging/media/atomisp/pci/atomisp_fops.c
index 833c7aac8f0a..ce01479bdd68 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_fops.c
+++ b/drivers/staging/media/atomisp/pci/atomisp_fops.c
@@ -832,7 +832,7 @@  static int atomisp_release(struct file *file)
 	if (isp->inputs[asd->input_curr].asd == asd) {
 		ret = v4l2_subdev_call(isp->inputs[asd->input_curr].camera,
 				       core, s_power, 0);
-		if (ret)
+		if (ret && ret != -ENOIOCTLCMD)
 			dev_warn(isp->dev, "Failed to power-off sensor\n");
 
 		/* clear the asd field to show this camera is not used */
diff --git a/drivers/staging/media/atomisp/pci/atomisp_ioctl.c b/drivers/staging/media/atomisp/pci/atomisp_ioctl.c
index d0dd3dbd6f6a..77856cbc5ba7 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_ioctl.c
+++ b/drivers/staging/media/atomisp/pci/atomisp_ioctl.c
@@ -700,7 +700,7 @@  static int atomisp_s_input(struct file *file, void *fh, unsigned int input)
 	    asd->input_curr != input) {
 		ret = v4l2_subdev_call(isp->inputs[asd->input_curr].camera,
 				       core, s_power, 0);
-		if (ret)
+		if (ret && ret != -ENOIOCTLCMD)
 			dev_warn(isp->dev,
 				 "Failed to power-off sensor\n");
 		/* clear the asd field to show this camera is not used */
@@ -709,7 +709,7 @@  static int atomisp_s_input(struct file *file, void *fh, unsigned int input)
 
 	/* powe on the new sensor */
 	ret = v4l2_subdev_call(isp->inputs[input].camera, core, s_power, 1);
-	if (ret) {
+	if (ret && ret != -ENOIOCTLCMD) {
 		dev_err(isp->dev, "Failed to power-on sensor\n");
 		return ret;
 	}