Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 192994
b: refs/heads/master
c: c26b12d
h: refs/heads/master
v: v3
  • Loading branch information
Jean-François Moine authored and Mauro Carvalho Chehab committed May 19, 2010
1 parent 8342761 commit 03e9fd7
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 9 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: 73e4934c80338757dca46ffaa30a3443a31043fb
refs/heads/master: c26b12d0646e0f571389a0a990882af3732b26a8
30 changes: 22 additions & 8 deletions trunk/drivers/media/video/gspca/sonixj.c
Original file line number Diff line number Diff line change
Expand Up @@ -291,8 +291,7 @@ static const __u32 ctrl_dis[] = {
(1 << VFLIP_IDX) |
(1 << FREQ_IDX),

[SENSOR_GC0307] = (1 << AUTOGAIN_IDX) |
(1 << INFRARED_IDX) |
[SENSOR_GC0307] = (1 << INFRARED_IDX) |
(1 << VFLIP_IDX) |
(1 << FREQ_IDX),

Expand Down Expand Up @@ -642,12 +641,6 @@ static const u8 gc0307_sensor_param1[][8] = {
/*param3*/
{0xa0, 0x21, 0x01, 0x6e, 0x00, 0x00, 0x00, 0x10},
{0xa0, 0x21, 0x02, 0x88, 0x00, 0x00, 0x00, 0x10},

{0xa0, 0x21, 0x68, 0x22, 0x00, 0x00, 0x00, 0x10},
{0xdd, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
{0xa0, 0x21, 0x03, 0x07, 0x00, 0x00, 0x00, 0x10},
{0xdd, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
{0xa0, 0x21, 0x04, 0x91, 0x00, 0x00, 0x00, 0x10},
{}
};

Expand Down Expand Up @@ -1815,6 +1808,18 @@ static u32 setexposure(struct gspca_dev *gspca_dev,
struct sd *sd = (struct sd *) gspca_dev;

switch (sd->sensor) {
case SENSOR_GC0307: {
int a, b;

/* expo = 0..255 -> a = 19..43 */
a = 19 + expo * 25 / 256;
i2c_w1(gspca_dev, 0x68, a);
a -= 12;
b = a * a * 4; /* heuristic */
i2c_w1(gspca_dev, 0x03, b >> 8);
i2c_w1(gspca_dev, 0x04, b);
break;
}
case SENSOR_HV7131R: {
u8 Expodoit[] =
{ 0xc1, 0x11, 0x25, 0x00, 0x00, 0x00, 0x00, 0x16 };
Expand Down Expand Up @@ -1925,6 +1930,7 @@ static void setbrightness(struct gspca_dev *gspca_dev)
expo = sd->brightness >> 4;
sd->exposure = setexposure(gspca_dev, expo);
break;
case SENSOR_GC0307:
case SENSOR_MT9V111:
expo = sd->brightness >> 8;
sd->exposure = setexposure(gspca_dev, expo);
Expand Down Expand Up @@ -2524,6 +2530,14 @@ static void do_autogain(struct gspca_dev *gspca_dev)
if (delta < luma_mean - luma_delta ||
delta > luma_mean + luma_delta) {
switch (sd->sensor) {
case SENSOR_GC0307:
expotimes = sd->exposure;
expotimes += (luma_mean - delta) >> 6;
if (expotimes < 0)
expotimes = 0;
sd->exposure = setexposure(gspca_dev,
(unsigned int) expotimes);
break;
case SENSOR_HV7131R:
expotimes = sd->exposure >> 8;
expotimes += (luma_mean - delta) >> 4;
Expand Down

0 comments on commit 03e9fd7

Please sign in to comment.