From 45fda135de06a8746c1e72f46fcb8f04acc7190f Mon Sep 17 00:00:00 2001 From: Kano Date: Fri, 21 Jun 2013 18:57:32 +1000 Subject: [PATCH] undo icarus show errno, put it as debug in ubsutils --- driver-icarus.c | 8 ++++---- usbutils.c | 27 ++++++++++++++++++++------- 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/driver-icarus.c b/driver-icarus.c index 562b95d3..1a453213 100644 --- a/driver-icarus.c +++ b/driver-icarus.c @@ -433,8 +433,8 @@ static int icarus_get_nonce(struct cgpu_info *icarus, unsigned char *buf, struct err = usb_read_timeout(icarus, (char *)buf, read_amount, &amt, ICARUS_WAIT_TIMEOUT, C_GETRESULTS); cgtime(&read_finish); if (err < 0 && err != LIBUSB_ERROR_TIMEOUT) { - applog(LOG_ERR, "%s%i: Comms error (rerr=%d amt=%d, eno=%d)", - icarus->drv->name, icarus->device_id, err, amt, errno); + applog(LOG_ERR, "%s%i: Comms error (rerr=%d amt=%d)", + icarus->drv->name, icarus->device_id, err, amt); dev_error(icarus, REASON_DEV_COMMS_ERROR); return ICA_NONCE_ERROR; } @@ -894,8 +894,8 @@ static int64_t icarus_scanhash(struct thr_info *thr, struct work *work, err = usb_write(icarus, (char *)ob_bin, sizeof(ob_bin), &amount, C_SENDWORK); if (err < 0 || amount != sizeof(ob_bin)) { - applog(LOG_ERR, "%s%i: Comms error (werr=%d amt=%d eno=%d)", - icarus->drv->name, icarus->device_id, err, amount, errno); + applog(LOG_ERR, "%s%i: Comms error (werr=%d amt=%d)", + icarus->drv->name, icarus->device_id, err, amount); dev_error(icarus, REASON_DEV_COMMS_ERROR); icarus_initialise(icarus, info->baud); return 0; diff --git a/usbutils.c b/usbutils.c index d7f93e4c..5092aedd 100644 --- a/usbutils.c +++ b/usbutils.c @@ -2180,10 +2180,10 @@ static int usb_bulk_transfer(struct libusb_device_handle *dev_handle, unsigned char endpoint, unsigned char *data, int length, int *transferred, unsigned int timeout, - struct cgpu_info *cgpu) + struct cgpu_info *cgpu, enum usb_cmds cmd) { uint16_t MaxPacketSize; - int err, tries = 0; + int err, errn, tries = 0; /* Limit length of transfer to the largest this descriptor supports * and leave the higher level functions to transfer more if needed. */ @@ -2197,8 +2197,14 @@ usb_bulk_transfer(struct libusb_device_handle *dev_handle, cg_rlock(&cgusb_fd_lock); err = libusb_bulk_transfer(dev_handle, endpoint, data, length, transferred, timeout); + errn = errno; cg_runlock(&cgusb_fd_lock); + if (err < 0) + applog(LOG_DEBUG, "%s%i: %s (amt=%d err=%d ern=%d)", + cgpu->drv->name, cgpu->device_id, + usb_cmdname(cmd), *transferred, err, errn); + if (err == LIBUSB_ERROR_PIPE) { cgpu->usbinfo.last_pipe = time(NULL); cgpu->usbinfo.pipe_count++; @@ -2215,8 +2221,14 @@ usb_bulk_transfer(struct libusb_device_handle *dev_handle, cg_rlock(&cgusb_fd_lock); err = libusb_bulk_transfer(dev_handle, endpoint, data, length, transferred, timeout); + errn = errno; cg_runlock(&cgusb_fd_lock); + if (err < 0) + applog(LOG_DEBUG, "%s%i: %s (amt=%d err=%d ern=%d)", + cgpu->drv->name, cgpu->device_id, + usb_cmdname(cmd), *transferred, err, errn); + if (err) cgpu->usbinfo.retry_err_count++; } while (err == LIBUSB_ERROR_PIPE && tries++ < USB_RETRY_MAX); @@ -2230,7 +2242,7 @@ usb_bulk_transfer(struct libusb_device_handle *dev_handle, return err; } -int _usb_read(struct cgpu_info *cgpu, int ep, char *buf, size_t bufsiz, int *processed, unsigned int timeout, const char *end, __maybe_unused enum usb_cmds cmd, bool readonce) +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) { struct cg_usb_device *usbdev; bool ftdi; @@ -2304,7 +2316,7 @@ int _usb_read(struct cgpu_info *cgpu, int ep, char *buf, size_t bufsiz, int *pro err = usb_bulk_transfer(usbdev->handle, usbdev->found->eps[ep].ep, ptr, usbbufread, &got, timeout, - cgpu); + cgpu, cmd); cgtime(&tv_finish); USB_STATS(cgpu, &tv_start, &tv_finish, err, MODE_BULK_READ, cmd, first ? SEQ0 : SEQ1); @@ -2394,7 +2406,8 @@ int _usb_read(struct cgpu_info *cgpu, int ep, char *buf, size_t bufsiz, int *pro STATS_TIMEVAL(&tv_start); err = usb_bulk_transfer(usbdev->handle, usbdev->found->eps[ep].ep, ptr, - usbbufread, &got, timeout, cgpu); + usbbufread, &got, timeout, + cgpu, cmd); cgtime(&tv_finish); USB_STATS(cgpu, &tv_start, &tv_finish, err, MODE_BULK_READ, cmd, first ? SEQ0 : SEQ1); @@ -2481,7 +2494,7 @@ out_unlock: return err; } -int _usb_write(struct cgpu_info *cgpu, int ep, char *buf, size_t bufsiz, int *processed, unsigned int timeout, __maybe_unused enum usb_cmds cmd) +int _usb_write(struct cgpu_info *cgpu, int ep, char *buf, size_t bufsiz, int *processed, unsigned int timeout, enum usb_cmds cmd) { struct cg_usb_device *usbdev; #if DO_USB_STATS @@ -2522,7 +2535,7 @@ int _usb_write(struct cgpu_info *cgpu, int ep, char *buf, size_t bufsiz, int *pr err = usb_bulk_transfer(usbdev->handle, usbdev->found->eps[ep].ep, (unsigned char *)buf, bufsiz, &sent, - timeout, cgpu); + timeout, cgpu, cmd); cgtime(&tv_finish); USB_STATS(cgpu, &tv_start, &tv_finish, err, MODE_BULK_WRITE, cmd, first ? SEQ0 : SEQ1);