summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorTroy Kisky <troy.kisky@boundarydevices.com>2012-07-03 16:48:02 -0700
committerEric Nelson <eric.nelson@boundarydevices.com>2013-02-12 10:45:34 -0700
commitb547ea6f26fe794d55940952b6393beee471099a (patch)
tree61a21aede23239f47e2a609de0ac06f0a8955499 /drivers
parentc57e61dce909ea79d4b724b95a8af466c4d9d645 (diff)
fec: use phy_irq platform_data
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/fec.c12
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;