From 66b4f466632eb1e999a0835fc6e31150c5105152 Mon Sep 17 00:00:00 2001 From: Brian Johnson Date: Thu, 3 Sep 2009 19:10:15 -0300 Subject: [PATCH] --- yaml --- r: 161616 b: refs/heads/master c: 4d708a5e9e5db74da28965fa00082d8c9323f523 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/media/video/gspca/sn9c20x.c | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 5bbdfd011c06..8727db177b8c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 13a84fa4de7c050b27f14d39720f8b036cecde24 +refs/heads/master: 4d708a5e9e5db74da28965fa00082d8c9323f523 diff --git a/trunk/drivers/media/video/gspca/sn9c20x.c b/trunk/drivers/media/video/gspca/sn9c20x.c index 5e01b2845754..cdad3db33367 100644 --- a/trunk/drivers/media/video/gspca/sn9c20x.c +++ b/trunk/drivers/media/video/gspca/sn9c20x.c @@ -1038,8 +1038,8 @@ static struct i2c_reg_u16 mt9m001_init[] = { static struct i2c_reg_u16 mt9m111_init[] = { {0xf0, 0x0000}, {0x0d, 0x0021}, {0x0d, 0x0008}, {0xf0, 0x0001}, {0x3a, 0x4300}, {0x9b, 0x4300}, - {0xa1, 0x0280}, {0xa4, 0x0200}, {0x06, 0x708e}, - {0xf0, 0x0002}, {0x2e, 0x0a1e}, {0xf0, 0x0000}, + {0x06, 0x708e}, {0xf0, 0x0002}, {0x2e, 0x0a1e}, + {0xf0, 0x0000}, }; static struct i2c_reg_u8 hv7131r_init[] = { @@ -2005,6 +2005,7 @@ static int sd_config(struct gspca_dev *gspca_dev, sd->i2c_addr = id->driver_info & 0xff; switch (sd->sensor) { + case SENSOR_MT9M111: case SENSOR_OV9650: case SENSOR_SOI968: cam->cam_mode = sxga_mode; @@ -2158,6 +2159,17 @@ static void configure_sensor_output(struct gspca_dev *gspca_dev, int mode) i2c_w1(gspca_dev, 0x12, (value & 0x7) | 0x40); } break; + case SENSOR_MT9M111: + if (mode & MODE_SXGA) { + i2c_w2(gspca_dev, 0xf0, 0x0002); + i2c_w2(gspca_dev, 0xc8, 0x970b); + i2c_w2(gspca_dev, 0xf0, 0x0000); + } else { + i2c_w2(gspca_dev, 0xf0, 0x0002); + i2c_w2(gspca_dev, 0xc8, 0x8000); + i2c_w2(gspca_dev, 0xf0, 0x0000); + } + break; } }