Browse Source

Differentiate libusb control transfer pipe errors from transfer errors since they're not fatal.

Con Kolivas 12 years ago
parent
commit
29f5fc4888
1 changed files with 6 additions and 2 deletions
  1. 6 2
      usbutils.c

+ 6 - 2
usbutils.c

@@ -22,6 +22,10 @@
 			(err) == LIBUSB_ERROR_PIPE || \
 			(err) == LIBUSB_ERROR_PIPE || \
 			(err) == LIBUSB_ERROR_OTHER)
 			(err) == LIBUSB_ERROR_OTHER)
 
 
+#define NOCONTROLDEV(err) ((err) == LIBUSB_ERROR_NO_DEVICE || \
+			(err) == LIBUSB_ERROR_OTHER)
+
+			
 #ifdef USE_BFLSC
 #ifdef USE_BFLSC
 #define DRV_BFLSC 1
 #define DRV_BFLSC 1
 #endif
 #endif
@@ -2568,7 +2572,7 @@ int _usb_transfer(struct cgpu_info *cgpu, uint8_t request_type, uint8_t bRequest
 	if (buf)
 	if (buf)
 		free(buf);
 		free(buf);
 
 
-	if (NODEV(err))
+	if (NOCONTROLDEV(err))
 		release_cgpu(cgpu);
 		release_cgpu(cgpu);
 
 
 out_unlock:
 out_unlock:
@@ -2614,7 +2618,7 @@ int _usb_transfer_read(struct cgpu_info *cgpu, uint8_t request_type, uint8_t bRe
 	if (err > 0) {
 	if (err > 0) {
 		*amount = err;
 		*amount = err;
 		err = 0;
 		err = 0;
-	} else if (NODEV(err))
+	} else if (NOCONTROLDEV(err))
 		release_cgpu(cgpu);
 		release_cgpu(cgpu);
 
 
 out_unlock:
 out_unlock: