diff mbox series

[v2,1/5] usb: ohci-generic: ignore ENOSYS and ENOTSUPP errors from clk and reset

Message ID 20240219115925.12675-1-piotr.wojtaszczyk@timesys.com
State Superseded
Delegated to: Marek Vasut
Headers show
Series [v2,1/5] usb: ohci-generic: ignore ENOSYS and ENOTSUPP errors from clk and reset | expand

Commit Message

Piotr Wojtaszczyk Feb. 19, 2024, 11:59 a.m. UTC
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@timesys.com>
---
Changes for v2:
- Changed logic style from !(== || ==) to (!= && !=)

 drivers/usb/host/ohci-generic.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

Comments

Marek Vasut Feb. 19, 2024, 2:05 p.m. UTC | #1
On 2/19/24 12:59, Piotr Wojtaszczyk wrote:
> 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@timesys.com>
> ---
> Changes for v2:
> - Changed logic style from !(== || ==) to (!= && !=)
> 
>   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..8740094afc 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))

The extra parenthesis are not needed I think, the rest of the patch 
seems OK, thanks !
diff mbox series

Patch

diff --git a/drivers/usb/host/ohci-generic.c b/drivers/usb/host/ohci-generic.c
index ceed1911a9..8740094afc 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[] = {