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@xxxxxxxxx> --- 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 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox