Recent addition of vbus-supply support has broke platform which dont use controllable regulators for USB.
Issue is that even withou DM_REGULATOR being enabled regulator related functions will still build as there is a stub in regulator.h but they will simply return -ENOSYS which will then make dwc3_generic_host_probe() return the same error thus breaking probe. So, check whether return code is -ENOSYS before erroring out. Fixes: de451d5d5b6f ("usb: dwc3-generic: support external vbus regulator") Signed-off-by: Robert Marko <robert.ma...@sartura.hr> --- Changes in v2: * Drop #ifdefs and check for -ENOSYS that regulator stub returns drivers/usb/dwc3/dwc3-generic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/usb/dwc3/dwc3-generic.c b/drivers/usb/dwc3/dwc3-generic.c index 7a00529a2a..df0b0b8c02 100644 --- a/drivers/usb/dwc3/dwc3-generic.c +++ b/drivers/usb/dwc3/dwc3-generic.c @@ -248,7 +248,7 @@ static int dwc3_generic_host_probe(struct udevice *dev) /* Only returns an error if regulator is valid and failed to enable due to a driver issue */ rc = regulator_set_enable_if_allowed(priv->vbus_supply, true); - if (rc) + if (rc && rc != -ENOSYS) return rc; hccr = (struct xhci_hccr *)priv->gen_priv.base; -- 2.44.0