aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux
diff options
context:
space:
mode:
authorGabor Juhos <juhosg@openwrt.org>2012-03-08 10:21:08 +0000
committerGabor Juhos <juhosg@openwrt.org>2012-03-08 10:21:08 +0000
commita6c69e63b66cb4a69a4cf7b16dc4632c037cf245 (patch)
tree630819b8dbdce07a85792f24bc7078f64a867f9c /target/linux
parent31584880bff8b9f6a7ed6be239cdb88b787c26d7 (diff)
downloadupstream-a6c69e63b66cb4a69a4cf7b16dc4632c037cf245.tar.gz
upstream-a6c69e63b66cb4a69a4cf7b16dc4632c037cf245.tar.bz2
upstream-a6c69e63b66cb4a69a4cf7b16dc4632c037cf245.zip
generic: ar8216: simplify ar8216_config_init
SVN-Revision: 30853
Diffstat (limited to 'target/linux')
-rw-r--r--target/linux/generic/files/drivers/net/phy/ar8216.c37
1 files changed, 15 insertions, 22 deletions
diff --git a/target/linux/generic/files/drivers/net/phy/ar8216.c b/target/linux/generic/files/drivers/net/phy/ar8216.c
index 3b7937d72b..8e84e9d70a 100644
--- a/target/linux/generic/files/drivers/net/phy/ar8216.c
+++ b/target/linux/generic/files/drivers/net/phy/ar8216.c
@@ -892,34 +892,24 @@ ar8216_config_init(struct phy_device *pdev)
swdev->vlans = AR8216_NUM_VLANS;
}
- if ((ret = register_switch(&priv->dev, pdev->attached_dev)) < 0) {
- kfree(priv);
- goto done;
- }
+ ret = register_switch(&priv->dev, pdev->attached_dev);
+ if (ret)
+ goto err_free_priv;
priv->init = true;
- if (priv->chip == AR8316) {
+ ret = 0;
+ if (priv->chip == AR8236)
+ ret = ar8236_hw_init(priv);
+ else if (priv->chip == AR8316)
ret = ar8316_hw_init(priv);
- if (ret) {
- kfree(priv);
- goto done;
- }
- }
- if (priv->chip == AR8236) {
- ret = ar8236_hw_init(priv);
- if (ret) {
- kfree(priv);
- goto done;
- }
- }
+ if (ret)
+ goto err_free_priv;
ret = ar8216_reset_switch(&priv->dev);
- if (ret) {
- kfree(priv);
- goto done;
- }
+ if (ret)
+ goto err_free_priv;
dev->phy_ptr = priv;
@@ -936,7 +926,10 @@ ar8216_config_init(struct phy_device *pdev)
priv->init = false;
-done:
+ return 0;
+
+err_free_priv:
+ kfree(priv);
return ret;
}