diff options
Diffstat (limited to 'drivers/net/sundance.c')
-rw-r--r-- | drivers/net/sundance.c | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/drivers/net/sundance.c b/drivers/net/sundance.c index 698568e751da..a3a7a3506bd2 100644 --- a/drivers/net/sundance.c +++ b/drivers/net/sundance.c | |||
@@ -17,12 +17,14 @@ | |||
17 | Support and updates available at | 17 | Support and updates available at |
18 | http://www.scyld.com/network/sundance.html | 18 | http://www.scyld.com/network/sundance.html |
19 | [link no longer provides useful info -jgarzik] | 19 | [link no longer provides useful info -jgarzik] |
20 | Archives of the mailing list are still available at | ||
21 | http://www.beowulf.org/pipermail/netdrivers/ | ||
20 | 22 | ||
21 | */ | 23 | */ |
22 | 24 | ||
23 | #define DRV_NAME "sundance" | 25 | #define DRV_NAME "sundance" |
24 | #define DRV_VERSION "1.1" | 26 | #define DRV_VERSION "1.2" |
25 | #define DRV_RELDATE "27-Jun-2006" | 27 | #define DRV_RELDATE "11-Sep-2006" |
26 | 28 | ||
27 | 29 | ||
28 | /* The user-configurable values. | 30 | /* The user-configurable values. |
@@ -646,7 +648,7 @@ static int __devinit sundance_probe1 (struct pci_dev *pdev, | |||
646 | /* Reset the chip to erase previous misconfiguration. */ | 648 | /* Reset the chip to erase previous misconfiguration. */ |
647 | if (netif_msg_hw(np)) | 649 | if (netif_msg_hw(np)) |
648 | printk("ASIC Control is %x.\n", ioread32(ioaddr + ASICCtrl)); | 650 | printk("ASIC Control is %x.\n", ioread32(ioaddr + ASICCtrl)); |
649 | iowrite16(0x00ff, ioaddr + ASICCtrl + 2); | 651 | sundance_reset(dev, 0x00ff << 16); |
650 | if (netif_msg_hw(np)) | 652 | if (netif_msg_hw(np)) |
651 | printk("ASIC Control is now %x.\n", ioread32(ioaddr + ASICCtrl)); | 653 | printk("ASIC Control is now %x.\n", ioread32(ioaddr + ASICCtrl)); |
652 | 654 | ||
@@ -1075,13 +1077,8 @@ reset_tx (struct net_device *dev) | |||
1075 | 1077 | ||
1076 | /* Reset tx logic, TxListPtr will be cleaned */ | 1078 | /* Reset tx logic, TxListPtr will be cleaned */ |
1077 | iowrite16 (TxDisable, ioaddr + MACCtrl1); | 1079 | iowrite16 (TxDisable, ioaddr + MACCtrl1); |
1078 | iowrite16 (TxReset | DMAReset | FIFOReset | NetworkReset, | 1080 | sundance_reset(dev, (NetworkReset|FIFOReset|DMAReset|TxReset) << 16); |
1079 | ioaddr + ASICCtrl + 2); | 1081 | |
1080 | for (i=50; i > 0; i--) { | ||
1081 | if ((ioread16(ioaddr + ASICCtrl + 2) & ResetBusy) == 0) | ||
1082 | break; | ||
1083 | mdelay(1); | ||
1084 | } | ||
1085 | /* free all tx skbuff */ | 1082 | /* free all tx skbuff */ |
1086 | for (i = 0; i < TX_RING_SIZE; i++) { | 1083 | for (i = 0; i < TX_RING_SIZE; i++) { |
1087 | skb = np->tx_skbuff[i]; | 1084 | skb = np->tx_skbuff[i]; |
@@ -1467,8 +1464,6 @@ static void set_rx_mode(struct net_device *dev) | |||
1467 | int i; | 1464 | int i; |
1468 | 1465 | ||
1469 | if (dev->flags & IFF_PROMISC) { /* Set promiscuous. */ | 1466 | if (dev->flags & IFF_PROMISC) { /* Set promiscuous. */ |
1470 | /* Unconditionally log net taps. */ | ||
1471 | printk(KERN_NOTICE "%s: Promiscuous mode enabled.\n", dev->name); | ||
1472 | memset(mc_filter, 0xff, sizeof(mc_filter)); | 1467 | memset(mc_filter, 0xff, sizeof(mc_filter)); |
1473 | rx_mode = AcceptBroadcast | AcceptMulticast | AcceptAll | AcceptMyPhys; | 1468 | rx_mode = AcceptBroadcast | AcceptMulticast | AcceptAll | AcceptMyPhys; |
1474 | } else if ((dev->mc_count > multicast_filter_limit) | 1469 | } else if ((dev->mc_count > multicast_filter_limit) |
@@ -1736,7 +1731,7 @@ static int __init sundance_init(void) | |||
1736 | #ifdef MODULE | 1731 | #ifdef MODULE |
1737 | printk(version); | 1732 | printk(version); |
1738 | #endif | 1733 | #endif |
1739 | return pci_module_init(&sundance_driver); | 1734 | return pci_register_driver(&sundance_driver); |
1740 | } | 1735 | } |
1741 | 1736 | ||
1742 | static void __exit sundance_exit(void) | 1737 | static void __exit sundance_exit(void) |