diff options
author | Christoph Müllner <christoph.muellner@theobroma-systems.com> | 2013-06-27 15:18:23 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-07-01 16:29:26 -0400 |
commit | 772e42b07fbdc650206746e00cb2914e362594a3 (patch) | |
tree | 1060cd815ee6462cb27a8b8edba1c226fb4bbcf4 /drivers/net/ethernet/freescale | |
parent | 52bd4c0c1551daa2efa7bb9e01a2f4ea6d1311bb (diff) |
net: fec: Fix multicast list setup in fec_restart().
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>
Diffstat (limited to 'drivers/net/ethernet/freescale')
-rw-r--r-- | drivers/net/ethernet/freescale/fec_main.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c index ed6180e7db2f..5664acd8e0f4 100644 --- a/drivers/net/ethernet/freescale/fec_main.c +++ b/drivers/net/ethernet/freescale/fec_main.c | |||
@@ -59,6 +59,8 @@ | |||
59 | 59 | ||
60 | #include "fec.h" | 60 | #include "fec.h" |
61 | 61 | ||
62 | static void set_multicast_list(struct net_device *ndev); | ||
63 | |||
62 | #if defined(CONFIG_ARM) | 64 | #if defined(CONFIG_ARM) |
63 | #define FEC_ALIGNMENT 0xf | 65 | #define FEC_ALIGNMENT 0xf |
64 | #else | 66 | #else |
@@ -470,9 +472,8 @@ fec_restart(struct net_device *ndev, int duplex) | |||
470 | /* Clear any outstanding interrupt. */ | 472 | /* Clear any outstanding interrupt. */ |
471 | writel(0xffc00000, fep->hwp + FEC_IEVENT); | 473 | writel(0xffc00000, fep->hwp + FEC_IEVENT); |
472 | 474 | ||
473 | /* Reset all multicast. */ | 475 | /* Setup multicast filter. */ |
474 | writel(0, fep->hwp + FEC_GRP_HASH_TABLE_HIGH); | 476 | set_multicast_list(ndev); |
475 | writel(0, fep->hwp + FEC_GRP_HASH_TABLE_LOW); | ||
476 | #ifndef CONFIG_M5272 | 477 | #ifndef CONFIG_M5272 |
477 | writel(0, fep->hwp + FEC_HASH_TABLE_HIGH); | 478 | writel(0, fep->hwp + FEC_HASH_TABLE_HIGH); |
478 | writel(0, fep->hwp + FEC_HASH_TABLE_LOW); | 479 | writel(0, fep->hwp + FEC_HASH_TABLE_LOW); |