Merge branch 'master' of github.com:ckolivas/cgminer into redfury
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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
diff --git a/driver-icarus.c b/driver-icarus.c
index 8ffe390..59fd554 100644
--- a/driver-icarus.c
+++ b/driver-icarus.c
@@ -297,7 +297,7 @@ static void icarus_initialise(struct cgpu_info *icarus, int baud)
return;
// Latency
- usb_ftdi_set_latency(icarus);
+ _usb_ftdi_set_latency(icarus, info->intinfo);
if (icarus->usbinfo.nodev)
return;
@@ -890,13 +890,6 @@ static bool icarus_detect_one(struct libusb_device *dev, struct usb_find_devices
cgtmp->usbinfo.usbstat = USB_NOSTAT;
- if (!add_cgpu(cgtmp)) {
- usb_uninit(cgtmp);
- continue;
- }
-
- update_usb_stats(cgtmp);
-
intmp = (struct ICARUS_INFO *)malloc(sizeof(struct ICARUS_INFO));
if (unlikely(!intmp))
quit(1, "Failed2 to malloc ICARUS_INFO");
@@ -907,6 +900,16 @@ static bool icarus_detect_one(struct libusb_device *dev, struct usb_find_devices
memcpy(intmp, info, sizeof(struct ICARUS_INFO));
intmp->intinfo = i;
+
+ icarus_initialise(cgtmp, baud);
+
+ if (!add_cgpu(cgtmp)) {
+ usb_uninit(cgtmp);
+ free(intmp);
+ continue;
+ }
+
+ update_usb_stats(cgtmp);
}
}
diff --git a/usbutils.c b/usbutils.c
index 0a42c71..136e93e 100644
--- a/usbutils.c
+++ b/usbutils.c
@@ -2335,7 +2335,7 @@ usb_bulk_transfer(struct libusb_device_handle *dev_handle, int intinfo,
STATS_TIMEVAL(&tv_start);
cg_rlock(&cgusb_fd_lock);
- err = libusb_bulk_transfer(dev_handle, endpoint, data,
+ err = libusb_bulk_transfer(dev_handle, endpoint, buf,
length, transferred, timeout);
errn = errno;
cg_runlock(&cgusb_fd_lock);
@@ -2390,7 +2390,7 @@ int _usb_read(struct cgpu_info *cgpu, int intinfo, int epinfo, char *buf, size_t
usbdev = cgpu->usbdev;
ftdi = (usbdev->usb_type == USB_TYPE_FTDI);
- USBDEBUG("USB debug: _usb_read(%s (nodev=%s),intinfo=%d,epinfo=%d,buf=%p,bufsiz=%zu,proc=%p,timeout=%u,end=%s,cmd=%s,ftdi=%s,readonce=%s)", cgpu->drv->name, bool_str(cgpu->usbinfo.nodev), intinfo, epinfo, buf, bufsiz, processed, timeout, end ? (char *)str_text((char *)end) : "NULL", usb_cmdname(cmd), bool_str(ftdi), bool_str(readonce));
+ USBDEBUG("USB debug: _usb_read(%s (nodev=%s),intinfo=%d,epinfo=%d,buf=%p,bufsiz=%d,proc=%p,timeout=%u,end=%s,cmd=%s,ftdi=%s,readonce=%s)", cgpu->drv->name, bool_str(cgpu->usbinfo.nodev), intinfo, epinfo, buf, (int)bufsiz, processed, timeout, end ? (char *)str_text((char *)end) : "NULL", usb_cmdname(cmd), bool_str(ftdi), bool_str(readonce));
if (bufsiz > USB_MAX_READ)
quit(1, "%s USB read request %d too large (max=%d)", cgpu->drv->name, (int)bufsiz, USB_MAX_READ);
@@ -2449,7 +2449,7 @@ int _usb_read(struct cgpu_info *cgpu, int intinfo, int epinfo, char *buf, size_t
cgtime(&tv_finish);
ptr[got] = '\0';
- USBDEBUG("USB debug: @_usb_read(%s (nodev=%s)) first=%s err=%d%s got=%d ptr='%s' usbbufread=%zu", cgpu->drv->name, bool_str(cgpu->usbinfo.nodev), bool_str(first), err, isnodev(err), got, (char *)str_text((char *)ptr), usbbufread);
+ USBDEBUG("USB debug: @_usb_read(%s (nodev=%s)) first=%s err=%d%s got=%d ptr='%s' usbbufread=%d", cgpu->drv->name, bool_str(cgpu->usbinfo.nodev), bool_str(first), err, isnodev(err), got, (char *)str_text((char *)ptr), (int)usbbufread);
IOERR_CHECK(cgpu, err);
@@ -2552,7 +2552,7 @@ int _usb_read(struct cgpu_info *cgpu, int intinfo, int epinfo, char *buf, size_t
cgtime(&tv_finish);
ptr[got] = '\0';
- USBDEBUG("USB debug: @_usb_read(%s (nodev=%s)) first=%s err=%d%s got=%d ptr='%s' usbbufread=%zu", cgpu->drv->name, bool_str(cgpu->usbinfo.nodev), bool_str(first), err, isnodev(err), got, (char *)str_text((char *)ptr), usbbufread);
+ USBDEBUG("USB debug: @_usb_read(%s (nodev=%s)) first=%s err=%d%s got=%d ptr='%s' usbbufread=%d", cgpu->drv->name, bool_str(cgpu->usbinfo.nodev), bool_str(first), err, isnodev(err), got, (char *)str_text((char *)ptr), (int)usbbufread);
IOERR_CHECK(cgpu, err);
@@ -2644,7 +2644,7 @@ int _usb_write(struct cgpu_info *cgpu, int intinfo, int epinfo, char *buf, size_
DEVLOCK(cgpu, pstate);
- USBDEBUG("USB debug: _usb_write(%s (nodev=%s),intinfo=%d,epinfo=%d,buf='%s',bufsiz=%zu,proc=%p,timeout=%u,cmd=%s)", cgpu->drv->name, bool_str(cgpu->usbinfo.nodev), intinfo, epinfo, (char *)str_text(buf), bufsiz, processed, timeout, usb_cmdname(cmd));
+ USBDEBUG("USB debug: _usb_write(%s (nodev=%s),intinfo=%d,epinfo=%d,buf='%s',bufsiz=%d,proc=%p,timeout=%u,cmd=%s)", cgpu->drv->name, bool_str(cgpu->usbinfo.nodev), intinfo, epinfo, (char *)str_text(buf), (int)bufsiz, processed, timeout, usb_cmdname(cmd));
*processed = 0;