aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/arm/w90p910_ether.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/arm/w90p910_ether.c')
-rw-r--r--drivers/net/arm/w90p910_ether.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/net/arm/w90p910_ether.c b/drivers/net/arm/w90p910_ether.c
index 25e2627eb118..f7c9ca1dfb17 100644
--- a/drivers/net/arm/w90p910_ether.c
+++ b/drivers/net/arm/w90p910_ether.c
@@ -18,6 +18,7 @@
18#include <linux/ethtool.h> 18#include <linux/ethtool.h>
19#include <linux/platform_device.h> 19#include <linux/platform_device.h>
20#include <linux/clk.h> 20#include <linux/clk.h>
21#include <linux/gfp.h>
21 22
22#define DRV_MODULE_NAME "w90p910-emc" 23#define DRV_MODULE_NAME "w90p910-emc"
23#define DRV_MODULE_VERSION "0.1" 24#define DRV_MODULE_VERSION "0.1"
@@ -160,8 +161,8 @@ struct w90p910_ether {
160 struct mii_if_info mii; 161 struct mii_if_info mii;
161 struct timer_list check_timer; 162 struct timer_list check_timer;
162 void __iomem *reg; 163 void __iomem *reg;
163 unsigned int rxirq; 164 int rxirq;
164 unsigned int txirq; 165 int txirq;
165 unsigned int cur_tx; 166 unsigned int cur_tx;
166 unsigned int cur_rx; 167 unsigned int cur_rx;
167 unsigned int finish_tx; 168 unsigned int finish_tx;
@@ -858,10 +859,10 @@ static void w90p910_ether_set_multicast_list(struct net_device *dev)
858 859
859 if (dev->flags & IFF_PROMISC) 860 if (dev->flags & IFF_PROMISC)
860 rx_mode = CAMCMR_AUP | CAMCMR_AMP | CAMCMR_ABP | CAMCMR_ECMP; 861 rx_mode = CAMCMR_AUP | CAMCMR_AMP | CAMCMR_ABP | CAMCMR_ECMP;
861 else if ((dev->flags & IFF_ALLMULTI) || dev->mc_list) 862 else if ((dev->flags & IFF_ALLMULTI) || !netdev_mc_empty(dev))
862 rx_mode = CAMCMR_AMP | CAMCMR_ABP | CAMCMR_ECMP; 863 rx_mode = CAMCMR_AMP | CAMCMR_ABP | CAMCMR_ECMP;
863 else 864 else
864 rx_mode = CAMCMR_ECMP | CAMCMR_ABP; 865 rx_mode = CAMCMR_ECMP | CAMCMR_ABP;
865 __raw_writel(rx_mode, ether->reg + REG_CAMCMR); 866 __raw_writel(rx_mode, ether->reg + REG_CAMCMR);
866} 867}
867 868