diff options
author | Gabor Juhos <juhosg@openwrt.org> | 2012-03-08 10:21:08 +0000 |
---|---|---|
committer | Gabor Juhos <juhosg@openwrt.org> | 2012-03-08 10:21:08 +0000 |
commit | a6c69e63b66cb4a69a4cf7b16dc4632c037cf245 (patch) | |
tree | 630819b8dbdce07a85792f24bc7078f64a867f9c /target/linux | |
parent | 31584880bff8b9f6a7ed6be239cdb88b787c26d7 (diff) | |
download | master-31e0f0ae-a6c69e63b66cb4a69a4cf7b16dc4632c037cf245.tar.gz master-31e0f0ae-a6c69e63b66cb4a69a4cf7b16dc4632c037cf245.tar.bz2 master-31e0f0ae-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.c | 37 |
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; } |