aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorFlorian Fainelli <f.fainelli@gmail.com>2015-03-10 19:57:12 -0400
committerDavid S. Miller <davem@davemloft.net>2015-03-11 17:56:28 -0400
commitc305c1651cb20f00d272db1615d39513365f2097 (patch)
tree23464b98a206ac5fd0d3233912b9bad3e6700fbb /net
parent33d6737761ea425d43f3b6e4561573a4020982f2 (diff)
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: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r--net/dsa/slave.c28
1 files changed, 20 insertions, 8 deletions
diff --git a/net/dsa/slave.c b/net/dsa/slave.c
index a47305c72fcc..19bc2b39c9d1 100644
--- a/net/dsa/slave.c
+++ b/net/dsa/slave.c
@@ -617,6 +617,23 @@ static int dsa_slave_fixed_link_update(struct net_device *dev,
617} 617}
618 618
619/* slave device setup *******************************************************/ 619/* slave device setup *******************************************************/
620static int dsa_slave_phy_connect(struct dsa_slave_priv *p,
621 struct net_device *slave_dev)
622{
623 struct dsa_switch *ds = p->parent;
624
625 p->phy = ds->slave_mii_bus->phy_map[p->port];
626 if (!p->phy)
627 return -ENODEV;
628
629 /* Use already configured phy mode */
630 p->phy_interface = p->phy->interface;
631 phy_connect_direct(slave_dev, p->phy, dsa_slave_adjust_link,
632 p->phy_interface);
633
634 return 0;
635}
636
620static int dsa_slave_phy_setup(struct dsa_slave_priv *p, 637static int dsa_slave_phy_setup(struct dsa_slave_priv *p,
621 struct net_device *slave_dev) 638 struct net_device *slave_dev)
622{ 639{
@@ -662,14 +679,9 @@ static int dsa_slave_phy_setup(struct dsa_slave_priv *p,
662 * MDIO bus instead 679 * MDIO bus instead
663 */ 680 */
664 if (!p->phy) { 681 if (!p->phy) {
665 p->phy = ds->slave_mii_bus->phy_map[p->port]; 682 ret = dsa_slave_phy_connect(p, slave_dev);
666 if (!p->phy) 683 if (ret)
667 return -ENODEV; 684 return ret;
668
669 /* Use already configured phy mode */
670 p->phy_interface = p->phy->interface;
671 phy_connect_direct(slave_dev, p->phy, dsa_slave_adjust_link,
672 p->phy_interface);
673 } else { 685 } else {
674 netdev_info(slave_dev, "attached PHY at address %d [%s]\n", 686 netdev_info(slave_dev, "attached PHY at address %d [%s]\n",
675 p->phy->addr, p->phy->drv->name); 687 p->phy->addr, p->phy->drv->name);