Browse Source

usb_ftdi_set_latency LOG_ERRs if called incorrectly

Kano 12 years ago
parent
commit
58bb4d486d
1 changed files with 12 additions and 0 deletions
  1. 12 0
      usbutils.c

+ 12 - 0
usbutils.c

@@ -2493,6 +2493,18 @@ int usb_ftdi_set_latency(struct cgpu_info *cgpu)
 {
 	int err;
 
+	if (cgpu->usbdev->usb_type != USB_TYPE_FTDI) {
+		applog(LOG_ERR, "%s: cgid %d latency request on non-FTDI device",
+			cgpu->drv->name, cgpu->cgminer_id);
+		return LIBUSB_ERROR_NOT_SUPPORTED;
+	}
+
+	if (cgpu->usbdev->found->latency == LATENCY_UNUSED) {
+		applog(LOG_ERR, "%s: cgid %d invalid latency (UNUSED)",
+			cgpu->drv->name, cgpu->cgminer_id);
+		return LIBUSB_ERROR_NOT_SUPPORTED;
+	}
+
 	err = usb_transfer_data(cgpu, FTDI_TYPE_OUT, FTDI_REQUEST_LATENCY,
 				cgpu->usbdev->found->latency,
 				cgpu->usbdev->found->interface, NULL, 0, C_LATENCY);