diff options
Diffstat (limited to 'drivers/media/usb/gspca')
| -rw-r--r-- | drivers/media/usb/gspca/kinect.c | 1 | ||||
| -rw-r--r-- | drivers/media/usb/gspca/sonixb.c | 13 | ||||
| -rw-r--r-- | drivers/media/usb/gspca/sonixj.c | 1 | 
3 files changed, 10 insertions, 5 deletions
diff --git a/drivers/media/usb/gspca/kinect.c b/drivers/media/usb/gspca/kinect.c index 40ad6687ee5..3773a8a745d 100644 --- a/drivers/media/usb/gspca/kinect.c +++ b/drivers/media/usb/gspca/kinect.c @@ -381,6 +381,7 @@ static const struct sd_desc sd_desc = {  /* -- module initialisation -- */  static const struct usb_device_id device_table[] = {  	{USB_DEVICE(0x045e, 0x02ae)}, +	{USB_DEVICE(0x045e, 0x02bf)},  	{}  }; diff --git a/drivers/media/usb/gspca/sonixb.c b/drivers/media/usb/gspca/sonixb.c index 70511d5f953..1220340e760 100644 --- a/drivers/media/usb/gspca/sonixb.c +++ b/drivers/media/usb/gspca/sonixb.c @@ -496,7 +496,7 @@ static void reg_w(struct gspca_dev *gspca_dev,  	}  } -static void i2c_w(struct gspca_dev *gspca_dev, const __u8 *buffer) +static void i2c_w(struct gspca_dev *gspca_dev, const u8 *buf)  {  	int retry = 60; @@ -504,16 +504,19 @@ static void i2c_w(struct gspca_dev *gspca_dev, const __u8 *buffer)  		return;  	/* is i2c ready */ -	reg_w(gspca_dev, 0x08, buffer, 8); +	reg_w(gspca_dev, 0x08, buf, 8);  	while (retry--) {  		if (gspca_dev->usb_err < 0)  			return; -		msleep(10); +		msleep(1);  		reg_r(gspca_dev, 0x08);  		if (gspca_dev->usb_buf[0] & 0x04) {  			if (gspca_dev->usb_buf[0] & 0x08) {  				dev_err(gspca_dev->v4l2_dev.dev, -					"i2c write error\n"); +					"i2c error writing %02x %02x %02x %02x" +					" %02x %02x %02x %02x\n", +					buf[0], buf[1], buf[2], buf[3], +					buf[4], buf[5], buf[6], buf[7]);  				gspca_dev->usb_err = -EIO;  			}  			return; @@ -530,7 +533,7 @@ static void i2c_w_vector(struct gspca_dev *gspca_dev,  	for (;;) {  		if (gspca_dev->usb_err < 0)  			return; -		reg_w(gspca_dev, 0x08, *buffer, 8); +		i2c_w(gspca_dev, *buffer);  		len -= 8;  		if (len <= 0)  			break; diff --git a/drivers/media/usb/gspca/sonixj.c b/drivers/media/usb/gspca/sonixj.c index 5a86047b846..36307a9028a 100644 --- a/drivers/media/usb/gspca/sonixj.c +++ b/drivers/media/usb/gspca/sonixj.c @@ -1550,6 +1550,7 @@ static void i2c_w1(struct gspca_dev *gspca_dev, u8 reg, u8 val)  			0,  			gspca_dev->usb_buf, 8,  			500); +	msleep(2);  	if (ret < 0) {  		pr_err("i2c_w1 err %d\n", ret);  		gspca_dev->usb_err = ret;  |