xirc2ps_cs: re-initialize the multicast address in do_reset keep bit7,8 of XIRCREG42_SWC1 in set_multicast_list.

Signed-off-by: Komuro <komurojun-mbn@nifty.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>

authored by Komuro and committed by Jeff Garzik 43fc63dc f7f312a0

+8 -4
+8 -4
drivers/net/pcmcia/xirc2ps_cs.c
··· 1461 set_multicast_list(struct net_device *dev) 1462 { 1463 unsigned int ioaddr = dev->base_addr; 1464 1465 SelectPage(0x42); 1466 if (dev->flags & IFF_PROMISC) { /* snoop */ 1467 - PutByte(XIRCREG42_SWC1, 0x06); /* set MPE and PME */ 1468 } else if (dev->mc_count > 9 || (dev->flags & IFF_ALLMULTI)) { 1469 - PutByte(XIRCREG42_SWC1, 0x02); /* set MPE */ 1470 } else if (dev->mc_count) { 1471 /* the chip can filter 9 addresses perfectly */ 1472 - PutByte(XIRCREG42_SWC1, 0x01); 1473 SelectPage(0x40); 1474 PutByte(XIRCREG40_CMD0, Offline); 1475 set_addresses(dev); 1476 SelectPage(0x40); 1477 PutByte(XIRCREG40_CMD0, EnableRecv | Online); 1478 } else { /* standard usage */ 1479 - PutByte(XIRCREG42_SWC1, 0x00); 1480 } 1481 SelectPage(0); 1482 } ··· 1725 1726 /* enable receiver and put the mac online */ 1727 if (full) { 1728 SelectPage(0x40); 1729 PutByte(XIRCREG40_CMD0, EnableRecv | Online); 1730 }
··· 1461 set_multicast_list(struct net_device *dev) 1462 { 1463 unsigned int ioaddr = dev->base_addr; 1464 + unsigned value; 1465 1466 SelectPage(0x42); 1467 + value = GetByte(XIRCREG42_SWC1) & 0xC0; 1468 + 1469 if (dev->flags & IFF_PROMISC) { /* snoop */ 1470 + PutByte(XIRCREG42_SWC1, value | 0x06); /* set MPE and PME */ 1471 } else if (dev->mc_count > 9 || (dev->flags & IFF_ALLMULTI)) { 1472 + PutByte(XIRCREG42_SWC1, value | 0x02); /* set MPE */ 1473 } else if (dev->mc_count) { 1474 /* the chip can filter 9 addresses perfectly */ 1475 + PutByte(XIRCREG42_SWC1, value | 0x01); 1476 SelectPage(0x40); 1477 PutByte(XIRCREG40_CMD0, Offline); 1478 set_addresses(dev); 1479 SelectPage(0x40); 1480 PutByte(XIRCREG40_CMD0, EnableRecv | Online); 1481 } else { /* standard usage */ 1482 + PutByte(XIRCREG42_SWC1, value | 0x00); 1483 } 1484 SelectPage(0); 1485 } ··· 1722 1723 /* enable receiver and put the mac online */ 1724 if (full) { 1725 + set_multicast_list(dev); 1726 SelectPage(0x40); 1727 PutByte(XIRCREG40_CMD0, EnableRecv | Online); 1728 }