From 8b191f5ced93dc4d376ce4c6e83fb3ca139c6e77 Mon Sep 17 00:00:00 2001 From: Edward O'Callaghan Date: Thu, 5 Mar 2020 15:06:57 +1100 Subject: raiden_debug_spi.c: Disable retry during some error codes Forward ports the downstream commit: https://chromium-review.googlesource.com/c/chromiumos/third_party/flashrom/+/2073077 Change-Id: I77def28040fea8d1ecf102463180378f8612b00e Signed-off-by: Edward O'Callaghan Reviewed-on: https://review.coreboot.org/c/flashrom/+/39311 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer --- usb_device.h | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'usb_device.h') diff --git a/usb_device.h b/usb_device.h index d3796757..b2c7656e 100644 --- a/usb_device.h +++ b/usb_device.h @@ -27,10 +27,18 @@ #include #include +#include + +/* + * The LIBUSB_ERROR macro converts a libusb failure code into an error code that + * flashrom recognizes. It does so without displaying an error code allowing us + * to compare error codes against the library enumeration values. + */ +#define LIBUSB_ERROR(eror_code) (0x20000 | -eror_code) /* * The LIBUSB macro converts a libusb failure code into an error code that - * flashrom recognizes. It also displays additional libusb specific + * flashrom recognizes. It also displays additional libusb specific * information about the failure. */ #define LIBUSB(expression) \ @@ -42,7 +50,7 @@ __FILE__, \ __LINE__, \ libusb_error_name(libusb_error__)); \ - libusb_error__ = 0x20000 | -libusb_error__; \ + libusb_error__ = LIBUSB_ERROR(libusb_error__); \ } else { \ libusb_error__ = 0; \ } \ @@ -50,6 +58,15 @@ libusb_error__; \ }) +/* + * Returns true if the error code falls within the range of valid libusb + * error codes. + */ +static inline bool usb_device_is_libusb_error(int error_code) +{ + return (0x20000 <= error_code && error_code < 0x20064); +} + /* * A USB match and associated value struct are used to encode the information * about a device against which we wish to match. If the value of a -- cgit v1.2.3