OSDN Git Service

media: atomisp: Allow sensor drivers without a s_power callback
authorHans de Goede <hdegoede@redhat.com>
Fri, 13 Jan 2023 17:06:06 +0000 (18:06 +0100)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Wed, 8 Feb 2023 07:04:45 +0000 (08:04 +0100)
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>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/staging/media/atomisp/pci/atomisp_fops.c
drivers/staging/media/atomisp/pci/atomisp_ioctl.c

index 833c7aa..ce01479 100644 (file)
@@ -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 */
index b7872d7..d1314bd 100644 (file)
@@ -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;
        }