Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 306218
b: refs/heads/master
c: 282ddfb
h: refs/heads/master
v: v3
  • Loading branch information
Hans de Goede authored and Mauro Carvalho Chehab committed May 7, 2012
1 parent 391a629 commit ecb873b
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 6 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 4b8ceb6c1539d776de8aec587902d8e0e2705390
refs/heads/master: 282ddfbcab456eb09429b3ca3c1cc5dde5a65358
30 changes: 25 additions & 5 deletions trunk/drivers/media/video/gspca/pac7311.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,18 @@
* 0x1b Auto white balance related, bit 0 is AWB enable (inverted)
* bits 345 seem to toggle per color gains on/off (inverted)
* 0x78 Global control, bit 6 controls the LED (inverted)
* 0x80 JPEG compression ratio ? Best not touched
* 0x80 Compression balance, interesting settings:
* 0x01 Use this to allow the camera to switch to higher compr.
* on the fly. Needed to stay within bandwidth @ 640x480@30
* 0x1c From usb captures under Windows for 640x480
* 0x2a Values >= this switch the camera to a lower compression,
* using the same table for both luminance and chrominance.
* This gives a sharper picture. Usable only at 640x480@ <
* 15 fps or 320x240 / 160x120. Note currently the driver
* does not use this as the quality gain is small and the
* generated JPG-s are only understood by v4l-utils >= 0.8.9
* 0x3f From usb captures under Windows for 320x240
* 0x69 From usb captures under Windows for 160x120
*
* Register page 4:
*
Expand Down Expand Up @@ -408,12 +419,21 @@ static void setexposure(struct gspca_dev *gspca_dev)
* 640x480 mode and page 4 reg 2 <= 3 then it must be 9
*/
reg_w(gspca_dev, 0xff, 0x01);
if (gspca_dev->cam.cam_mode[(int)gspca_dev->curr_mode].priv &&
sd->ctrls[EXPOSURE].val <= 3) {
if (gspca_dev->width != 640 && sd->ctrls[EXPOSURE].val <= 3)
reg_w(gspca_dev, 0x08, 0x09);
} else {
else
reg_w(gspca_dev, 0x08, 0x08);
}

/*
* Page1 register 80 sets the compression balance, normally we
* want / use 0x1c, but for 640x480@30fps we must allow the
* camera to use higher compression or we may run out of
* bandwidth.
*/
if (gspca_dev->width == 640 && sd->ctrls[EXPOSURE].val == 2)
reg_w(gspca_dev, 0x80, 0x01);
else
reg_w(gspca_dev, 0x80, 0x1c);

/* load registers to sensor (Bit 0, auto clear) */
reg_w(gspca_dev, 0x11, 0x01);
Expand Down

0 comments on commit ecb873b

Please sign in to comment.