summaryrefslogtreecommitdiffstats
path: root/configs/platform-v7a/patches/barebox-2020.01.0/0009-usb-Forward-error-code-from-usb_set_configuration.patch
diff options
context:
space:
mode:
Diffstat (limited to 'configs/platform-v7a/patches/barebox-2020.01.0/0009-usb-Forward-error-code-from-usb_set_configuration.patch')
-rw-r--r--configs/platform-v7a/patches/barebox-2020.01.0/0009-usb-Forward-error-code-from-usb_set_configuration.patch40
1 files changed, 40 insertions, 0 deletions
diff --git a/configs/platform-v7a/patches/barebox-2020.01.0/0009-usb-Forward-error-code-from-usb_set_configuration.patch b/configs/platform-v7a/patches/barebox-2020.01.0/0009-usb-Forward-error-code-from-usb_set_configuration.patch
new file mode 100644
index 0000000..ceef0eb
--- /dev/null
+++ b/configs/platform-v7a/patches/barebox-2020.01.0/0009-usb-Forward-error-code-from-usb_set_configuration.patch
@@ -0,0 +1,40 @@
+From: Sascha Hauer <s.hauer@pengutronix.de>
+Date: Thu, 19 Dec 2019 19:30:15 +0100
+Subject: [PATCH] usb: Forward error code from usb_set_configuration
+
+Instead of returning -1 forward the error code and take the opportunity
+to print the error string.
+
+Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
+---
+ drivers/usb/core/usb.c | 10 ++++++----
+ 1 file changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c
+index ad3bacf23655..1c3dcb79a847 100644
+--- a/drivers/usb/core/usb.c
++++ b/drivers/usb/core/usb.c
+@@ -124,7 +124,7 @@ static int usb_set_configuration(struct usb_device *dev, int configuration)
+ dev->toggle[1] = 0;
+ return 0;
+ } else
+- return -1;
++ return res;
+ }
+
+ /* The routine usb_set_maxpacket_ep() is extracted from the loop of routine
+@@ -412,9 +412,11 @@ int usb_new_device(struct usb_device *dev)
+ usb_parse_config(dev, buf, 0);
+ usb_set_maxpacket(dev);
+ /* we set the default configuration here */
+- if (usb_set_configuration(dev, dev->config.desc.bConfigurationValue)) {
+- printf("failed to set default configuration " \
+- "len %d, status %lX\n", dev->act_len, dev->status);
++ err = usb_set_configuration(dev, dev->config.desc.bConfigurationValue);
++ if (err) {
++ printf("Setting default configuration failed with: %s\n" \
++ "len %d, status %lX\n", strerror(-err),
++ dev->act_len, dev->status);
+ goto err_out;
+ }
+ pr_debug("new device: Mfr=%d, Product=%d, SerialNumber=%d\n",