[media] ov2640: make GPIOLIB an optional dependency
authorMauro Carvalho Chehab <mchehab@s-opensource.com>
Wed, 19 Apr 2017 11:43:49 +0000 (08:43 -0300)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Wed, 19 Apr 2017 11:49:15 +0000 (08:49 -0300)
As warned by kbuild test robot:
warning: (VIDEO_EM28XX_V4L2) selects VIDEO_OV2640 which has unmet direct dependencies (MEDIA_SUPPORT && VIDEO_V4L2 && I2C && GPIOLIB && MEDIA_CAMERA_SUPPORT)

The em28xx driver can use ov2640, but it doesn't depend
(or use) the GPIOLIB in order to power off/on the sensor.

So, as we want to allow both usages with and without
GPIOLIB, make its dependency optional.

Reported-by: kbuild test robot <fengguang.wu@intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/media/i2c/Kconfig
drivers/media/i2c/ov2640.c

index 40bb4bd..fd181c9 100644 (file)
@@ -519,7 +519,7 @@ config VIDEO_SMIAPP_PLL
 
 config VIDEO_OV2640
        tristate "OmniVision OV2640 sensor support"
-       depends on VIDEO_V4L2 && I2C && GPIOLIB
+       depends on VIDEO_V4L2 && I2C
        depends on MEDIA_CAMERA_SUPPORT
        help
          This is a Video4Linux2 sensor-level driver for the OmniVision
index d55ca37..9c00ed3 100644 (file)
@@ -743,13 +743,16 @@ static int ov2640_s_power(struct v4l2_subdev *sd, int on)
        struct i2c_client *client = v4l2_get_subdevdata(sd);
        struct ov2640_priv *priv = to_ov2640(client);
 
-       gpiod_direction_output(priv->pwdn_gpio, !on);
+#ifdef CONFIG_GPIOLIB
+       if (priv->pwdn_gpio)
+               gpiod_direction_output(priv->pwdn_gpio, !on);
        if (on && priv->resetb_gpio) {
                /* Active the resetb pin to perform a reset pulse */
                gpiod_direction_output(priv->resetb_gpio, 1);
                usleep_range(3000, 5000);
                gpiod_direction_output(priv->resetb_gpio, 0);
        }
+#endif
        return 0;
 }