diff mbox

[net-next-2.6] macb: straighten out macb_mii_probe function

Message ID 20100208151207.GE2601@psychotron.lab.eng.brq.redhat.com
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Jiri Pirko Feb. 8, 2010, 3:12 p.m. UTC
Use "phy_find_first" instead of manual lookup. Also use "phy_connect_direct"
instead of "phy_connect" since we already have phy_device pointer here.

Signed-off-by: Jiri Pirko <jpirko@redhat.com>
---
 drivers/net/macb.c |   29 +++++++++--------------------
 1 files changed, 9 insertions(+), 20 deletions(-)

Comments

Haavard Skinnemoen Feb. 10, 2010, 9:47 a.m. UTC | #1
Jiri Pirko <jpirko@redhat.com> wrote:
> Use "phy_find_first" instead of manual lookup. Also use "phy_connect_direct"
> instead of "phy_connect" since we already have phy_device pointer here.
> 
> Signed-off-by: Jiri Pirko <jpirko@redhat.com>

Looks reasonable as far as I can see.

Acked-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller Feb. 12, 2010, 7:39 p.m. UTC | #2
From: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
Date: Wed, 10 Feb 2010 15:17:06 +0530

> Jiri Pirko <jpirko@redhat.com> wrote:
>> Use "phy_find_first" instead of manual lookup. Also use "phy_connect_direct"
>> instead of "phy_connect" since we already have phy_device pointer here.
>> 
>> Signed-off-by: Jiri Pirko <jpirko@redhat.com>
> 
> Looks reasonable as far as I can see.
> 
> Acked-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>

Applied, thanks guys.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/net/macb.c b/drivers/net/macb.c
index 1d0d4d9..2b92c90 100644
--- a/drivers/net/macb.c
+++ b/drivers/net/macb.c
@@ -189,18 +189,11 @@  static void macb_handle_link_change(struct net_device *dev)
 static int macb_mii_probe(struct net_device *dev)
 {
 	struct macb *bp = netdev_priv(dev);
-	struct phy_device *phydev = NULL;
+	struct phy_device *phydev;
 	struct eth_platform_data *pdata;
-	int phy_addr;
-
-	/* find the first phy */
-	for (phy_addr = 0; phy_addr < PHY_MAX_ADDR; phy_addr++) {
-		if (bp->mii_bus->phy_map[phy_addr]) {
-			phydev = bp->mii_bus->phy_map[phy_addr];
-			break;
-		}
-	}
+	int ret;
 
+	phydev = phy_find_first(bp->mii_bus);
 	if (!phydev) {
 		printk (KERN_ERR "%s: no PHY found\n", dev->name);
 		return -1;
@@ -210,17 +203,13 @@  static int macb_mii_probe(struct net_device *dev)
 	/* TODO : add pin_irq */
 
 	/* attach the mac to the phy */
-	if (pdata && pdata->is_rmii) {
-		phydev = phy_connect(dev, dev_name(&phydev->dev),
-			&macb_handle_link_change, 0, PHY_INTERFACE_MODE_RMII);
-	} else {
-		phydev = phy_connect(dev, dev_name(&phydev->dev),
-			&macb_handle_link_change, 0, PHY_INTERFACE_MODE_MII);
-	}
-
-	if (IS_ERR(phydev)) {
+	ret = phy_connect_direct(dev, phydev, &macb_handle_link_change, 0,
+				 pdata && pdata->is_rmii ?
+				 PHY_INTERFACE_MODE_RMII :
+				 PHY_INTERFACE_MODE_MII);
+	if (ret) {
 		printk(KERN_ERR "%s: Could not attach to PHY\n", dev->name);
-		return PTR_ERR(phydev);
+		return ret;
 	}
 
 	/* mask with MAC supported features */