Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 637f33b8 authored by Jonas Bonn's avatar Jonas Bonn Committed by David S. Miller
Browse files

ethoc: Clean up PHY probing



- No need to iterate over all possible addresses on bus
- Use helper function phy_find_first
- Use phy_connect_direct as we already have the relevant structure

Signed-off-by: default avatarJonas Bonn <jonas@southpole.se>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent ee4f56b9
Loading
Loading
Loading
Loading
+8 −16
Original line number Diff line number Diff line
@@ -635,21 +635,13 @@ static int ethoc_mdio_probe(struct net_device *dev)
{
	struct ethoc *priv = netdev_priv(dev);
	struct phy_device *phy;
	int err;
	int i;

	for (i = 0; i < PHY_MAX_ADDR; i++) {
		phy = priv->mdio->phy_map[i];
		if (phy) {
	if (priv->phy_id != -1) {
				/* attach to specified PHY */
				if (priv->phy_id == phy->addr)
					break;
		phy = priv->mdio->phy_map[priv->phy_id];
	} else {
				/* autoselect PHY if none was specified */
				if (phy->addr != 0)
					break;
			}
		}
		phy = phy_find_first(priv->mdio);
	}

	if (!phy) {
@@ -657,11 +649,11 @@ static int ethoc_mdio_probe(struct net_device *dev)
		return -ENXIO;
	}

	phy = phy_connect(dev, dev_name(&phy->dev), ethoc_mdio_poll, 0,
	err = phy_connect_direct(dev, phy, ethoc_mdio_poll, 0,
			PHY_INTERFACE_MODE_GMII);
	if (IS_ERR(phy)) {
	if (err) {
		dev_err(&dev->dev, "could not attach to PHY\n");
		return PTR_ERR(phy);
		return err;
	}

	priv->phy = phy;