diff options
author | Troy Kisky <troy.kisky@boundarydevices.com> | 2012-07-03 16:48:02 -0700 |
---|---|---|
committer | Eric Nelson <eric.nelson@boundarydevices.com> | 2013-02-12 10:45:34 -0700 |
commit | b547ea6f26fe794d55940952b6393beee471099a (patch) | |
tree | 61a21aede23239f47e2a609de0ac06f0a8955499 /drivers | |
parent | c57e61dce909ea79d4b724b95a8af466c4d9d645 (diff) |
fec: use phy_irq platform_data
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/fec.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/net/fec.c b/drivers/net/fec.c index 4b5818e4d71e..35a6ee6d9661 100644 --- a/drivers/net/fec.c +++ b/drivers/net/fec.c @@ -1062,7 +1062,7 @@ static int fec_enet_mii_probe(struct net_device *ndev) return 0; } -static int fec_enet_mii_init(struct platform_device *pdev) +static int fec_enet_mii_init(struct platform_device *pdev, int phy_irq) { static struct mii_bus *fec0_mii_bus; struct net_device *ndev = platform_get_drvdata(pdev); @@ -1128,7 +1128,7 @@ static int fec_enet_mii_init(struct platform_device *pdev) } for (i = 0; i < PHY_MAX_ADDR; i++) - fep->mii_bus->irq[i] = PHY_POLL; + fep->mii_bus->irq[i] = phy_irq; if (mdiobus_register(fep->mii_bus)) goto err_out_free_mdio_irq; @@ -1791,6 +1791,7 @@ fec_probe(struct platform_device *pdev) struct net_device *ndev; int i, irq, ret = 0; struct resource *r; + int phy_irq = PHY_POLL; r = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (!r) @@ -1823,8 +1824,11 @@ fec_probe(struct platform_device *pdev) platform_set_drvdata(pdev, ndev); pdata = pdev->dev.platform_data; - if (pdata) + if (pdata) { fep->phy_interface = pdata->phy; + if (pdata->phy_irq) + phy_irq = pdata->phy_irq; + } /* This device has up to three irqs on some platforms */ for (i = 0; i < 3; i++) { @@ -1852,7 +1856,7 @@ fec_probe(struct platform_device *pdev) if (ret) goto failed_init; - ret = fec_enet_mii_init(pdev); + ret = fec_enet_mii_init(pdev, phy_irq); if (ret) goto failed_mii_init; |