]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
net: fec: Fix multicast list setup in fec_restart().
authorChristoph Müllner <christoph.muellner@theobroma-systems.com>
Thu, 27 Jun 2013 19:18:23 +0000 (21:18 +0200)
committerJason Liu <r64343@freescale.com>
Wed, 30 Oct 2013 01:54:21 +0000 (09:54 +0800)
Setup the multicast list of the net_device instead of
clearing it blindly. This restores the multicast groups
in case of a link down/up event or when resuming from
suspend.

Signed-off-by: Christoph Muellner <christoph.muellner@theobroma-systems.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/freescale/fec_main.c

index d876099b7f5b403df4bb795bcd7e4f8e18423ea3..e53862a2108ff8505fd3f8394711698972a2692e 100644 (file)
@@ -59,6 +59,8 @@
 
 #include "fec.h"
 
+static void set_multicast_list(struct net_device *ndev);
+
 #if defined(CONFIG_ARM)
 #define FEC_ALIGNMENT  0xf
 #else
@@ -470,9 +472,8 @@ fec_restart(struct net_device *ndev, int duplex)
        /* Clear any outstanding interrupt. */
        writel(0xffc00000, fep->hwp + FEC_IEVENT);
 
-       /* Reset all multicast. */
-       writel(0, fep->hwp + FEC_GRP_HASH_TABLE_HIGH);
-       writel(0, fep->hwp + FEC_GRP_HASH_TABLE_LOW);
+       /* Setup multicast filter. */
+       set_multicast_list(ndev);
 #ifndef CONFIG_M5272
        writel(0, fep->hwp + FEC_HASH_TABLE_HIGH);
        writel(0, fep->hwp + FEC_HASH_TABLE_LOW);