aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/i2c/soc_camera/mt9m001.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/i2c/soc_camera/mt9m001.c')
-rw-r--r--drivers/media/i2c/soc_camera/mt9m001.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/media/i2c/soc_camera/mt9m001.c b/drivers/media/i2c/soc_camera/mt9m001.c
index df97033fa6ef..dbd8c142d6ef 100644
--- a/drivers/media/i2c/soc_camera/mt9m001.c
+++ b/drivers/media/i2c/soc_camera/mt9m001.c
@@ -403,7 +403,7 @@ static int mt9m001_s_ctrl(struct v4l2_ctrl *ctrl)
403 if (ctrl->val <= ctrl->default_value) { 403 if (ctrl->val <= ctrl->default_value) {
404 /* Pack it into 0..1 step 0.125, register values 0..8 */ 404 /* Pack it into 0..1 step 0.125, register values 0..8 */
405 unsigned long range = ctrl->default_value - ctrl->minimum; 405 unsigned long range = ctrl->default_value - ctrl->minimum;
406 data = ((ctrl->val - ctrl->minimum) * 8 + range / 2) / range; 406 data = ((ctrl->val - (s32)ctrl->minimum) * 8 + range / 2) / range;
407 407
408 dev_dbg(&client->dev, "Setting gain %d\n", data); 408 dev_dbg(&client->dev, "Setting gain %d\n", data);
409 data = reg_write(client, MT9M001_GLOBAL_GAIN, data); 409 data = reg_write(client, MT9M001_GLOBAL_GAIN, data);
@@ -413,7 +413,7 @@ static int mt9m001_s_ctrl(struct v4l2_ctrl *ctrl)
413 /* Pack it into 1.125..15 variable step, register values 9..67 */ 413 /* Pack it into 1.125..15 variable step, register values 9..67 */
414 /* We assume qctrl->maximum - qctrl->default_value - 1 > 0 */ 414 /* We assume qctrl->maximum - qctrl->default_value - 1 > 0 */
415 unsigned long range = ctrl->maximum - ctrl->default_value - 1; 415 unsigned long range = ctrl->maximum - ctrl->default_value - 1;
416 unsigned long gain = ((ctrl->val - ctrl->default_value - 1) * 416 unsigned long gain = ((ctrl->val - (s32)ctrl->default_value - 1) *
417 111 + range / 2) / range + 9; 417 111 + range / 2) / range + 9;
418 418
419 if (gain <= 32) 419 if (gain <= 32)
@@ -434,7 +434,7 @@ static int mt9m001_s_ctrl(struct v4l2_ctrl *ctrl)
434 case V4L2_CID_EXPOSURE_AUTO: 434 case V4L2_CID_EXPOSURE_AUTO:
435 if (ctrl->val == V4L2_EXPOSURE_MANUAL) { 435 if (ctrl->val == V4L2_EXPOSURE_MANUAL) {
436 unsigned long range = exp->maximum - exp->minimum; 436 unsigned long range = exp->maximum - exp->minimum;
437 unsigned long shutter = ((exp->val - exp->minimum) * 1048 + 437 unsigned long shutter = ((exp->val - (s32)exp->minimum) * 1048 +
438 range / 2) / range + 1; 438 range / 2) / range + 1;
439 439
440 dev_dbg(&client->dev, 440 dev_dbg(&client->dev,