Commit c305c165 authored by Florian Fainelli's avatar Florian Fainelli Committed by David S. Miller

net: dsa: move PHY setup on DSA MII bus to its own function

In preparation for dealing with indirect reads and writes towards
certain PHY devices, move the code which deals with binding the PHY
device to the slave MII bus created by DSA to its own function:
dsa_slave_phy_connect().
Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 33d67377
...@@ -617,6 +617,23 @@ static int dsa_slave_fixed_link_update(struct net_device *dev, ...@@ -617,6 +617,23 @@ static int dsa_slave_fixed_link_update(struct net_device *dev,
} }
/* slave device setup *******************************************************/ /* slave device setup *******************************************************/
static int dsa_slave_phy_connect(struct dsa_slave_priv *p,
struct net_device *slave_dev)
{
struct dsa_switch *ds = p->parent;
p->phy = ds->slave_mii_bus->phy_map[p->port];
if (!p->phy)
return -ENODEV;
/* Use already configured phy mode */
p->phy_interface = p->phy->interface;
phy_connect_direct(slave_dev, p->phy, dsa_slave_adjust_link,
p->phy_interface);
return 0;
}
static int dsa_slave_phy_setup(struct dsa_slave_priv *p, static int dsa_slave_phy_setup(struct dsa_slave_priv *p,
struct net_device *slave_dev) struct net_device *slave_dev)
{ {
...@@ -662,14 +679,9 @@ static int dsa_slave_phy_setup(struct dsa_slave_priv *p, ...@@ -662,14 +679,9 @@ static int dsa_slave_phy_setup(struct dsa_slave_priv *p,
* MDIO bus instead * MDIO bus instead
*/ */
if (!p->phy) { if (!p->phy) {
p->phy = ds->slave_mii_bus->phy_map[p->port]; ret = dsa_slave_phy_connect(p, slave_dev);
if (!p->phy) if (ret)
return -ENODEV; return ret;
/* Use already configured phy mode */
p->phy_interface = p->phy->interface;
phy_connect_direct(slave_dev, p->phy, dsa_slave_adjust_link,
p->phy_interface);
} else { } else {
netdev_info(slave_dev, "attached PHY at address %d [%s]\n", netdev_info(slave_dev, "attached PHY at address %d [%s]\n",
p->phy->addr, p->phy->drv->name); p->phy->addr, p->phy->drv->name);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment