aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/tokenring/lanstreamer.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/tokenring/lanstreamer.c')
-rw-r--r--drivers/net/tokenring/lanstreamer.c59
1 files changed, 30 insertions, 29 deletions
diff --git a/drivers/net/tokenring/lanstreamer.c b/drivers/net/tokenring/lanstreamer.c
index dd028fee9dc2..5bd140704533 100644
--- a/drivers/net/tokenring/lanstreamer.c
+++ b/drivers/net/tokenring/lanstreamer.c
@@ -121,6 +121,7 @@
121#include <linux/spinlock.h> 121#include <linux/spinlock.h>
122#include <linux/bitops.h> 122#include <linux/bitops.h>
123#include <linux/jiffies.h> 123#include <linux/jiffies.h>
124#include <linux/slab.h>
124 125
125#include <net/net_namespace.h> 126#include <net/net_namespace.h>
126#include <net/checksum.h> 127#include <net/checksum.h>
@@ -357,7 +358,7 @@ static int __devinit streamer_init_one(struct pci_dev *pdev,
357 pcr |= PCI_COMMAND_SERR; 358 pcr |= PCI_COMMAND_SERR;
358 pci_write_config_word (pdev, PCI_COMMAND, pcr); 359 pci_write_config_word (pdev, PCI_COMMAND, pcr);
359 360
360 printk("%s \n", version); 361 printk("%s\n", version);
361 printk("%s: %s. I/O at %hx, MMIO at %p, using irq %d\n",dev->name, 362 printk("%s: %s. I/O at %hx, MMIO at %p, using irq %d\n",dev->name,
362 streamer_priv->streamer_card_name, 363 streamer_priv->streamer_card_name,
363 (unsigned int) dev->base_addr, 364 (unsigned int) dev->base_addr,
@@ -650,7 +651,7 @@ static int streamer_open(struct net_device *dev)
650#if STREAMER_DEBUG 651#if STREAMER_DEBUG
651 writew(readw(streamer_mmio + LAPWWO), 652 writew(readw(streamer_mmio + LAPWWO),
652 streamer_mmio + LAPA); 653 streamer_mmio + LAPA);
653 printk("srb open request: \n"); 654 printk("srb open request:\n");
654 for (i = 0; i < 16; i++) { 655 for (i = 0; i < 16; i++) {
655 printk("%x:", ntohs(readw(streamer_mmio + LAPDINC))); 656 printk("%x:", ntohs(readw(streamer_mmio + LAPDINC)));
656 } 657 }
@@ -700,7 +701,7 @@ static int streamer_open(struct net_device *dev)
700 if (srb_word != 0) { 701 if (srb_word != 0) {
701 if (srb_word == 0x07) { 702 if (srb_word == 0x07) {
702 if (!streamer_priv->streamer_ring_speed && open_finished) { /* Autosense , first time around */ 703 if (!streamer_priv->streamer_ring_speed && open_finished) { /* Autosense , first time around */
703 printk(KERN_WARNING "%s: Retrying at different ring speed \n", 704 printk(KERN_WARNING "%s: Retrying at different ring speed\n",
704 dev->name); 705 dev->name);
705 open_finished = 0; 706 open_finished = 0;
706 } else { 707 } else {
@@ -716,7 +717,7 @@ static int streamer_open(struct net_device *dev)
716 ((error_code & 0x0f) == 0x0d)) 717 ((error_code & 0x0f) == 0x0d))
717 { 718 {
718 printk(KERN_WARNING "%s: Tried to autosense ring speed with no monitors present\n", dev->name); 719 printk(KERN_WARNING "%s: Tried to autosense ring speed with no monitors present\n", dev->name);
719 printk(KERN_WARNING "%s: Please try again with a specified ring speed \n", dev->name); 720 printk(KERN_WARNING "%s: Please try again with a specified ring speed\n", dev->name);
720 free_irq(dev->irq, dev); 721 free_irq(dev->irq, dev);
721 return -EIO; 722 return -EIO;
722 } 723 }
@@ -922,7 +923,7 @@ static void streamer_rx(struct net_device *dev)
922 923
923 if (rx_desc->status & 0x7E830000) { /* errors */ 924 if (rx_desc->status & 0x7E830000) { /* errors */
924 if (streamer_priv->streamer_message_level) { 925 if (streamer_priv->streamer_message_level) {
925 printk(KERN_WARNING "%s: Rx Error %x \n", 926 printk(KERN_WARNING "%s: Rx Error %x\n",
926 dev->name, rx_desc->status); 927 dev->name, rx_desc->status);
927 } 928 }
928 } else { /* received without errors */ 929 } else { /* received without errors */
@@ -935,7 +936,7 @@ static void streamer_rx(struct net_device *dev)
935 936
936 if (skb == NULL) 937 if (skb == NULL)
937 { 938 {
938 printk(KERN_WARNING "%s: Not enough memory to copy packet to upper layers. \n", dev->name); 939 printk(KERN_WARNING "%s: Not enough memory to copy packet to upper layers.\n", dev->name);
939 dev->stats.rx_dropped++; 940 dev->stats.rx_dropped++;
940 } else { /* we allocated an skb OK */ 941 } else { /* we allocated an skb OK */
941 if (buffer_cnt == 1) { 942 if (buffer_cnt == 1) {
@@ -1266,7 +1267,7 @@ static void streamer_set_rx_mode(struct net_device *dev)
1266 netdev_priv(dev); 1267 netdev_priv(dev);
1267 __u8 __iomem *streamer_mmio = streamer_priv->streamer_mmio; 1268 __u8 __iomem *streamer_mmio = streamer_priv->streamer_mmio;
1268 __u8 options = 0; 1269 __u8 options = 0;
1269 struct dev_mc_list *dmi; 1270 struct netdev_hw_addr *ha;
1270 unsigned char dev_mc_address[5]; 1271 unsigned char dev_mc_address[5];
1271 1272
1272 writel(streamer_priv->srb, streamer_mmio + LAPA); 1273 writel(streamer_priv->srb, streamer_mmio + LAPA);
@@ -1302,11 +1303,11 @@ static void streamer_set_rx_mode(struct net_device *dev)
1302 writel(streamer_priv->srb,streamer_mmio+LAPA); 1303 writel(streamer_priv->srb,streamer_mmio+LAPA);
1303 dev_mc_address[0] = dev_mc_address[1] = dev_mc_address[2] = dev_mc_address[3] = 0 ; 1304 dev_mc_address[0] = dev_mc_address[1] = dev_mc_address[2] = dev_mc_address[3] = 0 ;
1304 1305
1305 netdev_for_each_mc_addr(dmi, dev) { 1306 netdev_for_each_mc_addr(ha, dev) {
1306 dev_mc_address[0] |= dmi->dmi_addr[2] ; 1307 dev_mc_address[0] |= ha->addr[2];
1307 dev_mc_address[1] |= dmi->dmi_addr[3] ; 1308 dev_mc_address[1] |= ha->addr[3];
1308 dev_mc_address[2] |= dmi->dmi_addr[4] ; 1309 dev_mc_address[2] |= ha->addr[4];
1309 dev_mc_address[3] |= dmi->dmi_addr[5] ; 1310 dev_mc_address[3] |= ha->addr[5];
1310 } 1311 }
1311 1312
1312 writew(htons(SRB_SET_FUNC_ADDRESS << 8),streamer_mmio+LAPDINC); 1313 writew(htons(SRB_SET_FUNC_ADDRESS << 8),streamer_mmio+LAPDINC);
@@ -1363,7 +1364,7 @@ static void streamer_srb_bh(struct net_device *dev)
1363 case 0x00: 1364 case 0x00:
1364 break; 1365 break;
1365 case 0x01: 1366 case 0x01:
1366 printk(KERN_WARNING "%s: Unrecognized srb command \n",dev->name); 1367 printk(KERN_WARNING "%s: Unrecognized srb command\n",dev->name);
1367 break; 1368 break;
1368 case 0x04: 1369 case 0x04:
1369 printk(KERN_WARNING "%s: Adapter must be open for this operation, doh!!\n", dev->name); 1370 printk(KERN_WARNING "%s: Adapter must be open for this operation, doh!!\n", dev->name);
@@ -1391,13 +1392,13 @@ static void streamer_srb_bh(struct net_device *dev)
1391 case 0x00: 1392 case 0x00:
1392 break; 1393 break;
1393 case 0x01: 1394 case 0x01:
1394 printk(KERN_WARNING "%s: Unrecognized srb command \n", dev->name); 1395 printk(KERN_WARNING "%s: Unrecognized srb command\n", dev->name);
1395 break; 1396 break;
1396 case 0x04: 1397 case 0x04:
1397 printk(KERN_WARNING "%s: Adapter must be open for this operation, doh!!\n", dev->name); 1398 printk(KERN_WARNING "%s: Adapter must be open for this operation, doh!!\n", dev->name);
1398 break; 1399 break;
1399 case 0x39: /* Must deal with this if individual multicast addresses used */ 1400 case 0x39: /* Must deal with this if individual multicast addresses used */
1400 printk(KERN_INFO "%s: Group address not found \n", dev->name); 1401 printk(KERN_INFO "%s: Group address not found\n", dev->name);
1401 break; 1402 break;
1402 default: 1403 default:
1403 break; 1404 break;
@@ -1413,10 +1414,10 @@ static void streamer_srb_bh(struct net_device *dev)
1413 switch (srb_word) { 1414 switch (srb_word) {
1414 case 0x00: 1415 case 0x00:
1415 if (streamer_priv->streamer_message_level) 1416 if (streamer_priv->streamer_message_level)
1416 printk(KERN_INFO "%s: Functional Address Mask Set \n", dev->name); 1417 printk(KERN_INFO "%s: Functional Address Mask Set\n", dev->name);
1417 break; 1418 break;
1418 case 0x01: 1419 case 0x01:
1419 printk(KERN_WARNING "%s: Unrecognized srb command \n", dev->name); 1420 printk(KERN_WARNING "%s: Unrecognized srb command\n", dev->name);
1420 break; 1421 break;
1421 case 0x04: 1422 case 0x04:
1422 printk(KERN_WARNING "%s: Adapter must be open for this operation, doh!!\n", dev->name); 1423 printk(KERN_WARNING "%s: Adapter must be open for this operation, doh!!\n", dev->name);
@@ -1447,7 +1448,7 @@ static void streamer_srb_bh(struct net_device *dev)
1447 } 1448 }
1448 break; 1449 break;
1449 case 0x01: 1450 case 0x01:
1450 printk(KERN_WARNING "%s: Unrecognized srb command \n", dev->name); 1451 printk(KERN_WARNING "%s: Unrecognized srb command\n", dev->name);
1451 break; 1452 break;
1452 case 0x04: 1453 case 0x04:
1453 printk(KERN_WARNING "%s: Adapter must be open for this operation, doh!!\n", dev->name); 1454 printk(KERN_WARNING "%s: Adapter must be open for this operation, doh!!\n", dev->name);
@@ -1466,7 +1467,7 @@ static void streamer_srb_bh(struct net_device *dev)
1466 printk(KERN_INFO "%s: Read Source Routing Counters issued\n", dev->name); 1467 printk(KERN_INFO "%s: Read Source Routing Counters issued\n", dev->name);
1467 break; 1468 break;
1468 case 0x01: 1469 case 0x01:
1469 printk(KERN_WARNING "%s: Unrecognized srb command \n", dev->name); 1470 printk(KERN_WARNING "%s: Unrecognized srb command\n", dev->name);
1470 break; 1471 break;
1471 case 0x04: 1472 case 0x04:
1472 printk(KERN_WARNING "%s: Adapter must be open for this operation, doh!!\n", dev->name); 1473 printk(KERN_WARNING "%s: Adapter must be open for this operation, doh!!\n", dev->name);
@@ -1555,7 +1556,7 @@ static void streamer_arb_cmd(struct net_device *dev)
1555 (streamer_mmio + LAPDINC))); 1556 (streamer_mmio + LAPDINC)));
1556 } 1557 }
1557 1558
1558 printk("next %04x, fs %02x, len %04x \n", next, 1559 printk("next %04x, fs %02x, len %04x\n", next,
1559 status, len); 1560 status, len);
1560 } 1561 }
1561#endif 1562#endif
@@ -1592,7 +1593,7 @@ static void streamer_arb_cmd(struct net_device *dev)
1592 1593
1593 mac_frame->protocol = tr_type_trans(mac_frame, dev); 1594 mac_frame->protocol = tr_type_trans(mac_frame, dev);
1594#if STREAMER_NETWORK_MONITOR 1595#if STREAMER_NETWORK_MONITOR
1595 printk(KERN_WARNING "%s: Received MAC Frame, details: \n", 1596 printk(KERN_WARNING "%s: Received MAC Frame, details:\n",
1596 dev->name); 1597 dev->name);
1597 mac_hdr = tr_hdr(mac_frame); 1598 mac_hdr = tr_hdr(mac_frame);
1598 printk(KERN_WARNING 1599 printk(KERN_WARNING
@@ -1668,15 +1669,15 @@ drop_frame:
1668 /* If serious error */ 1669 /* If serious error */
1669 if (streamer_priv->streamer_message_level) { 1670 if (streamer_priv->streamer_message_level) {
1670 if (lan_status_diff & LSC_SIG_LOSS) 1671 if (lan_status_diff & LSC_SIG_LOSS)
1671 printk(KERN_WARNING "%s: No receive signal detected \n", dev->name); 1672 printk(KERN_WARNING "%s: No receive signal detected\n", dev->name);
1672 if (lan_status_diff & LSC_HARD_ERR) 1673 if (lan_status_diff & LSC_HARD_ERR)
1673 printk(KERN_INFO "%s: Beaconing \n", dev->name); 1674 printk(KERN_INFO "%s: Beaconing\n", dev->name);
1674 if (lan_status_diff & LSC_SOFT_ERR) 1675 if (lan_status_diff & LSC_SOFT_ERR)
1675 printk(KERN_WARNING "%s: Adapter transmitted Soft Error Report Mac Frame \n", dev->name); 1676 printk(KERN_WARNING "%s: Adapter transmitted Soft Error Report Mac Frame\n", dev->name);
1676 if (lan_status_diff & LSC_TRAN_BCN) 1677 if (lan_status_diff & LSC_TRAN_BCN)
1677 printk(KERN_INFO "%s: We are tranmitting the beacon, aaah\n", dev->name); 1678 printk(KERN_INFO "%s: We are tranmitting the beacon, aaah\n", dev->name);
1678 if (lan_status_diff & LSC_SS) 1679 if (lan_status_diff & LSC_SS)
1679 printk(KERN_INFO "%s: Single Station on the ring \n", dev->name); 1680 printk(KERN_INFO "%s: Single Station on the ring\n", dev->name);
1680 if (lan_status_diff & LSC_RING_REC) 1681 if (lan_status_diff & LSC_RING_REC)
1681 printk(KERN_INFO "%s: Ring recovery ongoing\n", dev->name); 1682 printk(KERN_INFO "%s: Ring recovery ongoing\n", dev->name);
1682 if (lan_status_diff & LSC_FDX_MODE) 1683 if (lan_status_diff & LSC_FDX_MODE)
@@ -1685,7 +1686,7 @@ drop_frame:
1685 1686
1686 if (lan_status_diff & LSC_CO) { 1687 if (lan_status_diff & LSC_CO) {
1687 if (streamer_priv->streamer_message_level) 1688 if (streamer_priv->streamer_message_level)
1688 printk(KERN_INFO "%s: Counter Overflow \n", dev->name); 1689 printk(KERN_INFO "%s: Counter Overflow\n", dev->name);
1689 1690
1690 /* Issue READ.LOG command */ 1691 /* Issue READ.LOG command */
1691 1692
@@ -1715,7 +1716,7 @@ drop_frame:
1715 streamer_priv->streamer_lan_status = lan_status; 1716 streamer_priv->streamer_lan_status = lan_status;
1716 } /* Lan.change.status */ 1717 } /* Lan.change.status */
1717 else 1718 else
1718 printk(KERN_WARNING "%s: Unknown arb command \n", dev->name); 1719 printk(KERN_WARNING "%s: Unknown arb command\n", dev->name);
1719} 1720}
1720 1721
1721static void streamer_asb_bh(struct net_device *dev) 1722static void streamer_asb_bh(struct net_device *dev)
@@ -1746,10 +1747,10 @@ static void streamer_asb_bh(struct net_device *dev)
1746 rc=ntohs(readw(streamer_mmio+LAPD)) >> 8; 1747 rc=ntohs(readw(streamer_mmio+LAPD)) >> 8;
1747 switch (rc) { 1748 switch (rc) {
1748 case 0x01: 1749 case 0x01:
1749 printk(KERN_WARNING "%s: Unrecognized command code \n", dev->name); 1750 printk(KERN_WARNING "%s: Unrecognized command code\n", dev->name);
1750 break; 1751 break;
1751 case 0x26: 1752 case 0x26:
1752 printk(KERN_WARNING "%s: Unrecognized buffer address \n", dev->name); 1753 printk(KERN_WARNING "%s: Unrecognized buffer address\n", dev->name);
1753 break; 1754 break;
1754 case 0xFF: 1755 case 0xFF:
1755 /* Valid response, everything should be ok again */ 1756 /* Valid response, everything should be ok again */