net: sfp: move phy_start()/phy_stop() to phylink
Move phy_start() and phy_stop() into the module_start and module_stop notifications in phylink, rather than having them in the SFP code. This gives phylink responsibility for controlling the PHY, rather than having SFP start and stop the PHY state machine. Reviewed-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
74c551ca5a
commit
4882057ad4
@@ -1767,6 +1767,26 @@ static int phylink_sfp_module_insert(void *upstream,
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int phylink_sfp_module_start(void *upstream)
|
||||
{
|
||||
struct phylink *pl = upstream;
|
||||
|
||||
/* If this SFP module has a PHY, start the PHY now. */
|
||||
if (pl->phydev)
|
||||
phy_start(pl->phydev);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void phylink_sfp_module_stop(void *upstream)
|
||||
{
|
||||
struct phylink *pl = upstream;
|
||||
|
||||
/* If this SFP module has a PHY, stop it. */
|
||||
if (pl->phydev)
|
||||
phy_stop(pl->phydev);
|
||||
}
|
||||
|
||||
static void phylink_sfp_link_down(void *upstream)
|
||||
{
|
||||
struct phylink *pl = upstream;
|
||||
@@ -1802,6 +1822,8 @@ static const struct sfp_upstream_ops sfp_phylink_ops = {
|
||||
.attach = phylink_sfp_attach,
|
||||
.detach = phylink_sfp_detach,
|
||||
.module_insert = phylink_sfp_module_insert,
|
||||
.module_start = phylink_sfp_module_start,
|
||||
.module_stop = phylink_sfp_module_stop,
|
||||
.link_up = phylink_sfp_link_up,
|
||||
.link_down = phylink_sfp_link_down,
|
||||
.connect_phy = phylink_sfp_connect_phy,
|
||||
|
Reference in New Issue
Block a user