diff --git a/kernel/drivers/staging/media/atomisp/i2c/ov5693/Kconfig b/kernel/drivers/staging/media/atomisp/i2c/ov5693/Kconfig index 9fb1bffbe..3954b8c65 100644 --- a/kernel/drivers/staging/media/atomisp/i2c/ov5693/Kconfig +++ b/kernel/drivers/staging/media/atomisp/i2c/ov5693/Kconfig @@ -1,6 +1,6 @@ config VIDEO_OV5693 tristate "Omnivision ov5693 sensor support" - depends on I2C && VIDEO_V4L2 + depends on I2C && VIDEO_V4L2 && MEDIA_CONTROLLER ---help--- This is a Video4Linux2 sensor-level driver for the Micron ov5693 5 Mpixel camera. diff --git a/kernel/drivers/staging/media/atomisp/i2c/ov5693/ov5693.c b/kernel/drivers/staging/media/atomisp/i2c/ov5693/ov5693.c index 579011336..37986f533 100644 --- a/kernel/drivers/staging/media/atomisp/i2c/ov5693/ov5693.c +++ b/kernel/drivers/staging/media/atomisp/i2c/ov5693/ov5693.c @@ -1332,7 +1332,7 @@ static int power_ctrl(struct v4l2_subdev *sd, bool flag) static int gpio_ctrl(struct v4l2_subdev *sd, bool flag) { - int ret; + int ret = 0; struct ov5693_device *dev = to_ov5693_sensor(sd); if (!dev || !dev->platform_data) @@ -1342,16 +1342,8 @@ static int gpio_ctrl(struct v4l2_subdev *sd, bool flag) if (dev->platform_data->gpio_ctrl) return dev->platform_data->gpio_ctrl(sd, flag); - if (flag) { - ret = dev->platform_data->gpio0_ctrl(sd, 0); - ret = dev->platform_data->gpio1_ctrl(sd, 0); - msleep(60); - ret |= dev->platform_data->gpio0_ctrl(sd, 1); - ret |= dev->platform_data->gpio1_ctrl(sd, 1); - } else { - ret = dev->platform_data->gpio0_ctrl(sd, 0); - ret = dev->platform_data->gpio1_ctrl(sd, 0); - } + if (dev->platform_data->gpio0_ctrl) + ret = dev->platform_data->gpio0_ctrl(sd, flag); return ret; }