staging: vt6656: s_nsBulkInUsbIoCompleteRead Replace error handling.
authorMalcolm Priestley <tvboxspy@gmail.com>
Tue, 25 Feb 2014 20:51:48 +0000 (20:51 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 Feb 2014 21:04:36 +0000 (13:04 -0800)
Use switch on urb->status

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/vt6656/usbpipe.c

index 87601b7b984c676449f0fb82b400c63a38ea8e84..1cab7a321bf685c06190cd4424132e3a005c1a1e 100644 (file)
@@ -473,21 +473,22 @@ static void s_nsBulkInUsbIoCompleteRead(struct urb *urb)
 
     DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"---->s_nsBulkInUsbIoCompleteRead\n");
 
-    if (urb->status) {
-        pDevice->ulBulkInError++;
-       DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"BULK In failed %d\n", urb->status);
-//todo...xxxxxx
-//        if (status == USBD_STATUS_CRC) {
-//            pDevice->ulBulkInContCRCError++;
-//        }
-//        if (status == STATUS_DEVICE_NOT_CONNECTED )
-//        {
-//            MP_SET_FLAG(pDevice, fMP_DISCONNECTED);
-//        }
-    } else {
-        pDevice->ulBulkInContCRCError = 0;
-       pDevice->ulBulkInBytesRead += urb->actual_length;
-    }
+       switch (urb->status) {
+       case 0:
+               pDevice->ulBulkInContCRCError = 0;
+               pDevice->ulBulkInBytesRead += urb->actual_length;
+               break;
+       case -ECONNRESET:
+       case -ENOENT:
+       case -ESHUTDOWN:
+               return;
+       case -ETIMEDOUT:
+       default:
+               pDevice->ulBulkInError++;
+               DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO
+                               "BULK In failed %d\n", urb->status);
+               break;
+       }
 
     if (urb->actual_length) {
         spin_lock(&pDevice->lock);