diff options
Diffstat (limited to 'sysutils/nut-devel/files/patch-drivers_nutdrv__qx.c')
-rw-r--r-- | sysutils/nut-devel/files/patch-drivers_nutdrv__qx.c | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/sysutils/nut-devel/files/patch-drivers_nutdrv__qx.c b/sysutils/nut-devel/files/patch-drivers_nutdrv__qx.c new file mode 100644 index 000000000000..fc27279f3ec8 --- /dev/null +++ b/sysutils/nut-devel/files/patch-drivers_nutdrv__qx.c @@ -0,0 +1,79 @@ +--- drivers/nutdrv_qx.c.orig 2016-03-08 12:01:11 UTC ++++ drivers/nutdrv_qx.c +@@ -561,9 +561,9 @@ static int phoenix_command(const char *cmd, char *buf, + * In order to read correct replies we need to flush the output buffers of the converter until we get no more data (ie, it times out). */ + switch (ret) + { +- case -EPIPE: /* Broken pipe */ ++ case LIBUSB_ERROR_PIPE: /* Broken pipe */ + usb_clear_halt(udev, 0x81); +- case -ETIMEDOUT: /* Connection timed out */ ++ case LIBUSB_ERROR_TIMEOUT: /* Connection timed out */ + break; + } + +@@ -635,7 +635,7 @@ static int ippon_command(const char *cmd, char *buf, s + ret = usb_control_msg(udev, USB_ENDPOINT_OUT + USB_TYPE_CLASS + USB_RECIP_INTERFACE, 0x09, 0x2, 0, &tmp[i], 8, 1000); + + if (ret <= 0) { +- upsdebugx(3, "send: %s (%d)", (ret != -ETIMEDOUT) ? usb_strerror() : "Connection timed out", ret); ++ upsdebugx(3, "send: %s (%d)", (ret != LIBUSB_ERROR_TIMEOUT) ? usb_strerror() : "Connection timed out", ret); + return ret; + } + +@@ -648,7 +648,7 @@ static int ippon_command(const char *cmd, char *buf, s + + /* Any errors here mean that we are unable to read a reply (which will happen after successfully writing a command to the UPS) */ + if (ret <= 0) { +- upsdebugx(3, "read: %s (%d)", (ret != -ETIMEDOUT) ? usb_strerror() : "Connection timed out", ret); ++ upsdebugx(3, "read: %s (%d)", (ret != LIBUSB_ERROR_TIMEOUT) ? usb_strerror() : "Connection timed out", ret); + return ret; + } + +@@ -2124,38 +2124,28 @@ static int qx_command(const char *cmd, char *buf, size + + switch (ret) + { +- case -EBUSY: /* Device or resource busy */ ++ case LIBUSB_ERROR_BUSY: /* Device or resource busy */ + fatal_with_errno(EXIT_FAILURE, "Got disconnected by another driver"); + +- case -EPERM: /* Operation not permitted */ +- fatal_with_errno(EXIT_FAILURE, "Permissions problem"); +- +- case -EPIPE: /* Broken pipe */ ++ case LIBUSB_ERROR_PIPE: /* Broken pipe */ + if (usb_clear_halt(udev, 0x81) == 0) { + upsdebugx(1, "Stall condition cleared"); + break; + } +- #ifdef ETIME +- case -ETIME: /* Timer expired */ +- #endif /* ETIME */ + if (usb_reset(udev) == 0) { + upsdebugx(1, "Device reset handled"); + } +- case -ENODEV: /* No such device */ +- case -EACCES: /* Permission denied */ +- case -EIO: /* I/O error */ +- case -ENXIO: /* No such device or address */ +- case -ENOENT: /* No such file or directory */ ++ case LIBUSB_ERROR_NO_DEVICE: /* No such device */ ++ case LIBUSB_ERROR_ACCESS: /* Permission denied */ ++ case LIBUSB_ERROR_IO: /* I/O error */ ++ case LIBUSB_ERROR_NOT_FOUND: /* No such file or directory */ + /* Uh oh, got to reconnect! */ + usb->close(udev); + udev = NULL; + break; + +- case -ETIMEDOUT: /* Connection timed out */ +- case -EOVERFLOW: /* Value too large for defined data type */ +-#ifdef EPROTO +- case -EPROTO: /* Protocol error */ +-#endif ++ case LIBUSB_ERROR_TIMEOUT: /* Connection timed out */ ++ case LIBUSB_ERROR_OVERFLOW: /* Value too large for defined data type */ + default: + break; + } |