net: phy: marvell: initialise link partner state earlier
Move the initialisation of the link partner state earlier, inside marvell_read_status_page(), so we don't have the same initialisation scattered amongst the other files. This is in a similar place to the genphy implementation, so would result in the same behaviour if a PHY read error occurs. This allows us to get rid of marvell_read_status_page_fixed(), which became a pointless wrapper around genphy_read_status_fixed(). Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
fcf1f59afc
commit
98f92831c5
|
@ -1354,8 +1354,6 @@ static int marvell_read_status_page_an(struct phy_device *phydev,
|
|||
if (err < 0)
|
||||
return err;
|
||||
|
||||
phydev->pause = 0;
|
||||
phydev->asym_pause = 0;
|
||||
phy_resolve_aneg_pause(phydev);
|
||||
} else {
|
||||
lpa = phy_read(phydev, MII_LPA);
|
||||
|
@ -1365,8 +1363,6 @@ static int marvell_read_status_page_an(struct phy_device *phydev,
|
|||
/* The fiber link is only 1000M capable */
|
||||
fiber_lpa_mod_linkmode_lpa_t(phydev->lp_advertising, lpa);
|
||||
|
||||
phydev->pause = 0;
|
||||
phydev->asym_pause = 0;
|
||||
if (phydev->duplex == DUPLEX_FULL) {
|
||||
if (!(lpa & LPA_PAUSE_FIBER)) {
|
||||
phydev->pause = 0;
|
||||
|
@ -1403,21 +1399,6 @@ static int marvell_read_status_page_an(struct phy_device *phydev,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int marvell_read_status_page_fixed(struct phy_device *phydev)
|
||||
{
|
||||
int err;
|
||||
|
||||
err = genphy_read_status_fixed(phydev);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
phydev->pause = 0;
|
||||
phydev->asym_pause = 0;
|
||||
linkmode_zero(phydev->lp_advertising);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* marvell_read_status_page
|
||||
*
|
||||
* Description:
|
||||
|
@ -1443,10 +1424,14 @@ static int marvell_read_status_page(struct phy_device *phydev, int page)
|
|||
if (err)
|
||||
return err;
|
||||
|
||||
linkmode_zero(phydev->lp_advertising);
|
||||
phydev->pause = 0;
|
||||
phydev->asym_pause = 0;
|
||||
|
||||
if (phydev->autoneg == AUTONEG_ENABLE)
|
||||
err = marvell_read_status_page_an(phydev, fiber);
|
||||
else
|
||||
err = marvell_read_status_page_fixed(phydev);
|
||||
err = genphy_read_status_fixed(phydev);
|
||||
|
||||
return err;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue