aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/gspca
diff options
context:
space:
mode:
authorJean-Francois Moine <moinejf@free.fr>2009-02-01 12:48:55 -0500
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-03-30 11:42:37 -0400
commit2687a2fb1ce2b764298fb40c96765b04eaddac95 (patch)
tree644b85b8bc9d51b375f5ac7c5835b415c73103a6 /drivers/media/video/gspca
parent65c5259cc44c822215e670025c226d77f5a323bf (diff)
V4L/DVB (10430): gspca - sonixj: Adjust some exchanges with the sensor mt9v111.
This patch also enables the autogain for the mt9v111. Signed-off-by: Jean-Francois Moine <moinejf@free.fr> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/gspca')
-rw-r--r--drivers/media/video/gspca/sonixj.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/drivers/media/video/gspca/sonixj.c b/drivers/media/video/gspca/sonixj.c
index 4101a240e48..970c74f9fe8 100644
--- a/drivers/media/video/gspca/sonixj.c
+++ b/drivers/media/video/gspca/sonixj.c
@@ -234,7 +234,7 @@ static __u32 ctrl_dis[] = {
234 /* SENSOR_MI0360 1 */ 234 /* SENSOR_MI0360 1 */
235 (1 << INFRARED_IDX) | (1 << VFLIP_IDX), 235 (1 << INFRARED_IDX) | (1 << VFLIP_IDX),
236 /* SENSOR_MO4000 2 */ 236 /* SENSOR_MO4000 2 */
237 (1 << AUTOGAIN_IDX), 237 0,
238 /* SENSOR_MT9V111 3 */ 238 /* SENSOR_MT9V111 3 */
239 (1 << INFRARED_IDX) | (1 << VFLIP_IDX), 239 (1 << INFRARED_IDX) | (1 << VFLIP_IDX),
240 /* SENSOR_OM6802 4 */ 240 /* SENSOR_OM6802 4 */
@@ -517,8 +517,18 @@ static const u8 mt9v111_sensor_init[][8] = {
517 {0xb1, 0x5c, 0x01, 0x00, 0x01, 0x00, 0x00, 0x10}, /* IFP select */ 517 {0xb1, 0x5c, 0x01, 0x00, 0x01, 0x00, 0x00, 0x10}, /* IFP select */
518 {0xb1, 0x5c, 0x08, 0x04, 0x80, 0x00, 0x00, 0x10}, /* output fmt ctrl */ 518 {0xb1, 0x5c, 0x08, 0x04, 0x80, 0x00, 0x00, 0x10}, /* output fmt ctrl */
519 {0xb1, 0x5c, 0x06, 0x00, 0x00, 0x00, 0x00, 0x10}, /* op mode ctrl */ 519 {0xb1, 0x5c, 0x06, 0x00, 0x00, 0x00, 0x00, 0x10}, /* op mode ctrl */
520 {0xb1, 0x5c, 0x02, 0x00, 0x16, 0x00, 0x00, 0x10},
521 {0xb1, 0x5c, 0x03, 0x01, 0xe1, 0x00, 0x00, 0x10},
522 {0xb1, 0x5c, 0x04, 0x02, 0x81, 0x00, 0x00, 0x10},
523 {0xb1, 0x5c, 0x05, 0x00, 0x04, 0x00, 0x00, 0x10},
520 {0xb1, 0x5c, 0x01, 0x00, 0x04, 0x00, 0x00, 0x10}, /* sensor select */ 524 {0xb1, 0x5c, 0x01, 0x00, 0x04, 0x00, 0x00, 0x10}, /* sensor select */
525 {0xb1, 0x5c, 0x02, 0x00, 0x16, 0x00, 0x00, 0x10},
526 {0xb1, 0x5c, 0x03, 0x01, 0xe6, 0x00, 0x00, 0x10},
527 {0xb1, 0x5c, 0x04, 0x02, 0x86, 0x00, 0x00, 0x10},
528 {0xb1, 0x5c, 0x05, 0x00, 0x04, 0x00, 0x00, 0x10},
529 {0xb1, 0x5c, 0x06, 0x00, 0x00, 0x00, 0x00, 0x10},
521 {0xb1, 0x5c, 0x08, 0x00, 0x08, 0x00, 0x00, 0x10}, /* row start */ 530 {0xb1, 0x5c, 0x08, 0x00, 0x08, 0x00, 0x00, 0x10}, /* row start */
531 {0xb1, 0x5c, 0x0e, 0x00, 0x08, 0x00, 0x00, 0x10},
522 {0xb1, 0x5c, 0x02, 0x00, 0x16, 0x00, 0x00, 0x10}, /* col start */ 532 {0xb1, 0x5c, 0x02, 0x00, 0x16, 0x00, 0x00, 0x10}, /* col start */
523 {0xb1, 0x5c, 0x03, 0x01, 0xe7, 0x00, 0x00, 0x10}, /* window height */ 533 {0xb1, 0x5c, 0x03, 0x01, 0xe7, 0x00, 0x00, 0x10}, /* window height */
524 {0xb1, 0x5c, 0x04, 0x02, 0x87, 0x00, 0x00, 0x10}, /* window width */ 534 {0xb1, 0x5c, 0x04, 0x02, 0x87, 0x00, 0x00, 0x10}, /* window width */
@@ -532,7 +542,7 @@ static const u8 mt9v111_sensor_init[][8] = {
532 /*******/ 542 /*******/
533 {0xb1, 0x5c, 0x20, 0x00, 0x00, 0x00, 0x00, 0x10}, 543 {0xb1, 0x5c, 0x20, 0x00, 0x00, 0x00, 0x00, 0x10},
534 {0xb1, 0x5c, 0x20, 0x00, 0x00, 0x00, 0x00, 0x10}, 544 {0xb1, 0x5c, 0x20, 0x00, 0x00, 0x00, 0x00, 0x10},
535 {0xb1, 0x5c, 0x09, 0x00, 0x64, 0x00, 0x00, 0x10}, /* shutter width */ 545 {0xb1, 0x5c, 0x09, 0x01, 0x2c, 0x00, 0x00, 0x10},
536 {0xd1, 0x5c, 0x2b, 0x00, 0x33, 0x00, 0xa0, 0x10}, /* green1 gain */ 546 {0xd1, 0x5c, 0x2b, 0x00, 0x33, 0x00, 0xa0, 0x10}, /* green1 gain */
537 {0xd1, 0x5c, 0x2d, 0x00, 0xa0, 0x00, 0x33, 0x10}, /* red gain */ 547 {0xd1, 0x5c, 0x2d, 0x00, 0xa0, 0x00, 0x33, 0x10}, /* red gain */
538 /*******/ 548 /*******/
@@ -1688,7 +1698,7 @@ static int sd_start(struct gspca_dev *gspca_dev)
1688 reg1 = 0x04; /* 320 clk 48Mhz */ 1698 reg1 = 0x04; /* 320 clk 48Mhz */
1689 } else { 1699 } else {
1690/* reg1 = 0x06; * 640 clk 24Mz (done) */ 1700/* reg1 = 0x06; * 640 clk 24Mz (done) */
1691 reg17 = 0xe2; 1701 reg17 = 0xc2;
1692 } 1702 }
1693 break; 1703 break;
1694 case SENSOR_OM6802: 1704 case SENSOR_OM6802: