The patch number 9290 was added via Jean-Francois Moine <[EMAIL PROTECTED]> to http://linuxtv.org/hg/v4l-dvb master development tree.
Kernel patches in this development tree may be modified to be backward compatible with older kernels. Compatibility modifications will be removed before inclusion into the mainstream Kernel If anyone has any objections, please let us know by sending a message to: [EMAIL PROTECTED] ------ From: Jean-Francois Moine <[EMAIL PROTECTED]> gspca: Adjust the sensor init sequences in t613. Priority: normal Signed-off-by: Jean-Francois Moine <[EMAIL PROTECTED]> --- linux/drivers/media/video/gspca/t613.c | 27 ++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff -r e3b43b65f727 -r e852c9ddda1a linux/drivers/media/video/gspca/t613.c --- a/linux/drivers/media/video/gspca/t613.c Fri Oct 17 09:53:02 2008 +0200 +++ b/linux/drivers/media/video/gspca/t613.c Fri Oct 17 10:00:59 2008 +0200 @@ -365,6 +365,8 @@ static const __u8 tas5130a_sensor_init[] {}, }; +static __u8 sensor_reset[] = {0x61, 0x68, 0x62, 0xff, 0x60, 0x07}; + /* read 1 byte */ static int reg_r(struct gspca_dev *gspca_dev, __u16 index) @@ -437,11 +439,24 @@ static void om6802_sensor_init(struct gs 0x90, 0x24, 0x91, 0xb2, 0x82, 0x32, - 0xfd, 0x00, - 0xfd, 0x01, 0xfd, 0x41, 0x00 /* table end */ }; + + reg_w_buf(gspca_dev, sensor_reset, sizeof sensor_reset); + msleep(5); + i = 4; + while (--i < 0) { + byte = reg_r(gspca_dev, 0x0060); + if (!(byte & 0x01)) + break; + msleep(100); + } + byte = reg_r(gspca_dev, 0x0063); + if (byte != 0x17) { + err("Bad sensor reset %02x", byte); + /* continue? */ + } p = sensor_init; while (*p != 0) { @@ -458,7 +473,8 @@ static void om6802_sensor_init(struct gs break; } } - reg_w(gspca_dev, 0x3c80); + msleep(15); + reg_w(gspca_dev, 0x3c80); } /* this function is called at probe time */ @@ -512,8 +528,6 @@ static int sd_init(struct gspca_dev *gsp {0x08, 0x03, 0x09, 0x03, 0x12, 0x04}; static const __u8 n2[] = {0x08, 0x00}; - static const __u8 nset[] = - { 0x61, 0x68, 0x62, 0xff, 0x60, 0x07 }; static const __u8 n3[] = {0x61, 0x68, 0x65, 0x0a, 0x60, 0x04}; static const __u8 n4[] = @@ -572,8 +586,7 @@ static int sd_init(struct gspca_dev *gsp test_byte = 0; i = 5; while (--i >= 0) { - reg_w_buf(gspca_dev, nset, sizeof nset); - msleep(5); + reg_w_buf(gspca_dev, sensor_reset, sizeof sensor_reset); test_byte = reg_r(gspca_dev, 0x0063); msleep(100); if (test_byte == 0x17) --- Patch is available at: http://linuxtv.org/hg/v4l-dvb/rev/e852c9ddda1abbdd165cd7780ace1112776c5227 _______________________________________________ linuxtv-commits mailing list linuxtv-commits@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits