X-Git-Url: http://git.rohieb.name/openwrt.git/blobdiff_plain/41167c6d5468e9500de6a9bc16ce7dbde7bcb628..da6dd9a7ec61de4c1dd717af5b567c94681f8a81:/target/linux/ixp4xx/patches-2.6.30/205-npe_driver_separate_phy_functions.patch diff --git a/target/linux/ixp4xx/patches-2.6.30/205-npe_driver_separate_phy_functions.patch b/target/linux/ixp4xx/patches-2.6.30/205-npe_driver_separate_phy_functions.patch index a7ce893a8..6120176b6 100644 --- a/target/linux/ixp4xx/patches-2.6.30/205-npe_driver_separate_phy_functions.patch +++ b/target/linux/ixp4xx/patches-2.6.30/205-npe_driver_separate_phy_functions.patch @@ -73,7 +73,7 @@ if (!ports_open) qmgr_disable_irq(TXDONE_QUEUE); -@@ -1149,7 +1195,6 @@ static int __devinit eth_init_one(struct +@@ -1151,7 +1197,6 @@ static int __devinit eth_init_one(struct struct net_device *dev; struct eth_plat_info *plat = pdev->dev.platform_data; u32 regs_phys; @@ -81,38 +81,33 @@ int err; if (!(dev = alloc_etherdev(sizeof(struct port)))) -@@ -1212,22 +1257,9 @@ static int __devinit eth_init_one(struct +@@ -1209,18 +1254,10 @@ static int __devinit eth_init_one(struct __raw_writel(DEFAULT_CORE_CNTRL, &port->regs->core_control); udelay(50); - snprintf(phy_id, BUS_ID_SIZE, PHY_ID_FMT, "0", plat->phy); - port->phydev = phy_connect(dev, phy_id, &ixp4xx_adjust_link, 0, - PHY_INTERFACE_MODE_MII); -- if (IS_ERR(port->phydev)) { -- printk(KERN_ERR "%s: Could not attach to PHY\n", dev->name); -- return PTR_ERR(port->phydev); -- } -- +- if ((err = IS_ERR(port->phydev))) ++ err = ixp4xx_phy_connect(dev); ++ if (err) + goto err_free_mem; + - /* mask with MAC supported features */ - port->phydev->supported &= PHY_BASIC_FEATURES; - port->phydev->advertising = port->phydev->supported; - - port->phydev->irq = PHY_POLL; - -- printk(KERN_INFO "%s: MII PHY %i on %s\n", dev->name, plat->phy, -- npe_name(port->npe)); -+ err = ixp4xx_phy_connect(dev); -+ if (err) -+ goto err_unreg; - - return 0; + if ((err = register_netdev(dev))) + goto err_phy_dis; -@@ -1245,7 +1277,7 @@ static int __devexit eth_remove_one(stru +@@ -1247,7 +1284,7 @@ static int __devexit eth_remove_one(stru struct net_device *dev = platform_get_drvdata(pdev); struct port *port = netdev_priv(dev); - phy_disconnect(port->phydev); + ixp4xx_phy_disconnect(dev); unregister_netdev(dev); + phy_disconnect(port->phydev); npe_port_tab[NPE_ID(port->id)] = NULL; - platform_set_drvdata(pdev, NULL);