media: ov13858: Fix initial expsoure max
authorChiranjeevi Rapolu <chiranjeevi.rapolu@intel.com>
Thu, 27 Jul 2017 07:44:19 +0000 (03:44 -0400)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Wed, 9 Aug 2017 15:18:09 +0000 (11:18 -0400)
Previously, initial exposure max was set incorrectly to (0x7fff - 8).
Now, limit exposure max to current resolution (VTS - 8).

Signed-off-by: Chiranjeevi Rapolu <chiranjeevi.rapolu@intel.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/media/i2c/ov13858.c

index 8e6c8f0..85fd82f 100644 (file)
@@ -66,7 +66,6 @@
 /* Exposure control */
 #define OV13858_REG_EXPOSURE           0x3500
 #define OV13858_EXPOSURE_MIN           4
-#define OV13858_EXPOSURE_MAX           (OV13858_VTS_MAX - 8)
 #define OV13858_EXPOSURE_STEP          1
 #define OV13858_EXPOSURE_DEFAULT       0x640
 
@@ -1605,6 +1604,7 @@ static int ov13858_init_controls(struct ov13858 *ov13858)
 {
        struct i2c_client *client = v4l2_get_subdevdata(&ov13858->sd);
        struct v4l2_ctrl_handler *ctrl_hdlr;
+       s64 exposure_max;
        int ret;
 
        ctrl_hdlr = &ov13858->ctrl_handler;
@@ -1643,10 +1643,11 @@ static int ov13858_init_controls(struct ov13858 *ov13858)
                                OV13858_PPL_1080MHZ - ov13858->cur_mode->width);
        ov13858->hblank->flags |= V4L2_CTRL_FLAG_READ_ONLY;
 
+       exposure_max = ov13858->cur_mode->vts - 8;
        ov13858->exposure = v4l2_ctrl_new_std(
                                ctrl_hdlr, &ov13858_ctrl_ops,
                                V4L2_CID_EXPOSURE, OV13858_EXPOSURE_MIN,
-                               OV13858_EXPOSURE_MAX, OV13858_EXPOSURE_STEP,
+                               exposure_max, OV13858_EXPOSURE_STEP,
                                OV13858_EXPOSURE_DEFAULT);
 
        v4l2_ctrl_new_std(ctrl_hdlr, &ov13858_ctrl_ops, V4L2_CID_ANALOGUE_GAIN,