mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-25 23:30:53 +07:00
net: phy: add genphy_aneg_done()
In preparation for allowing PHY drivers to potentially override their auto-negotiation done callback, move the contents of phy_aneg_done() to genphy_aneg_done() since that function really is the generic implementation based on the BMSR_ANEGCOMPLETE status. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
766d1d388e
commit
a9fa6e6ac2
@ -120,9 +120,7 @@ static int phy_config_interrupt(struct phy_device *phydev, u32 interrupts)
|
||||
*/
|
||||
static inline int phy_aneg_done(struct phy_device *phydev)
|
||||
{
|
||||
int retval = phy_read(phydev, MII_BMSR);
|
||||
|
||||
return (retval < 0) ? retval : (retval & BMSR_ANEGCOMPLETE);
|
||||
return genphy_aneg_done(phydev);
|
||||
}
|
||||
|
||||
/* A structure for mapping a particular speed and duplex
|
||||
|
@ -865,6 +865,22 @@ int genphy_config_aneg(struct phy_device *phydev)
|
||||
}
|
||||
EXPORT_SYMBOL(genphy_config_aneg);
|
||||
|
||||
/**
|
||||
* genphy_aneg_done - return auto-negotiation status
|
||||
* @phydev: target phy_device struct
|
||||
*
|
||||
* Description: Reads the status register and returns 0 either if
|
||||
* auto-negotiation is incomplete, or if there was an error.
|
||||
* Returns BMSR_ANEGCOMPLETE if auto-negotiation is done.
|
||||
*/
|
||||
int genphy_aneg_done(struct phy_device *phydev)
|
||||
{
|
||||
int retval = phy_read(phydev, MII_BMSR);
|
||||
|
||||
return (retval < 0) ? retval : (retval & BMSR_ANEGCOMPLETE);
|
||||
}
|
||||
EXPORT_SYMBOL(genphy_aneg_done);
|
||||
|
||||
static int gen10g_config_aneg(struct phy_device *phydev)
|
||||
{
|
||||
return 0;
|
||||
|
@ -612,6 +612,7 @@ static inline int phy_read_status(struct phy_device *phydev)
|
||||
int genphy_setup_forced(struct phy_device *phydev);
|
||||
int genphy_restart_aneg(struct phy_device *phydev);
|
||||
int genphy_config_aneg(struct phy_device *phydev);
|
||||
int genphy_aneg_done(struct phy_device *phydev);
|
||||
int genphy_update_link(struct phy_device *phydev);
|
||||
int genphy_read_status(struct phy_device *phydev);
|
||||
int genphy_suspend(struct phy_device *phydev);
|
||||
|
Loading…
Reference in New Issue
Block a user