ret |= BMCR_ANENABLE | BMCR_ANRESTART;
return phy_write(phydev, MII_BMCR, ret);
}
-@@ -2012,7 +2012,7 @@ ar8xxx_phy_config_init(struct phy_device
+@@ -2021,7 +2021,7 @@ ar8xxx_phy_config_init(struct phy_device
priv->phy = phydev;
if (chip_is_ar8316(priv)) {
/* switch device has been initialized, reinit */
priv->dev.ports = (AR8216_NUM_PORTS - 1);
-@@ -2060,7 +2060,7 @@ ar8xxx_check_link_states(struct ar8xxx_p
+@@ -2069,7 +2069,7 @@ ar8xxx_check_link_states(struct ar8xxx_p
/* flush ARL entries for this port if it went down*/
if (!link_new)
priv->chip->atu_flush_port(priv, i);
i, link_new ? "up" : "down");
}
-@@ -2079,10 +2079,10 @@ ar8xxx_phy_read_status(struct phy_device
+@@ -2088,10 +2088,10 @@ ar8xxx_phy_read_status(struct phy_device
if (phydev->state == PHY_CHANGELINK)
ar8xxx_check_link_states(priv);
phydev->link = !!link.link;
if (!phydev->link)
return 0;
-@@ -2112,7 +2112,7 @@ ar8xxx_phy_read_status(struct phy_device
+@@ -2122,7 +2122,7 @@ ar8xxx_phy_read_status(struct phy_device
static int
ar8xxx_phy_config_aneg(struct phy_device *phydev)
{
return 0;
return genphy_config_aneg(phydev);
-@@ -2167,15 +2167,15 @@ ar8xxx_phy_probe(struct phy_device *phyd
+@@ -2177,15 +2177,15 @@ ar8xxx_phy_probe(struct phy_device *phyd
int ret;
/* skip PHYs at unused adresses */
-- if (phydev->mdio.addr != 0 && phydev->mdio.addr != 4)
-+ if (phydev->addr != 0 && phydev->addr != 4)
+- if (phydev->mdio.addr != 0 && phydev->mdio.addr != 3 && phydev->mdio.addr != 4)
++ if (phydev->addr != 0 && phydev->addr != 3 && phydev->addr != 4)
return -ENODEV;
- if (!ar8xxx_is_possible(phydev->mdio.bus))
goto found;
priv = ar8xxx_create();
-@@ -2184,7 +2184,7 @@ ar8xxx_phy_probe(struct phy_device *phyd
+@@ -2194,7 +2194,7 @@ ar8xxx_phy_probe(struct phy_device *phyd
goto unlock;
}
ret = ar8xxx_probe_switch(priv);
if (ret)
-@@ -2205,7 +2205,7 @@ ar8xxx_phy_probe(struct phy_device *phyd
+@@ -2215,7 +2215,7 @@ ar8xxx_phy_probe(struct phy_device *phyd
found:
priv->use_count++;
if (ar8xxx_has_gige(priv)) {
phydev->supported = SUPPORTED_1000baseT_Full;
phydev->advertising = ADVERTISED_1000baseT_Full;
-@@ -2293,21 +2293,33 @@ ar8xxx_phy_soft_reset(struct phy_device
+@@ -2305,21 +2305,33 @@ ar8xxx_phy_soft_reset(struct phy_device
return 0;
}
MODULE_LICENSE("GPL");
--- a/drivers/net/phy/ar8327.c
+++ b/drivers/net/phy/ar8327.c
-@@ -619,11 +619,11 @@ ar8327_hw_init(struct ar8xxx_priv *priv)
+@@ -662,11 +662,11 @@ ar8327_hw_init(struct ar8xxx_priv *priv)
if (!priv->chip_data)
return -ENOMEM;