diff options
Diffstat (limited to 'drivers/net/via-rhine.c')
-rw-r--r-- | drivers/net/via-rhine.c | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/drivers/net/via-rhine.c b/drivers/net/via-rhine.c index 7b57d552094a..fc7738ffbfff 100644 --- a/drivers/net/via-rhine.c +++ b/drivers/net/via-rhine.c | |||
@@ -186,6 +186,7 @@ static const int multicast_filter_limit = 32; | |||
186 | #include <linux/slab.h> | 186 | #include <linux/slab.h> |
187 | #include <linux/interrupt.h> | 187 | #include <linux/interrupt.h> |
188 | #include <linux/pci.h> | 188 | #include <linux/pci.h> |
189 | #include <linux/dma-mapping.h> | ||
189 | #include <linux/netdevice.h> | 190 | #include <linux/netdevice.h> |
190 | #include <linux/etherdevice.h> | 191 | #include <linux/etherdevice.h> |
191 | #include <linux/skbuff.h> | 192 | #include <linux/skbuff.h> |
@@ -506,7 +507,7 @@ static struct net_device_stats *rhine_get_stats(struct net_device *dev); | |||
506 | static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); | 507 | static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); |
507 | static struct ethtool_ops netdev_ethtool_ops; | 508 | static struct ethtool_ops netdev_ethtool_ops; |
508 | static int rhine_close(struct net_device *dev); | 509 | static int rhine_close(struct net_device *dev); |
509 | static void rhine_shutdown (struct device *gdev); | 510 | static void rhine_shutdown (struct pci_dev *pdev); |
510 | 511 | ||
511 | #define RHINE_WAIT_FOR(condition) do { \ | 512 | #define RHINE_WAIT_FOR(condition) do { \ |
512 | int i=1024; \ | 513 | int i=1024; \ |
@@ -740,7 +741,7 @@ static int __devinit rhine_init_one(struct pci_dev *pdev, | |||
740 | goto err_out; | 741 | goto err_out; |
741 | 742 | ||
742 | /* this should always be supported */ | 743 | /* this should always be supported */ |
743 | rc = pci_set_dma_mask(pdev, 0xffffffff); | 744 | rc = pci_set_dma_mask(pdev, DMA_32BIT_MASK); |
744 | if (rc) { | 745 | if (rc) { |
745 | printk(KERN_ERR "32-bit PCI DMA addresses not supported by " | 746 | printk(KERN_ERR "32-bit PCI DMA addresses not supported by " |
746 | "the card!?\n"); | 747 | "the card!?\n"); |
@@ -989,7 +990,7 @@ static void alloc_rbufs(struct net_device *dev) | |||
989 | skb->dev = dev; /* Mark as being used by this device. */ | 990 | skb->dev = dev; /* Mark as being used by this device. */ |
990 | 991 | ||
991 | rp->rx_skbuff_dma[i] = | 992 | rp->rx_skbuff_dma[i] = |
992 | pci_map_single(rp->pdev, skb->tail, rp->rx_buf_sz, | 993 | pci_map_single(rp->pdev, skb->data, rp->rx_buf_sz, |
993 | PCI_DMA_FROMDEVICE); | 994 | PCI_DMA_FROMDEVICE); |
994 | 995 | ||
995 | rp->rx_ring[i].addr = cpu_to_le32(rp->rx_skbuff_dma[i]); | 996 | rp->rx_ring[i].addr = cpu_to_le32(rp->rx_skbuff_dma[i]); |
@@ -1397,7 +1398,7 @@ static void rhine_tx(struct net_device *dev) | |||
1397 | while (rp->dirty_tx != rp->cur_tx) { | 1398 | while (rp->dirty_tx != rp->cur_tx) { |
1398 | txstatus = le32_to_cpu(rp->tx_ring[entry].tx_status); | 1399 | txstatus = le32_to_cpu(rp->tx_ring[entry].tx_status); |
1399 | if (debug > 6) | 1400 | if (debug > 6) |
1400 | printk(KERN_DEBUG " Tx scavenge %d status %8.8x.\n", | 1401 | printk(KERN_DEBUG "Tx scavenge %d status %8.8x.\n", |
1401 | entry, txstatus); | 1402 | entry, txstatus); |
1402 | if (txstatus & DescOwn) | 1403 | if (txstatus & DescOwn) |
1403 | break; | 1404 | break; |
@@ -1468,7 +1469,7 @@ static void rhine_rx(struct net_device *dev) | |||
1468 | int data_size = desc_status >> 16; | 1469 | int data_size = desc_status >> 16; |
1469 | 1470 | ||
1470 | if (debug > 4) | 1471 | if (debug > 4) |
1471 | printk(KERN_DEBUG " rhine_rx() status is %8.8x.\n", | 1472 | printk(KERN_DEBUG "rhine_rx() status is %8.8x.\n", |
1472 | desc_status); | 1473 | desc_status); |
1473 | if (--boguscnt < 0) | 1474 | if (--boguscnt < 0) |
1474 | break; | 1475 | break; |
@@ -1486,7 +1487,7 @@ static void rhine_rx(struct net_device *dev) | |||
1486 | } else if (desc_status & RxErr) { | 1487 | } else if (desc_status & RxErr) { |
1487 | /* There was a error. */ | 1488 | /* There was a error. */ |
1488 | if (debug > 2) | 1489 | if (debug > 2) |
1489 | printk(KERN_DEBUG " rhine_rx() Rx " | 1490 | printk(KERN_DEBUG "rhine_rx() Rx " |
1490 | "error was %8.8x.\n", | 1491 | "error was %8.8x.\n", |
1491 | desc_status); | 1492 | desc_status); |
1492 | rp->stats.rx_errors++; | 1493 | rp->stats.rx_errors++; |
@@ -1517,7 +1518,7 @@ static void rhine_rx(struct net_device *dev) | |||
1517 | PCI_DMA_FROMDEVICE); | 1518 | PCI_DMA_FROMDEVICE); |
1518 | 1519 | ||
1519 | eth_copy_and_sum(skb, | 1520 | eth_copy_and_sum(skb, |
1520 | rp->rx_skbuff[entry]->tail, | 1521 | rp->rx_skbuff[entry]->data, |
1521 | pkt_len, 0); | 1522 | pkt_len, 0); |
1522 | skb_put(skb, pkt_len); | 1523 | skb_put(skb, pkt_len); |
1523 | pci_dma_sync_single_for_device(rp->pdev, | 1524 | pci_dma_sync_single_for_device(rp->pdev, |
@@ -1560,7 +1561,7 @@ static void rhine_rx(struct net_device *dev) | |||
1560 | break; /* Better luck next round. */ | 1561 | break; /* Better luck next round. */ |
1561 | skb->dev = dev; /* Mark as being used by this device. */ | 1562 | skb->dev = dev; /* Mark as being used by this device. */ |
1562 | rp->rx_skbuff_dma[entry] = | 1563 | rp->rx_skbuff_dma[entry] = |
1563 | pci_map_single(rp->pdev, skb->tail, | 1564 | pci_map_single(rp->pdev, skb->data, |
1564 | rp->rx_buf_sz, | 1565 | rp->rx_buf_sz, |
1565 | PCI_DMA_FROMDEVICE); | 1566 | PCI_DMA_FROMDEVICE); |
1566 | rp->rx_ring[entry].addr = cpu_to_le32(rp->rx_skbuff_dma[entry]); | 1567 | rp->rx_ring[entry].addr = cpu_to_le32(rp->rx_skbuff_dma[entry]); |
@@ -1894,9 +1895,8 @@ static void __devexit rhine_remove_one(struct pci_dev *pdev) | |||
1894 | pci_set_drvdata(pdev, NULL); | 1895 | pci_set_drvdata(pdev, NULL); |
1895 | } | 1896 | } |
1896 | 1897 | ||
1897 | static void rhine_shutdown (struct device *gendev) | 1898 | static void rhine_shutdown (struct pci_dev *pdev) |
1898 | { | 1899 | { |
1899 | struct pci_dev *pdev = to_pci_dev(gendev); | ||
1900 | struct net_device *dev = pci_get_drvdata(pdev); | 1900 | struct net_device *dev = pci_get_drvdata(pdev); |
1901 | struct rhine_private *rp = netdev_priv(dev); | 1901 | struct rhine_private *rp = netdev_priv(dev); |
1902 | void __iomem *ioaddr = rp->base; | 1902 | void __iomem *ioaddr = rp->base; |
@@ -1955,7 +1955,7 @@ static int rhine_suspend(struct pci_dev *pdev, pm_message_t state) | |||
1955 | pci_save_state(pdev); | 1955 | pci_save_state(pdev); |
1956 | 1956 | ||
1957 | spin_lock_irqsave(&rp->lock, flags); | 1957 | spin_lock_irqsave(&rp->lock, flags); |
1958 | rhine_shutdown(&pdev->dev); | 1958 | rhine_shutdown(pdev); |
1959 | spin_unlock_irqrestore(&rp->lock, flags); | 1959 | spin_unlock_irqrestore(&rp->lock, flags); |
1960 | 1960 | ||
1961 | free_irq(dev->irq, dev); | 1961 | free_irq(dev->irq, dev); |
@@ -2009,9 +2009,7 @@ static struct pci_driver rhine_driver = { | |||
2009 | .suspend = rhine_suspend, | 2009 | .suspend = rhine_suspend, |
2010 | .resume = rhine_resume, | 2010 | .resume = rhine_resume, |
2011 | #endif /* CONFIG_PM */ | 2011 | #endif /* CONFIG_PM */ |
2012 | .driver = { | 2012 | .shutdown = rhine_shutdown, |
2013 | .shutdown = rhine_shutdown, | ||
2014 | } | ||
2015 | }; | 2013 | }; |
2016 | 2014 | ||
2017 | 2015 | ||