[PATCH 3/4] usb: dwc2: Fix mode check in dwc2_get_dr_mode
Jules Maselbas
jmaselbas at kalray.eu
Wed Dec 9 09:55:46 EST 2020
In Linux, configs CONFIG_USB_DWC2_HOST and CONFIG_USB_DWC2_GADGET
are respectively for host only and gadget only support, they are
mutually exclusive. However this is not the case in barebox, they
are independent options.
Signed-off-by: Jules Maselbas <jmaselbas at kalray.eu>
---
drivers/usb/dwc2/core.c | 14 ++++++--------
drivers/usb/dwc2/dwc2.c | 2 ++
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/drivers/usb/dwc2/core.c b/drivers/usb/dwc2/core.c
index a61acf553..808d80585 100644
--- a/drivers/usb/dwc2/core.c
+++ b/drivers/usb/dwc2/core.c
@@ -654,18 +654,16 @@ int dwc2_get_dr_mode(struct dwc2 *dwc2)
if (dwc2_hw_is_device(dwc2)) {
dwc2_dbg(dwc2, "Controller is device only\n");
- if (IS_ENABLED(CONFIG_USB_DWC2_HOST)) {
- dwc2_err(dwc2,
- "Controller does not support host mode.\n");
- return -EINVAL;
+ if (!IS_ENABLED(CONFIG_USB_DWC2_GADGET)) {
+ dwc2_err(dwc2, "gadget mode support not compiled in!\n");
+ return -ENOTSUPP;
}
mode = USB_DR_MODE_PERIPHERAL;
} else if (dwc2_hw_is_host(dwc2)) {
dwc2_dbg(dwc2, "Controller is host only\n");
- if (IS_ENABLED(CONFIG_USB_DWC2_GADGET)) {
- dwc2_err(dwc2,
- "Controller does not support device mode.\n");
- return -EINVAL;
+ if (!IS_ENABLED(CONFIG_USB_DWC2_HOST)) {
+ dwc2_err(dwc2, "host mode support not compiled in!\n");
+ return -ENOTSUPP;
}
mode = USB_DR_MODE_HOST;
} else {
diff --git a/drivers/usb/dwc2/dwc2.c b/drivers/usb/dwc2/dwc2.c
index ae144698c..120890105 100644
--- a/drivers/usb/dwc2/dwc2.c
+++ b/drivers/usb/dwc2/dwc2.c
@@ -77,6 +77,8 @@ static int dwc2_probe(struct device_d *dev)
dwc2_get_hwparams(dwc2);
ret = dwc2_get_dr_mode(dwc2);
+ if (ret)
+ goto error;
dwc2_set_default_params(dwc2);
--
2.17.1
More information about the barebox
mailing list