[PATCH 1/5] usb: ohci-generic: ignore ENOSYS and ENOTSUPP errors from clk and reset
Piotr Wojtaszczyk
piotr.wojtaszczyk at timesys.com
Fri Jan 26 10:25:28 CET 2024
If a machine doesn't have CONFIG_CLK set the call to clk_get_bulk()
returns '-ENOSYS' error which should be handled the same way as
'-ENOENT' error. The same applies to reset_get_bulk() and 'ENOTSUPP'.
Signed-off-by: Piotr Wojtaszczyk <piotr.wojtaszczyk at timesys.com>
---
drivers/usb/host/ohci-generic.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/usb/host/ohci-generic.c b/drivers/usb/host/ohci-generic.c
index ceed1911a9..28512c081f 100644
--- a/drivers/usb/host/ohci-generic.c
+++ b/drivers/usb/host/ohci-generic.c
@@ -28,7 +28,7 @@ static int ohci_usb_probe(struct udevice *dev)
int err, ret;
ret = clk_get_bulk(dev, &priv->clocks);
- if (ret && ret != -ENOENT) {
+ if (ret && !((ret == -ENOENT) || (ret == -ENOSYS))) {
dev_err(dev, "Failed to get clocks (ret=%d)\n", ret);
return ret;
}
@@ -40,7 +40,7 @@ static int ohci_usb_probe(struct udevice *dev)
}
err = reset_get_bulk(dev, &priv->resets);
- if (err && err != -ENOENT) {
+ if (err && !((err == -ENOENT) || (err == -ENOTSUPP))) {
dev_err(dev, "failed to get resets (err=%d)\n", err);
goto clk_err;
}
@@ -72,7 +72,7 @@ reset_err:
dev_err(dev, "failed to release resets (ret=%d)\n", ret);
clk_err:
ret = clk_release_bulk(&priv->clocks);
- if (ret)
+ if (ret && (ret != -ENOSYS))
dev_err(dev, "failed to release clocks (ret=%d)\n", ret);
return err;
@@ -95,7 +95,11 @@ static int ohci_usb_remove(struct udevice *dev)
if (ret)
return ret;
- return clk_release_bulk(&priv->clocks);
+ ret = clk_release_bulk(&priv->clocks);
+ if (ret && (ret != -ENOSYS))
+ return ret;
+
+ return 0;
}
static const struct udevice_id ohci_usb_ids[] = {
--
2.25.1
More information about the U-Boot
mailing list