From: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
Date: Tue, 6 Feb 2018 14:12:09 +0000 (+0300)
Subject: NET: designware: fix clock enable
X-Git-Tag: v2025.01-rc5-pxa1908~4802^2~2
X-Git-Url: http://git.dujemihanovic.xyz/img/%22http:/www.sics.se/static/git-favicon.png?a=commitdiff_plain;h=1693a577be14a92e61563bad306aa11a359757f5;p=u-boot.git

NET: designware: fix clock enable

After commit ba1f966725223 ("net: designware: add clock support")
we got NET broken on axs101 and axs103 platforms.

Some clock don't support gating so their clock drivers don't
implement .enable/.disable callbacks. In such case clk_enable
returns -ENOSYS.
Also some clock drivers implement .enable/.disable callbacks not for all
clock IDs and return -ENOSYS (or -ENOTSUPP) for others.

If we have such clock in 'clocks' list of designware ethernet controller
node we fail to probe designware ethernet.

Fix it.

Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
Reviewed-by: Patrice Chotard <patrice.chotard@st.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
---

diff --git a/drivers/net/designware.c b/drivers/net/designware.c
index 6d5307128d..43670a7d0c 100644
--- a/drivers/net/designware.c
+++ b/drivers/net/designware.c
@@ -684,7 +684,7 @@ int designware_eth_probe(struct udevice *dev)
 				break;
 
 			err = clk_enable(&priv->clocks[i]);
-			if (err) {
+			if (err && err != -ENOSYS && err != -ENOTSUPP) {
 				pr_err("failed to enable clock %d\n", i);
 				clk_free(&priv->clocks[i]);
 				goto clk_err;