[PATCH] network: axnet_cs: bug fix multicast code (support older ax88190 chipset)
authorKomuro <komurojun-mbn@nifty.com>
Sun, 30 Apr 2006 00:54:13 +0000 (09:54 +0900)
committerJeff Garzik <jeff@garzik.org>
Sat, 20 May 2006 04:20:29 +0000 (00:20 -0400)
Dear Jeff

axnet_cs: bug fix multicast code (support older ax88190 chipset)

Signed-off-by: komurojun-mbn@nifty.com
Best Regards
Komuro
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/net/pcmcia/axnet_cs.c

index 448a09488529f59ca3727ce5d89c8ba3903d3c32..2ea66aca648b417ae0109ae132921965b9615eb9 100644 (file)
@@ -1691,17 +1691,6 @@ static void do_set_multicast_list(struct net_device *dev)
                memset(ei_local->mcfilter, 0xFF, 8);
        }
 
-       /* 
-        * DP8390 manuals don't specify any magic sequence for altering
-        * the multicast regs on an already running card. To be safe, we
-        * ensure multicast mode is off prior to loading up the new hash
-        * table. If this proves to be not enough, we can always resort
-        * to stopping the NIC, loading the table and then restarting.
-        */
-        
-       if (netif_running(dev))
-               outb_p(E8390_RXCONFIG, e8390_base + EN0_RXCR);
-
        outb_p(E8390_NODMA + E8390_PAGE1, e8390_base + E8390_CMD);
        for(i = 0; i < 8; i++) 
        {
@@ -1715,6 +1704,8 @@ static void do_set_multicast_list(struct net_device *dev)
                outb_p(E8390_RXCONFIG | 0x48, e8390_base + EN0_RXCR);
        else
                outb_p(E8390_RXCONFIG | 0x40, e8390_base + EN0_RXCR);
+
+       outb_p(E8390_NODMA+E8390_PAGE0+E8390_START, e8390_base+E8390_CMD);
 }
 
 /*