diff options
Diffstat (limited to 'drivers/net/tulip/uli526x.c')
-rw-r--r-- | drivers/net/tulip/uli526x.c | 64 |
1 files changed, 37 insertions, 27 deletions
diff --git a/drivers/net/tulip/uli526x.c b/drivers/net/tulip/uli526x.c index fa019cabc355..0ab05af237e5 100644 --- a/drivers/net/tulip/uli526x.c +++ b/drivers/net/tulip/uli526x.c | |||
@@ -12,6 +12,8 @@ | |||
12 | 12 | ||
13 | */ | 13 | */ |
14 | 14 | ||
15 | #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt | ||
16 | |||
15 | #define DRV_NAME "uli526x" | 17 | #define DRV_NAME "uli526x" |
16 | #define DRV_VERSION "0.9.3" | 18 | #define DRV_VERSION "0.9.3" |
17 | #define DRV_RELDATE "2005-7-29" | 19 | #define DRV_RELDATE "2005-7-29" |
@@ -82,9 +84,16 @@ | |||
82 | #define ULI526X_TX_TIMEOUT ((16*HZ)/2) /* tx packet time-out time 8 s" */ | 84 | #define ULI526X_TX_TIMEOUT ((16*HZ)/2) /* tx packet time-out time 8 s" */ |
83 | #define ULI526X_TX_KICK (4*HZ/2) /* tx packet Kick-out time 2 s" */ | 85 | #define ULI526X_TX_KICK (4*HZ/2) /* tx packet Kick-out time 2 s" */ |
84 | 86 | ||
85 | #define ULI526X_DBUG(dbug_now, msg, value) if (uli526x_debug || (dbug_now)) printk(KERN_ERR DRV_NAME ": %s %lx\n", (msg), (long) (value)) | 87 | #define ULI526X_DBUG(dbug_now, msg, value) \ |
88 | do { \ | ||
89 | if (uli526x_debug || (dbug_now)) \ | ||
90 | pr_err("%s %lx\n", (msg), (long) (value)); \ | ||
91 | } while (0) | ||
86 | 92 | ||
87 | #define SHOW_MEDIA_TYPE(mode) printk(KERN_ERR DRV_NAME ": Change Speed to %sMhz %s duplex\n",mode & 1 ?"100":"10", mode & 4 ? "full":"half"); | 93 | #define SHOW_MEDIA_TYPE(mode) \ |
94 | pr_err("Change Speed to %sMhz %s duplex\n", \ | ||
95 | mode & 1 ? "100" : "10", \ | ||
96 | mode & 4 ? "full" : "half"); | ||
88 | 97 | ||
89 | 98 | ||
90 | /* CR9 definition: SROM/MII */ | 99 | /* CR9 definition: SROM/MII */ |
@@ -284,7 +293,7 @@ static int __devinit uli526x_init_one (struct pci_dev *pdev, | |||
284 | SET_NETDEV_DEV(dev, &pdev->dev); | 293 | SET_NETDEV_DEV(dev, &pdev->dev); |
285 | 294 | ||
286 | if (pci_set_dma_mask(pdev, DMA_BIT_MASK(32))) { | 295 | if (pci_set_dma_mask(pdev, DMA_BIT_MASK(32))) { |
287 | printk(KERN_WARNING DRV_NAME ": 32-bit PCI DMA not available.\n"); | 296 | pr_warning("32-bit PCI DMA not available\n"); |
288 | err = -ENODEV; | 297 | err = -ENODEV; |
289 | goto err_out_free; | 298 | goto err_out_free; |
290 | } | 299 | } |
@@ -295,19 +304,19 @@ static int __devinit uli526x_init_one (struct pci_dev *pdev, | |||
295 | goto err_out_free; | 304 | goto err_out_free; |
296 | 305 | ||
297 | if (!pci_resource_start(pdev, 0)) { | 306 | if (!pci_resource_start(pdev, 0)) { |
298 | printk(KERN_ERR DRV_NAME ": I/O base is zero\n"); | 307 | pr_err("I/O base is zero\n"); |
299 | err = -ENODEV; | 308 | err = -ENODEV; |
300 | goto err_out_disable; | 309 | goto err_out_disable; |
301 | } | 310 | } |
302 | 311 | ||
303 | if (pci_resource_len(pdev, 0) < (ULI526X_IO_SIZE) ) { | 312 | if (pci_resource_len(pdev, 0) < (ULI526X_IO_SIZE) ) { |
304 | printk(KERN_ERR DRV_NAME ": Allocated I/O size too small\n"); | 313 | pr_err("Allocated I/O size too small\n"); |
305 | err = -ENODEV; | 314 | err = -ENODEV; |
306 | goto err_out_disable; | 315 | goto err_out_disable; |
307 | } | 316 | } |
308 | 317 | ||
309 | if (pci_request_regions(pdev, DRV_NAME)) { | 318 | if (pci_request_regions(pdev, DRV_NAME)) { |
310 | printk(KERN_ERR DRV_NAME ": Failed to request PCI regions\n"); | 319 | pr_err("Failed to request PCI regions\n"); |
311 | err = -ENODEV; | 320 | err = -ENODEV; |
312 | goto err_out_disable; | 321 | goto err_out_disable; |
313 | } | 322 | } |
@@ -382,9 +391,9 @@ static int __devinit uli526x_init_one (struct pci_dev *pdev, | |||
382 | if (err) | 391 | if (err) |
383 | goto err_out_res; | 392 | goto err_out_res; |
384 | 393 | ||
385 | printk(KERN_INFO "%s: ULi M%04lx at pci%s, %pM, irq %d.\n", | 394 | dev_info(&dev->dev, "ULi M%04lx at pci%s, %pM, irq %d\n", |
386 | dev->name,ent->driver_data >> 16,pci_name(pdev), | 395 | ent->driver_data >> 16, pci_name(pdev), |
387 | dev->dev_addr, dev->irq); | 396 | dev->dev_addr, dev->irq); |
388 | 397 | ||
389 | pci_set_master(pdev); | 398 | pci_set_master(pdev); |
390 | 399 | ||
@@ -516,7 +525,7 @@ static void uli526x_init(struct net_device *dev) | |||
516 | } | 525 | } |
517 | } | 526 | } |
518 | if(phy_tmp == 32) | 527 | if(phy_tmp == 32) |
519 | printk(KERN_WARNING "Can not find the phy address!!!"); | 528 | pr_warning("Can not find the phy address!!!"); |
520 | /* Parser SROM and media mode */ | 529 | /* Parser SROM and media mode */ |
521 | db->media_mode = uli526x_media_mode; | 530 | db->media_mode = uli526x_media_mode; |
522 | 531 | ||
@@ -548,7 +557,7 @@ static void uli526x_init(struct net_device *dev) | |||
548 | update_cr6(db->cr6_data, ioaddr); | 557 | update_cr6(db->cr6_data, ioaddr); |
549 | 558 | ||
550 | /* Send setup frame */ | 559 | /* Send setup frame */ |
551 | send_filter_frame(dev, dev->mc_count); /* M5261/M5263 */ | 560 | send_filter_frame(dev, netdev_mc_count(dev)); /* M5261/M5263 */ |
552 | 561 | ||
553 | /* Init CR7, interrupt active bit */ | 562 | /* Init CR7, interrupt active bit */ |
554 | db->cr7_data = CR7_DEFAULT; | 563 | db->cr7_data = CR7_DEFAULT; |
@@ -582,7 +591,7 @@ static netdev_tx_t uli526x_start_xmit(struct sk_buff *skb, | |||
582 | 591 | ||
583 | /* Too large packet check */ | 592 | /* Too large packet check */ |
584 | if (skb->len > MAX_PACKET_SIZE) { | 593 | if (skb->len > MAX_PACKET_SIZE) { |
585 | printk(KERN_ERR DRV_NAME ": big packet = %d\n", (u16)skb->len); | 594 | pr_err("big packet = %d\n", (u16)skb->len); |
586 | dev_kfree_skb(skb); | 595 | dev_kfree_skb(skb); |
587 | return NETDEV_TX_OK; | 596 | return NETDEV_TX_OK; |
588 | } | 597 | } |
@@ -592,7 +601,7 @@ static netdev_tx_t uli526x_start_xmit(struct sk_buff *skb, | |||
592 | /* No Tx resource check, it never happen nromally */ | 601 | /* No Tx resource check, it never happen nromally */ |
593 | if (db->tx_packet_cnt >= TX_FREE_DESC_CNT) { | 602 | if (db->tx_packet_cnt >= TX_FREE_DESC_CNT) { |
594 | spin_unlock_irqrestore(&db->lock, flags); | 603 | spin_unlock_irqrestore(&db->lock, flags); |
595 | printk(KERN_ERR DRV_NAME ": No Tx resource %ld\n", db->tx_packet_cnt); | 604 | pr_err("No Tx resource %ld\n", db->tx_packet_cnt); |
596 | return NETDEV_TX_BUSY; | 605 | return NETDEV_TX_BUSY; |
597 | } | 606 | } |
598 | 607 | ||
@@ -897,16 +906,18 @@ static void uli526x_set_filter_mode(struct net_device * dev) | |||
897 | return; | 906 | return; |
898 | } | 907 | } |
899 | 908 | ||
900 | if (dev->flags & IFF_ALLMULTI || dev->mc_count > ULI5261_MAX_MULTICAST) { | 909 | if (dev->flags & IFF_ALLMULTI || |
901 | ULI526X_DBUG(0, "Pass all multicast address", dev->mc_count); | 910 | netdev_mc_count(dev) > ULI5261_MAX_MULTICAST) { |
911 | ULI526X_DBUG(0, "Pass all multicast address", | ||
912 | netdev_mc_count(dev)); | ||
902 | db->cr6_data &= ~(CR6_PM | CR6_PBF); | 913 | db->cr6_data &= ~(CR6_PM | CR6_PBF); |
903 | db->cr6_data |= CR6_PAM; | 914 | db->cr6_data |= CR6_PAM; |
904 | spin_unlock_irqrestore(&db->lock, flags); | 915 | spin_unlock_irqrestore(&db->lock, flags); |
905 | return; | 916 | return; |
906 | } | 917 | } |
907 | 918 | ||
908 | ULI526X_DBUG(0, "Set multicast address", dev->mc_count); | 919 | ULI526X_DBUG(0, "Set multicast address", netdev_mc_count(dev)); |
909 | send_filter_frame(dev, dev->mc_count); /* M5261/M5263 */ | 920 | send_filter_frame(dev, netdev_mc_count(dev)); /* M5261/M5263 */ |
910 | spin_unlock_irqrestore(&db->lock, flags); | 921 | spin_unlock_irqrestore(&db->lock, flags); |
911 | } | 922 | } |
912 | 923 | ||
@@ -1058,7 +1069,7 @@ static void uli526x_timer(unsigned long data) | |||
1058 | /* Link Failed */ | 1069 | /* Link Failed */ |
1059 | ULI526X_DBUG(0, "Link Failed", tmp_cr12); | 1070 | ULI526X_DBUG(0, "Link Failed", tmp_cr12); |
1060 | netif_carrier_off(dev); | 1071 | netif_carrier_off(dev); |
1061 | printk(KERN_INFO "uli526x: %s NIC Link is Down\n",dev->name); | 1072 | pr_info("%s NIC Link is Down\n",dev->name); |
1062 | db->link_failed = 1; | 1073 | db->link_failed = 1; |
1063 | 1074 | ||
1064 | /* For Force 10/100M Half/Full mode: Enable Auto-Nego mode */ | 1075 | /* For Force 10/100M Half/Full mode: Enable Auto-Nego mode */ |
@@ -1090,11 +1101,11 @@ static void uli526x_timer(unsigned long data) | |||
1090 | } | 1101 | } |
1091 | if(db->op_mode==ULI526X_10MFD || db->op_mode==ULI526X_100MFD) | 1102 | if(db->op_mode==ULI526X_10MFD || db->op_mode==ULI526X_100MFD) |
1092 | { | 1103 | { |
1093 | printk(KERN_INFO "uli526x: %s NIC Link is Up %d Mbps Full duplex\n",dev->name,TmpSpeed); | 1104 | pr_info("%s NIC Link is Up %d Mbps Full duplex\n",dev->name,TmpSpeed); |
1094 | } | 1105 | } |
1095 | else | 1106 | else |
1096 | { | 1107 | { |
1097 | printk(KERN_INFO "uli526x: %s NIC Link is Up %d Mbps Half duplex\n",dev->name,TmpSpeed); | 1108 | pr_info("%s NIC Link is Up %d Mbps Half duplex\n",dev->name,TmpSpeed); |
1098 | } | 1109 | } |
1099 | netif_carrier_on(dev); | 1110 | netif_carrier_on(dev); |
1100 | } | 1111 | } |
@@ -1104,7 +1115,7 @@ static void uli526x_timer(unsigned long data) | |||
1104 | { | 1115 | { |
1105 | if(db->init==1) | 1116 | if(db->init==1) |
1106 | { | 1117 | { |
1107 | printk(KERN_INFO "uli526x: %s NIC Link is Down\n",dev->name); | 1118 | pr_info("%s NIC Link is Down\n",dev->name); |
1108 | netif_carrier_off(dev); | 1119 | netif_carrier_off(dev); |
1109 | } | 1120 | } |
1110 | } | 1121 | } |
@@ -1230,8 +1241,7 @@ static int uli526x_resume(struct pci_dev *pdev) | |||
1230 | 1241 | ||
1231 | err = pci_set_power_state(pdev, PCI_D0); | 1242 | err = pci_set_power_state(pdev, PCI_D0); |
1232 | if (err) { | 1243 | if (err) { |
1233 | printk(KERN_WARNING "%s: Could not put device into D0\n", | 1244 | dev_warn(&dev->dev, "Could not put device into D0\n"); |
1234 | dev->name); | ||
1235 | return err; | 1245 | return err; |
1236 | } | 1246 | } |
1237 | 1247 | ||
@@ -1405,14 +1415,14 @@ static void send_filter_frame(struct net_device *dev, int mc_cnt) | |||
1405 | *suptr++ = 0xffff << FLT_SHIFT; | 1415 | *suptr++ = 0xffff << FLT_SHIFT; |
1406 | 1416 | ||
1407 | /* fit the multicast address */ | 1417 | /* fit the multicast address */ |
1408 | for (mcptr = dev->mc_list, i = 0; i < mc_cnt; i++, mcptr = mcptr->next) { | 1418 | netdev_for_each_mc_addr(mcptr, dev) { |
1409 | addrptr = (u16 *) mcptr->dmi_addr; | 1419 | addrptr = (u16 *) mcptr->dmi_addr; |
1410 | *suptr++ = addrptr[0] << FLT_SHIFT; | 1420 | *suptr++ = addrptr[0] << FLT_SHIFT; |
1411 | *suptr++ = addrptr[1] << FLT_SHIFT; | 1421 | *suptr++ = addrptr[1] << FLT_SHIFT; |
1412 | *suptr++ = addrptr[2] << FLT_SHIFT; | 1422 | *suptr++ = addrptr[2] << FLT_SHIFT; |
1413 | } | 1423 | } |
1414 | 1424 | ||
1415 | for (; i<14; i++) { | 1425 | for (i = netdev_mc_count(dev); i < 14; i++) { |
1416 | *suptr++ = 0xffff << FLT_SHIFT; | 1426 | *suptr++ = 0xffff << FLT_SHIFT; |
1417 | *suptr++ = 0xffff << FLT_SHIFT; | 1427 | *suptr++ = 0xffff << FLT_SHIFT; |
1418 | *suptr++ = 0xffff << FLT_SHIFT; | 1428 | *suptr++ = 0xffff << FLT_SHIFT; |
@@ -1432,7 +1442,7 @@ static void send_filter_frame(struct net_device *dev, int mc_cnt) | |||
1432 | update_cr6(db->cr6_data, dev->base_addr); | 1442 | update_cr6(db->cr6_data, dev->base_addr); |
1433 | dev->trans_start = jiffies; | 1443 | dev->trans_start = jiffies; |
1434 | } else | 1444 | } else |
1435 | printk(KERN_ERR DRV_NAME ": No Tx resource - Send_filter_frame!\n"); | 1445 | pr_err("No Tx resource - Send_filter_frame!\n"); |
1436 | } | 1446 | } |
1437 | 1447 | ||
1438 | 1448 | ||
@@ -1783,7 +1793,7 @@ static u16 phy_read_1bit(unsigned long ioaddr, u32 chip_id) | |||
1783 | } | 1793 | } |
1784 | 1794 | ||
1785 | 1795 | ||
1786 | static struct pci_device_id uli526x_pci_tbl[] = { | 1796 | static DEFINE_PCI_DEVICE_TABLE(uli526x_pci_tbl) = { |
1787 | { 0x10B9, 0x5261, PCI_ANY_ID, PCI_ANY_ID, 0, 0, PCI_ULI5261_ID }, | 1797 | { 0x10B9, 0x5261, PCI_ANY_ID, PCI_ANY_ID, 0, 0, PCI_ULI5261_ID }, |
1788 | { 0x10B9, 0x5263, PCI_ANY_ID, PCI_ANY_ID, 0, 0, PCI_ULI5263_ID }, | 1798 | { 0x10B9, 0x5263, PCI_ANY_ID, PCI_ANY_ID, 0, 0, PCI_ULI5263_ID }, |
1789 | { 0, } | 1799 | { 0, } |