aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/sundance.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/sundance.c')
-rw-r--r--drivers/net/sundance.c21
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
1742static void __exit sundance_exit(void) 1737static void __exit sundance_exit(void)