diff options
author | Gabor Juhos <juhosg@openwrt.org> | 2013-02-11 10:05:35 +0000 |
---|---|---|
committer | Gabor Juhos <juhosg@openwrt.org> | 2013-02-11 10:05:35 +0000 |
commit | eea297884e950bc066614dc7d0ab6981625b28a6 (patch) | |
tree | a11f23858cab55cfbfd445f149ee34f6c776e975 | |
parent | 617076c6130d5eb1be1741f7f1265e89fe3187ab (diff) | |
download | mtk-20170518-eea297884e950bc066614dc7d0ab6981625b28a6.zip mtk-20170518-eea297884e950bc066614dc7d0ab6981625b28a6.tar.gz mtk-20170518-eea297884e950bc066614dc7d0ab6981625b28a6.tar.bz2 |
generic: ar8216: fix PHY features setup
Sujith says:
This commit breaks the WAN port on my AP96 - DHCP fails.
Reverting it fixes the issue.
commit b67cc3a0cdd02973610d4d5a63226d1c44841e94
Author: juhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Date: Fri Feb 8 09:13:18 2013 +0000
generic: ar8216: simplify phy features setup
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@355183c298f89-4303-0410-b956-a3cf2f4a3e73
This change restores the previous behaviour and moves
the code into the ar8216_probe function.
Reported-by: Sujith Manoharan <sujith@msujith.org>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Tested-by: Sujith Manoharan <sujith@msujith.org>
SVN-Revision: 35549
-rw-r--r-- | target/linux/generic/files/drivers/net/phy/ar8216.c | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/target/linux/generic/files/drivers/net/phy/ar8216.c b/target/linux/generic/files/drivers/net/phy/ar8216.c index c0b51e7..c463108 100644 --- a/target/linux/generic/files/drivers/net/phy/ar8216.c +++ b/target/linux/generic/files/drivers/net/phy/ar8216.c @@ -1861,12 +1861,6 @@ ar8216_config_init(struct phy_device *pdev) priv->phy = pdev; - if (ar8xxx_has_gige(priv)) - pdev->supported = SUPPORTED_1000baseT_Full; - else - pdev->supported = SUPPORTED_100baseT_Full; - pdev->advertising = pdev->supported; - if (pdev->addr != 0) { if (chip_is_ar8316(priv)) { /* check if we're attaching to the switch twice */ @@ -2050,8 +2044,28 @@ ar8216_probe(struct phy_device *pdev) priv->phy = pdev; ret = ar8xxx_probe_switch(priv); - ar8xxx_free(priv); + if (ret) + goto out; + if (pdev->addr == 0) { + if (ar8xxx_has_gige(priv)) { + pdev->supported = SUPPORTED_1000baseT_Full; + pdev->advertising = ADVERTISED_1000baseT_Full; + } else { + pdev->supported = SUPPORTED_100baseT_Full; + pdev->advertising = ADVERTISED_100baseT_Full; + } + } else { + if (ar8xxx_has_gige(priv)) { + pdev->supported |= SUPPORTED_1000baseT_Full; + pdev->advertising |= ADVERTISED_1000baseT_Full; + } + } + + ret = 0; + +out: + ar8xxx_free(priv); return ret; } |