aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ethernet/stmicro/stmmac/stmmac_main.c')
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/stmmac_main.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index 579f2673fd2..5aea21e587d 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -1515,7 +1515,7 @@ static int stmmac_mac_device_setup(struct net_device *dev)
1515 1515
1516 if (device_can_wakeup(priv->device)) { 1516 if (device_can_wakeup(priv->device)) {
1517 priv->wolopts = WAKE_MAGIC; /* Magic Frame as default */ 1517 priv->wolopts = WAKE_MAGIC; /* Magic Frame as default */
1518 enable_irq_wake(dev->irq); 1518 enable_irq_wake(priv->wol_irq);
1519 } 1519 }
1520 1520
1521 return 0; 1521 return 0;
@@ -1588,6 +1588,18 @@ static int stmmac_dvr_probe(struct platform_device *pdev)
1588 pr_info("\tPMT module supported\n"); 1588 pr_info("\tPMT module supported\n");
1589 device_set_wakeup_capable(&pdev->dev, 1); 1589 device_set_wakeup_capable(&pdev->dev, 1);
1590 } 1590 }
1591 /*
1592 * On some platforms e.g. SPEAr the wake up irq differs from the mac irq
1593 * The external wake up irq can be passed through the platform code
1594 * named as "eth_wake_irq"
1595 *
1596 * In case the wake up interrupt is not passed from the platform
1597 * so the driver will continue to use the mac irq (ndev->irq)
1598 */
1599 priv->wol_irq = platform_get_irq_byname(pdev, "eth_wake_irq");
1600 if (priv->wol_irq == -ENXIO)
1601 priv->wol_irq = ndev->irq;
1602
1591 1603
1592 platform_set_drvdata(pdev, ndev); 1604 platform_set_drvdata(pdev, ndev);
1593 1605