diff options
author | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
---|---|---|
committer | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
commit | c71c03bda1e86c9d5198c5d83f712e695c4f2a1e (patch) | |
tree | ecb166cb3e2b7e2adb3b5e292245fefd23381ac8 /drivers/net/tulip/dmfe.c | |
parent | ea53c912f8a86a8567697115b6a0d8152beee5c8 (diff) | |
parent | 6a00f206debf8a5c8899055726ad127dbeeed098 (diff) |
Merge branch 'mpi-master' into wip-k-fmlpwip-k-fmlp
Conflicts:
litmus/sched_cedf.c
Diffstat (limited to 'drivers/net/tulip/dmfe.c')
-rw-r--r-- | drivers/net/tulip/dmfe.c | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/drivers/net/tulip/dmfe.c b/drivers/net/tulip/dmfe.c index 0bc4f3030a80..9a21ca3873fc 100644 --- a/drivers/net/tulip/dmfe.c +++ b/drivers/net/tulip/dmfe.c | |||
@@ -295,8 +295,7 @@ enum dmfe_CR6_bits { | |||
295 | /* Global variable declaration ----------------------------- */ | 295 | /* Global variable declaration ----------------------------- */ |
296 | static int __devinitdata printed_version; | 296 | static int __devinitdata printed_version; |
297 | static const char version[] __devinitconst = | 297 | static const char version[] __devinitconst = |
298 | KERN_INFO DRV_NAME ": Davicom DM9xxx net driver, version " | 298 | "Davicom DM9xxx net driver, version " DRV_VERSION " (" DRV_RELDATE ")"; |
299 | DRV_VERSION " (" DRV_RELDATE ")\n"; | ||
300 | 299 | ||
301 | static int dmfe_debug; | 300 | static int dmfe_debug; |
302 | static unsigned char dmfe_media_mode = DMFE_AUTO; | 301 | static unsigned char dmfe_media_mode = DMFE_AUTO; |
@@ -381,7 +380,7 @@ static int __devinit dmfe_init_one (struct pci_dev *pdev, | |||
381 | DMFE_DBUG(0, "dmfe_init_one()", 0); | 380 | DMFE_DBUG(0, "dmfe_init_one()", 0); |
382 | 381 | ||
383 | if (!printed_version++) | 382 | if (!printed_version++) |
384 | printk(version); | 383 | pr_info("%s\n", version); |
385 | 384 | ||
386 | /* | 385 | /* |
387 | * SPARC on-board DM910x chips should be handled by the main | 386 | * SPARC on-board DM910x chips should be handled by the main |
@@ -406,7 +405,7 @@ static int __devinit dmfe_init_one (struct pci_dev *pdev, | |||
406 | SET_NETDEV_DEV(dev, &pdev->dev); | 405 | SET_NETDEV_DEV(dev, &pdev->dev); |
407 | 406 | ||
408 | if (pci_set_dma_mask(pdev, DMA_BIT_MASK(32))) { | 407 | if (pci_set_dma_mask(pdev, DMA_BIT_MASK(32))) { |
409 | pr_warning("32-bit PCI DMA not available\n"); | 408 | pr_warn("32-bit PCI DMA not available\n"); |
410 | err = -ENODEV; | 409 | err = -ENODEV; |
411 | goto err_out_free; | 410 | goto err_out_free; |
412 | } | 411 | } |
@@ -599,7 +598,7 @@ static int dmfe_open(struct DEVICE *dev) | |||
599 | init_timer(&db->timer); | 598 | init_timer(&db->timer); |
600 | db->timer.expires = DMFE_TIMER_WUT + HZ * 2; | 599 | db->timer.expires = DMFE_TIMER_WUT + HZ * 2; |
601 | db->timer.data = (unsigned long)dev; | 600 | db->timer.data = (unsigned long)dev; |
602 | db->timer.function = &dmfe_timer; | 601 | db->timer.function = dmfe_timer; |
603 | add_timer(&db->timer); | 602 | add_timer(&db->timer); |
604 | 603 | ||
605 | return 0; | 604 | return 0; |
@@ -688,9 +687,6 @@ static netdev_tx_t dmfe_start_xmit(struct sk_buff *skb, | |||
688 | 687 | ||
689 | DMFE_DBUG(0, "dmfe_start_xmit", 0); | 688 | DMFE_DBUG(0, "dmfe_start_xmit", 0); |
690 | 689 | ||
691 | /* Resource flag check */ | ||
692 | netif_stop_queue(dev); | ||
693 | |||
694 | /* Too large packet check */ | 690 | /* Too large packet check */ |
695 | if (skb->len > MAX_PACKET_SIZE) { | 691 | if (skb->len > MAX_PACKET_SIZE) { |
696 | pr_err("big packet = %d\n", (u16)skb->len); | 692 | pr_err("big packet = %d\n", (u16)skb->len); |
@@ -698,6 +694,9 @@ static netdev_tx_t dmfe_start_xmit(struct sk_buff *skb, | |||
698 | return NETDEV_TX_OK; | 694 | return NETDEV_TX_OK; |
699 | } | 695 | } |
700 | 696 | ||
697 | /* Resource flag check */ | ||
698 | netif_stop_queue(dev); | ||
699 | |||
701 | spin_lock_irqsave(&db->lock, flags); | 700 | spin_lock_irqsave(&db->lock, flags); |
702 | 701 | ||
703 | /* No Tx resource check, it never happen nromally */ | 702 | /* No Tx resource check, it never happen nromally */ |
@@ -880,7 +879,6 @@ static void dmfe_free_tx_pkt(struct DEVICE *dev, struct dmfe_board_info * db) | |||
880 | txptr = db->tx_remove_ptr; | 879 | txptr = db->tx_remove_ptr; |
881 | while(db->tx_packet_cnt) { | 880 | while(db->tx_packet_cnt) { |
882 | tdes0 = le32_to_cpu(txptr->tdes0); | 881 | tdes0 = le32_to_cpu(txptr->tdes0); |
883 | pr_debug("tdes0=%x\n", tdes0); | ||
884 | if (tdes0 & 0x80000000) | 882 | if (tdes0 & 0x80000000) |
885 | break; | 883 | break; |
886 | 884 | ||
@@ -890,7 +888,6 @@ static void dmfe_free_tx_pkt(struct DEVICE *dev, struct dmfe_board_info * db) | |||
890 | 888 | ||
891 | /* Transmit statistic counter */ | 889 | /* Transmit statistic counter */ |
892 | if ( tdes0 != 0x7fffffff ) { | 890 | if ( tdes0 != 0x7fffffff ) { |
893 | pr_debug("tdes0=%x\n", tdes0); | ||
894 | dev->stats.collisions += (tdes0 >> 3) & 0xf; | 891 | dev->stats.collisions += (tdes0 >> 3) & 0xf; |
895 | dev->stats.tx_bytes += le32_to_cpu(txptr->tdes1) & 0x7ff; | 892 | dev->stats.tx_bytes += le32_to_cpu(txptr->tdes1) & 0x7ff; |
896 | if (tdes0 & TDES0_ERR_MASK) { | 893 | if (tdes0 & TDES0_ERR_MASK) { |
@@ -987,7 +984,6 @@ static void dmfe_rx_packet(struct DEVICE *dev, struct dmfe_board_info * db) | |||
987 | /* error summary bit check */ | 984 | /* error summary bit check */ |
988 | if (rdes0 & 0x8000) { | 985 | if (rdes0 & 0x8000) { |
989 | /* This is a error packet */ | 986 | /* This is a error packet */ |
990 | pr_debug("rdes0: %x\n", rdes0); | ||
991 | dev->stats.rx_errors++; | 987 | dev->stats.rx_errors++; |
992 | if (rdes0 & 1) | 988 | if (rdes0 & 1) |
993 | dev->stats.rx_fifo_errors++; | 989 | dev->stats.rx_fifo_errors++; |
@@ -1224,7 +1220,7 @@ static void dmfe_timer(unsigned long data) | |||
1224 | 1220 | ||
1225 | 1221 | ||
1226 | /* If chip reports that link is failed it could be because external | 1222 | /* If chip reports that link is failed it could be because external |
1227 | PHY link status pin is not conected correctly to chip | 1223 | PHY link status pin is not connected correctly to chip |
1228 | To be sure ask PHY too. | 1224 | To be sure ask PHY too. |
1229 | */ | 1225 | */ |
1230 | 1226 | ||
@@ -1639,7 +1635,6 @@ static u8 dmfe_sense_speed(struct dmfe_board_info * db) | |||
1639 | else /* DM9102/DM9102A */ | 1635 | else /* DM9102/DM9102A */ |
1640 | phy_mode = phy_read(db->ioaddr, | 1636 | phy_mode = phy_read(db->ioaddr, |
1641 | db->phy_addr, 17, db->chip_id) & 0xf000; | 1637 | db->phy_addr, 17, db->chip_id) & 0xf000; |
1642 | pr_debug("Phy_mode %x\n", phy_mode); | ||
1643 | switch (phy_mode) { | 1638 | switch (phy_mode) { |
1644 | case 0x1000: db->op_mode = DMFE_10MHF; break; | 1639 | case 0x1000: db->op_mode = DMFE_10MHF; break; |
1645 | case 0x2000: db->op_mode = DMFE_10MFD; break; | 1640 | case 0x2000: db->op_mode = DMFE_10MFD; break; |
@@ -2203,7 +2198,7 @@ static int __init dmfe_init_module(void) | |||
2203 | { | 2198 | { |
2204 | int rc; | 2199 | int rc; |
2205 | 2200 | ||
2206 | printk(version); | 2201 | pr_info("%s\n", version); |
2207 | printed_version = 1; | 2202 | printed_version = 1; |
2208 | 2203 | ||
2209 | DMFE_DBUG(0, "init_module() ", debug); | 2204 | DMFE_DBUG(0, "init_module() ", debug); |