libusb_control_transfer 16 bit words are endian specific.
diff --git a/usbutils.c b/usbutils.c
index f4efe61..081c292 100644
--- a/usbutils.c
+++ b/usbutils.c
@@ -2071,7 +2071,7 @@ int _usb_transfer(struct cgpu_info *cgpu, uint8_t request_type, uint8_t bRequest
STATS_TIMEVAL(&tv_start);
err = libusb_control_transfer(usbdev->handle, request_type,
- bRequest, wValue, wIndex, NULL, 0,
+ bRequest, htole16(wValue), htole16(wIndex), NULL, 0,
timeout == DEVTIMEOUT ? usbdev->found->timeout : timeout);
STATS_TIMEVAL(&tv_finish);
USB_STATS(cgpu, &tv_start, &tv_finish, err, cmd, SEQ0);