aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/tulip/dmfe.c
diff options
context:
space:
mode:
authorGlenn Elliott <gelliott@cs.unc.edu>2012-03-04 19:47:13 -0500
committerGlenn Elliott <gelliott@cs.unc.edu>2012-03-04 19:47:13 -0500
commitc71c03bda1e86c9d5198c5d83f712e695c4f2a1e (patch)
treeecb166cb3e2b7e2adb3b5e292245fefd23381ac8 /drivers/net/tulip/dmfe.c
parentea53c912f8a86a8567697115b6a0d8152beee5c8 (diff)
parent6a00f206debf8a5c8899055726ad127dbeeed098 (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.c23
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 ----------------------------- */
296static int __devinitdata printed_version; 296static int __devinitdata printed_version;
297static const char version[] __devinitconst = 297static 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
301static int dmfe_debug; 300static int dmfe_debug;
302static unsigned char dmfe_media_mode = DMFE_AUTO; 301static 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);