add usb_ftdi_set_latency
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
diff --git a/usbutils.c b/usbutils.c
index 99d1d4c..fa98014 100644
--- a/usbutils.c
+++ b/usbutils.c
@@ -2489,6 +2489,21 @@ int usb_ftdi_cts(struct cgpu_info *cgpu)
return (ret & FTDI_RS0_CTS);
}
+int usb_ftdi_set_latency(struct cgpu_info *cgpu)
+{
+ int err;
+
+ err = usb_transfer_data(cgpu, FTDI_TYPE_OUT, FTDI_REQUEST_LATENCY,
+ cgpu->usbdev->found->latency,
+ cgpu->usbdev->found->interface, NULL, 0, C_LATENCY);
+
+ applog(LOG_DEBUG, "%s: cgid %d %s got err %d",
+ cgpu->drv->name, cgpu->cgminer_id,
+ usb_cmdname(C_LATENCY), err);
+
+ return err;
+}
+
void usb_buffer_enable(struct cgpu_info *cgpu)
{
struct cg_usb_device *cgusb = cgpu->usbdev;
diff --git a/usbutils.h b/usbutils.h
index 71aa8fb..8cc8922 100644
--- a/usbutils.h
+++ b/usbutils.h
@@ -256,11 +256,11 @@ void usb_detect(struct device_drv *drv, bool (*device_detect)(struct libusb_devi
struct api_data *api_usb_stats(int *count);
void update_usb_stats(struct cgpu_info *cgpu);
int _usb_read(struct cgpu_info *cgpu, int ep, char *buf, size_t bufsiz, int *processed, unsigned int timeout, const char *end, enum usb_cmds cmd, bool readonce);
-int usb_ftdi_cts(struct cgpu_info *cgpu);
-int usb_ftdi_ctw(struct cgpu_info *cgpu);
int _usb_write(struct cgpu_info *cgpu, int ep, char *buf, size_t bufsiz, int *processed, unsigned int timeout, enum usb_cmds);
int _usb_transfer(struct cgpu_info *cgpu, uint8_t request_type, uint8_t bRequest, uint16_t wValue, uint16_t wIndex, uint32_t *data, int siz, unsigned int timeout, enum usb_cmds cmd);
int _usb_transfer_read(struct cgpu_info *cgpu, uint8_t request_type, uint8_t bRequest, uint16_t wValue, uint16_t wIndex, char *buf, int bufsiz, int *amount, unsigned int timeout, enum usb_cmds cmd);
+int usb_ftdi_cts(struct cgpu_info *cgpu);
+int usb_ftdi_set_latency(struct cgpu_info *cgpu);
void usb_buffer_enable(struct cgpu_info *cgpu);
void usb_buffer_disable(struct cgpu_info *cgpu);
void usb_buffer_clear(struct cgpu_info *cgpu);