aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/gspca/pac207.c
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2012-05-10 07:52:37 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-05-14 08:44:02 -0400
commit0413d3b286076b052f624275897d243d5865e0d2 (patch)
tree4b72bd4fa28351509c1854997158e89c894b6632 /drivers/media/video/gspca/pac207.c
parentcd92c1a6d9133b34995a3a8dfe984240b2fae77f (diff)
[media] gscpa_pac207: Switch to coarse_grained_expo auto gain algorithm
The pac207's exposure control is a clock-divider, so it goes with quite big steps. So lets use an autogain algorithm optimised for that. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/gspca/pac207.c')
-rw-r--r--drivers/media/video/gspca/pac207.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/drivers/media/video/gspca/pac207.c b/drivers/media/video/gspca/pac207.c
index 44ad57aa4058..fa661c6d6d55 100644
--- a/drivers/media/video/gspca/pac207.c
+++ b/drivers/media/video/gspca/pac207.c
@@ -46,13 +46,11 @@ MODULE_LICENSE("GPL");
46#define PAC207_EXPOSURE_MIN 3 46#define PAC207_EXPOSURE_MIN 3
47#define PAC207_EXPOSURE_MAX 90 /* 1 sec expo time / 1 fps */ 47#define PAC207_EXPOSURE_MAX 90 /* 1 sec expo time / 1 fps */
48#define PAC207_EXPOSURE_DEFAULT 5 /* power on default: 3 */ 48#define PAC207_EXPOSURE_DEFAULT 5 /* power on default: 3 */
49#define PAC207_EXPOSURE_KNEE 9 /* fps: 90 / exposure -> 9: 10 fps */
50#define PAC207_EXPOSURE_REG 0x02 49#define PAC207_EXPOSURE_REG 0x02
51 50
52#define PAC207_GAIN_MIN 0 51#define PAC207_GAIN_MIN 0
53#define PAC207_GAIN_MAX 31 52#define PAC207_GAIN_MAX 31
54#define PAC207_GAIN_DEFAULT 7 /* power on default: 9 */ 53#define PAC207_GAIN_DEFAULT 7 /* power on default: 9 */
55#define PAC207_GAIN_KNEE 15
56#define PAC207_GAIN_REG 0x0e 54#define PAC207_GAIN_REG 0x0e
57 55
58#define PAC207_AUTOGAIN_DEADZONE 30 56#define PAC207_AUTOGAIN_DEADZONE 30
@@ -343,9 +341,8 @@ static void pac207_do_auto_gain(struct gspca_dev *gspca_dev)
343 341
344 if (sd->autogain_ignore_frames > 0) 342 if (sd->autogain_ignore_frames > 0)
345 sd->autogain_ignore_frames--; 343 sd->autogain_ignore_frames--;
346 else if (gspca_expo_autogain(gspca_dev, avg_lum, 344 else if (gspca_coarse_grained_expo_autogain(gspca_dev, avg_lum,
347 90, PAC207_AUTOGAIN_DEADZONE, 345 90, PAC207_AUTOGAIN_DEADZONE))
348 PAC207_GAIN_KNEE, PAC207_EXPOSURE_KNEE))
349 sd->autogain_ignore_frames = PAC_AUTOGAIN_IGNORE_FRAMES; 346 sd->autogain_ignore_frames = PAC_AUTOGAIN_IGNORE_FRAMES;
350} 347}
351 348