summaryrefslogtreecommitdiff
path: root/target/linux/generic
diff options
context:
space:
mode:
authorGabor Juhos <juhosg@openwrt.org>2013-03-15 16:06:25 +0000
committerGabor Juhos <juhosg@openwrt.org>2013-03-15 16:06:25 +0000
commit5503686f69810dd42993cf339f98a6bfa4752581 (patch)
tree20ac17f9386959a5cafbb07e6a3a1e77572611cf /target/linux/generic
parent44ce8dac888ab9311d0fbdfdb563b90f33ae10df (diff)
downloadmtk-20170518-5503686f69810dd42993cf339f98a6bfa4752581.zip
mtk-20170518-5503686f69810dd42993cf339f98a6bfa4752581.tar.gz
mtk-20170518-5503686f69810dd42993cf339f98a6bfa4752581.tar.bz2
generic: ar8216: add ar8xxx_start helper
Move switch starting code into a separate function. This makes it usable from other places. Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 36049
Diffstat (limited to 'target/linux/generic')
-rw-r--r--target/linux/generic/files/drivers/net/phy/ar8216.c34
1 files changed, 23 insertions, 11 deletions
diff --git a/target/linux/generic/files/drivers/net/phy/ar8216.c b/target/linux/generic/files/drivers/net/phy/ar8216.c
index 9889698..f1b7436 100644
--- a/target/linux/generic/files/drivers/net/phy/ar8216.c
+++ b/target/linux/generic/files/drivers/net/phy/ar8216.c
@@ -1914,6 +1914,28 @@ ar8xxx_probe_switch(struct ar8xxx_priv *priv)
}
static int
+ar8xxx_start(struct ar8xxx_priv *priv)
+{
+ int ret;
+
+ priv->init = true;
+
+ ret = priv->chip->hw_init(priv);
+ if (ret)
+ return ret;
+
+ ret = ar8xxx_sw_reset_switch(&priv->dev);
+ if (ret)
+ return ret;
+
+ priv->init = false;
+
+ ar8xxx_mib_start(priv);
+
+ return 0;
+}
+
+static int
ar8xxx_phy_config_init(struct phy_device *phydev)
{
struct ar8xxx_priv *priv = phydev->priv;
@@ -1938,13 +1960,7 @@ ar8xxx_phy_config_init(struct phy_device *phydev)
return 0;
}
- priv->init = true;
-
- ret = priv->chip->hw_init(priv);
- if (ret)
- return ret;
-
- ret = ar8xxx_sw_reset_switch(&priv->dev);
+ ret = ar8xxx_start(priv);
if (ret)
return ret;
@@ -1956,10 +1972,6 @@ ar8xxx_phy_config_init(struct phy_device *phydev)
dev->eth_mangle_tx = ar8216_mangle_tx;
}
- priv->init = false;
-
- ar8xxx_mib_start(priv);
-
return 0;
}