drivers/usb/dwc3/dwc3-omap.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
Commit 533561a8aad5 ("usb: dwc3: omap: Use
devm_regulator_get_optional()") assumed NULL was returned, but
devm_regulator_get_optional() returns -ENODEV rather than NULL like
other *_get_optional() functions.
Fixes: 533561a8aad5 ("usb: dwc3: omap: Use devm_regulator_get_optional()")
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
---
drivers/usb/dwc3/dwc3-omap.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/usb/dwc3/dwc3-omap.c b/drivers/usb/dwc3/dwc3-omap.c
index 9b1d10ac33c1..fe74d11bb629 100644
--- a/drivers/usb/dwc3/dwc3-omap.c
+++ b/drivers/usb/dwc3/dwc3-omap.c
@@ -484,8 +484,11 @@ static int dwc3_omap_probe(struct platform_device *pdev)
return PTR_ERR(base);
vbus_reg = devm_regulator_get_optional(dev, "vbus");
- if (IS_ERR(vbus_reg))
- return dev_err_probe(dev, PTR_ERR(vbus_reg), "vbus init failed\n");
+ if (IS_ERR(vbus_reg)) {
+ if (PTR_ERR(vbus_reg) != -ENODEV)
+ return dev_err_probe(dev, PTR_ERR(vbus_reg), "vbus init failed\n");
+ vbus_reg = NULL;
+ }
omap->dev = dev;
omap->irq = irq;
--
2.45.2
On Thu, Jan 09, 2025, Rob Herring (Arm) wrote:
> Commit 533561a8aad5 ("usb: dwc3: omap: Use
> devm_regulator_get_optional()") assumed NULL was returned, but
> devm_regulator_get_optional() returns -ENODEV rather than NULL like
> other *_get_optional() functions.
>
> Fixes: 533561a8aad5 ("usb: dwc3: omap: Use devm_regulator_get_optional()")
> Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
> ---
> drivers/usb/dwc3/dwc3-omap.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/usb/dwc3/dwc3-omap.c b/drivers/usb/dwc3/dwc3-omap.c
> index 9b1d10ac33c1..fe74d11bb629 100644
> --- a/drivers/usb/dwc3/dwc3-omap.c
> +++ b/drivers/usb/dwc3/dwc3-omap.c
> @@ -484,8 +484,11 @@ static int dwc3_omap_probe(struct platform_device *pdev)
> return PTR_ERR(base);
>
> vbus_reg = devm_regulator_get_optional(dev, "vbus");
> - if (IS_ERR(vbus_reg))
> - return dev_err_probe(dev, PTR_ERR(vbus_reg), "vbus init failed\n");
> + if (IS_ERR(vbus_reg)) {
> + if (PTR_ERR(vbus_reg) != -ENODEV)
> + return dev_err_probe(dev, PTR_ERR(vbus_reg), "vbus init failed\n");
> + vbus_reg = NULL;
> + }
>
> omap->dev = dev;
> omap->irq = irq;
> --
> 2.45.2
>
Acked-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Thanks,
Thinh
© 2016 - 2026 Red Hat, Inc.