diff options
-rw-r--r-- | drivers/media/video/gspca/mr97310a.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/media/video/gspca/mr97310a.c b/drivers/media/video/gspca/mr97310a.c index abc56e37efcb..f282f8000701 100644 --- a/drivers/media/video/gspca/mr97310a.c +++ b/drivers/media/video/gspca/mr97310a.c | |||
@@ -842,8 +842,9 @@ static void setexposure(struct gspca_dev *gspca_dev) | |||
842 | return; | 842 | return; |
843 | 843 | ||
844 | if (sd->cam_type == CAM_TYPE_CIF && sd->sensor_type == 1) { | 844 | if (sd->cam_type == CAM_TYPE_CIF && sd->sensor_type == 1) { |
845 | /* This cam does not like very low exposure settings */ | 845 | /* This cam does not like exposure settings > 300, |
846 | exposure = (sd->exposure < 300) ? 300 : sd->exposure; | 846 | so scale 0 - 4095 to 300 - 4095 */ |
847 | exposure = (sd->exposure * 9267) / 10000 + 300; | ||
847 | sensor_write1(gspca_dev, 3, exposure >> 4); | 848 | sensor_write1(gspca_dev, 3, exposure >> 4); |
848 | sensor_write1(gspca_dev, 4, exposure & 0x0f); | 849 | sensor_write1(gspca_dev, 4, exposure & 0x0f); |
849 | } else { | 850 | } else { |