V4L/DVB: gspca - sq930x: Check the USB read errors
[pandora-kernel.git] / drivers / media / video / gspca / sq930x.c
index 7e4381b..dd24127 100644 (file)
@@ -356,12 +356,20 @@ static const struct cap_s {
 static void reg_r(struct gspca_dev *gspca_dev,
                u16 value, int len)
 {
-       usb_control_msg(gspca_dev->dev,
+       int ret;
+
+       if (gspca_dev->usb_err < 0)
+               return;
+       ret = usb_control_msg(gspca_dev->dev,
                        usb_rcvctrlpipe(gspca_dev->dev, 0),
                        0x0c,
                        USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
                        value, 0, gspca_dev->usb_buf, len,
                        500);
+       if (ret < 0) {
+               PDEBUG(D_ERR, "reg_r %04x failed %d", value, ret);
+               gspca_dev->usb_err = ret;
+       }
 }
 
 static void reg_w(struct gspca_dev *gspca_dev, u16 value, u16 index)