aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorian Fainelli <f.fainelli@gmail.com>2014-07-21 18:29:26 -0400
committerDavid S. Miller <davem@davemloft.net>2014-07-21 19:04:31 -0400
commit8fdb0e0fb972f9665dd21aa69825ba748ebbdf45 (patch)
treee67557a60601aef5f98aec75a8cc8f6d92a06492
parentc3ae64ae0c08b3ff7fe0dea4d43c586f02a3adb5 (diff)
net: bcmgenet: handle UMAC_IRQ_MPD_R interrupt bit
Handle UMAC_IRQ_MPD_R interrupt bit in our workqueue to make sure that we properly re-configure the GENET adapter from Wake-on-LAN. bcmgenet_power_up() makes sure that we will not leave the UniMAC hardware in MagicPacket matching mode, since that would prevent any other packet from being received. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/broadcom/genet/bcmgenet.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
index f5118f4cccf3..319b94381d2e 100644
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
@@ -1836,6 +1836,13 @@ static void bcmgenet_irq_task(struct work_struct *work)
1836 1836
1837 netif_dbg(priv, intr, priv->dev, "%s\n", __func__); 1837 netif_dbg(priv, intr, priv->dev, "%s\n", __func__);
1838 1838
1839 if (priv->irq0_stat & UMAC_IRQ_MPD_R) {
1840 priv->irq0_stat &= ~UMAC_IRQ_MPD_R;
1841 netif_dbg(priv, wol, priv->dev,
1842 "magic packet detected, waking up\n");
1843 bcmgenet_power_up(priv, GENET_POWER_WOL_MAGIC);
1844 }
1845
1839 /* Link UP/DOWN event */ 1846 /* Link UP/DOWN event */
1840 if ((priv->hw_params->flags & GENET_HAS_MDIO_INTR) && 1847 if ((priv->hw_params->flags & GENET_HAS_MDIO_INTR) &&
1841 (priv->irq0_stat & (UMAC_IRQ_LINK_UP|UMAC_IRQ_LINK_DOWN))) { 1848 (priv->irq0_stat & (UMAC_IRQ_LINK_UP|UMAC_IRQ_LINK_DOWN))) {