Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 174024
b: refs/heads/master
c: 64f4d9a
h: refs/heads/master
v: v3
  • Loading branch information
Theodore Kilgore authored and Mauro Carvalho Chehab committed Dec 5, 2009
1 parent efb2ff2 commit 8d85c0f
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 3 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: 1160a3818ec387ddadfd173b3bceea654a474b74
refs/heads/master: 64f4d9a367b4fe329ba78e3171d1abb1338a951f
32 changes: 30 additions & 2 deletions trunk/drivers/media/video/gspca/mr97310a.c
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ struct sd {
u8 cam_type; /* 0 is CIF and 1 is VGA */
u8 sensor_type; /* We use 0 and 1 here, too. */
u8 do_lcd_stop;
u8 adj_colors;

int brightness;
u16 exposure;
Expand Down Expand Up @@ -525,13 +526,18 @@ static int sd_config(struct gspca_dev *gspca_dev,

sd->sensor_type = 1;
sd->do_lcd_stop = 0;
sd->adj_colors = 0;
if ((gspca_dev->usb_buf[0] != 0x03) &&
(gspca_dev->usb_buf[0] != 0x04)) {
PDEBUG(D_ERR, "Unknown VGA Sensor id Byte 0: %02x",
gspca_dev->usb_buf[1]);
PDEBUG(D_ERR, "Defaults assumed, may not work");
PDEBUG(D_ERR, "Please report this");
}
/* Sakar Digital color needs to be adjusted. */
if ((gspca_dev->usb_buf[0] == 0x03) &&
(gspca_dev->usb_buf[1] == 0x50))
sd->adj_colors = 1;
if (gspca_dev->usb_buf[0] == 0x04) {
sd->do_lcd_stop = 1;
switch (gspca_dev->usb_buf[1]) {
Expand Down Expand Up @@ -759,9 +765,20 @@ static int start_vga_cam(struct gspca_dev *gspca_dev)
err_code = sensor_write_regs(gspca_dev, vga_sensor0_init_data,
ARRAY_SIZE(vga_sensor0_init_data));
} else { /* sd->sensor_type = 1 */
const struct sensor_w_data vga_sensor1_init_data[] = {
const struct sensor_w_data color_adj[] = {
{0x02, 0x00, {0x06, 0x59, 0x0c, 0x16, 0x00,
/* adjusted blue, green, red gain correct
too much blue from the Sakar Digital */
0x05, 0x01, 0x05}, 8}
};

const struct sensor_w_data color_no_adj[] = {
{0x02, 0x00, {0x06, 0x59, 0x0c, 0x16, 0x00,
0x07, 0x00, 0x01}, 8},
/* default blue, green, red gain settings */
0x07, 0x00, 0x01}, 8}
};

const struct sensor_w_data vga_sensor1_init_data[] = {
{0x11, 0x04, {0x01}, 1},
/*{0x0a, 0x00, {0x00, 0x01, 0x00, 0x00, 0x01, */
{0x0a, 0x00, {0x01, 0x06, 0x00, 0x00, 0x01,
Expand All @@ -771,6 +788,17 @@ static int start_vga_cam(struct gspca_dev *gspca_dev)
{0x11, 0x04, {0x01}, 1},
{0, 0, {0}, 0}
};

if (sd->adj_colors)
err_code = sensor_write_regs(gspca_dev, color_adj,
ARRAY_SIZE(color_adj));
else
err_code = sensor_write_regs(gspca_dev, color_no_adj,
ARRAY_SIZE(color_no_adj));

if (err_code < 0)
return err_code;

err_code = sensor_write_regs(gspca_dev, vga_sensor1_init_data,
ARRAY_SIZE(vga_sensor1_init_data));
}
Expand Down

0 comments on commit 8d85c0f

Please sign in to comment.