diff options
Diffstat (limited to 'drivers/net/rrunner.c')
-rw-r--r-- | drivers/net/rrunner.c | 55 |
1 files changed, 27 insertions, 28 deletions
diff --git a/drivers/net/rrunner.c b/drivers/net/rrunner.c index 19c2df9c86f..6108bac8d56 100644 --- a/drivers/net/rrunner.c +++ b/drivers/net/rrunner.c | |||
@@ -28,7 +28,6 @@ | |||
28 | #define RX_DMA_SKBUFF 1 | 28 | #define RX_DMA_SKBUFF 1 |
29 | #define PKT_COPY_THRESHOLD 512 | 29 | #define PKT_COPY_THRESHOLD 512 |
30 | 30 | ||
31 | #include <linux/config.h> | ||
32 | #include <linux/module.h> | 31 | #include <linux/module.h> |
33 | #include <linux/types.h> | 32 | #include <linux/types.h> |
34 | #include <linux/errno.h> | 33 | #include <linux/errno.h> |
@@ -215,13 +214,13 @@ static int __devinit rr_init_one(struct pci_dev *pdev, | |||
215 | 214 | ||
216 | out: | 215 | out: |
217 | if (rrpriv->rx_ring) | 216 | if (rrpriv->rx_ring) |
218 | pci_free_consistent(pdev, RX_TOTAL_SIZE, rrpriv->rx_ring, | 217 | pci_free_consistent(pdev, RX_TOTAL_SIZE, rrpriv->rx_ring, |
219 | rrpriv->rx_ring_dma); | 218 | rrpriv->rx_ring_dma); |
220 | if (rrpriv->tx_ring) | 219 | if (rrpriv->tx_ring) |
221 | pci_free_consistent(pdev, TX_TOTAL_SIZE, rrpriv->tx_ring, | 220 | pci_free_consistent(pdev, TX_TOTAL_SIZE, rrpriv->tx_ring, |
222 | rrpriv->tx_ring_dma); | 221 | rrpriv->tx_ring_dma); |
223 | if (rrpriv->regs) | 222 | if (rrpriv->regs) |
224 | iounmap(rrpriv->regs); | 223 | iounmap(rrpriv->regs); |
225 | if (pdev) { | 224 | if (pdev) { |
226 | pci_release_regions(pdev); | 225 | pci_release_regions(pdev); |
227 | pci_set_drvdata(pdev, NULL); | 226 | pci_set_drvdata(pdev, NULL); |
@@ -560,7 +559,7 @@ static int __init rr_init(struct net_device *dev) | |||
560 | htons(rr_read_eeprom_word(rrpriv, &hw->manf.BoardULA)); | 559 | htons(rr_read_eeprom_word(rrpriv, &hw->manf.BoardULA)); |
561 | *(u32 *)(dev->dev_addr+2) = | 560 | *(u32 *)(dev->dev_addr+2) = |
562 | htonl(rr_read_eeprom_word(rrpriv, &hw->manf.BoardULA[4])); | 561 | htonl(rr_read_eeprom_word(rrpriv, &hw->manf.BoardULA[4])); |
563 | 562 | ||
564 | printk(" MAC: "); | 563 | printk(" MAC: "); |
565 | 564 | ||
566 | for (i = 0; i < 5; i++) | 565 | for (i = 0; i < 5; i++) |
@@ -737,8 +736,8 @@ static int rr_init1(struct net_device *dev) | |||
737 | struct sk_buff *skb = rrpriv->rx_skbuff[i]; | 736 | struct sk_buff *skb = rrpriv->rx_skbuff[i]; |
738 | 737 | ||
739 | if (skb) { | 738 | if (skb) { |
740 | pci_unmap_single(rrpriv->pci_dev, | 739 | pci_unmap_single(rrpriv->pci_dev, |
741 | rrpriv->rx_ring[i].addr.addrlo, | 740 | rrpriv->rx_ring[i].addr.addrlo, |
742 | dev->mtu + HIPPI_HLEN, | 741 | dev->mtu + HIPPI_HLEN, |
743 | PCI_DMA_FROMDEVICE); | 742 | PCI_DMA_FROMDEVICE); |
744 | rrpriv->rx_ring[i].size = 0; | 743 | rrpriv->rx_ring[i].size = 0; |
@@ -793,14 +792,14 @@ static u32 rr_handle_event(struct net_device *dev, u32 prodidx, u32 eidx) | |||
793 | case E_INTERN_ERR: | 792 | case E_INTERN_ERR: |
794 | printk(KERN_ERR "%s: HIPPI Internal NIC error\n", | 793 | printk(KERN_ERR "%s: HIPPI Internal NIC error\n", |
795 | dev->name); | 794 | dev->name); |
796 | writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT, | 795 | writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT, |
797 | ®s->HostCtrl); | 796 | ®s->HostCtrl); |
798 | wmb(); | 797 | wmb(); |
799 | break; | 798 | break; |
800 | case E_HOST_ERR: | 799 | case E_HOST_ERR: |
801 | printk(KERN_ERR "%s: Host software error\n", | 800 | printk(KERN_ERR "%s: Host software error\n", |
802 | dev->name); | 801 | dev->name); |
803 | writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT, | 802 | writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT, |
804 | ®s->HostCtrl); | 803 | ®s->HostCtrl); |
805 | wmb(); | 804 | wmb(); |
806 | break; | 805 | break; |
@@ -824,7 +823,7 @@ static u32 rr_handle_event(struct net_device *dev, u32 prodidx, u32 eidx) | |||
824 | case E_INT_PRTY: | 823 | case E_INT_PRTY: |
825 | printk(KERN_ERR "%s: HIPPI Internal Parity error\n", | 824 | printk(KERN_ERR "%s: HIPPI Internal Parity error\n", |
826 | dev->name); | 825 | dev->name); |
827 | writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT, | 826 | writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT, |
828 | ®s->HostCtrl); | 827 | ®s->HostCtrl); |
829 | wmb(); | 828 | wmb(); |
830 | break; | 829 | break; |
@@ -836,28 +835,28 @@ static u32 rr_handle_event(struct net_device *dev, u32 prodidx, u32 eidx) | |||
836 | printk(KERN_WARNING "%s: Link lost during transmit\n", | 835 | printk(KERN_WARNING "%s: Link lost during transmit\n", |
837 | dev->name); | 836 | dev->name); |
838 | rrpriv->stats.tx_aborted_errors++; | 837 | rrpriv->stats.tx_aborted_errors++; |
839 | writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT, | 838 | writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT, |
840 | ®s->HostCtrl); | 839 | ®s->HostCtrl); |
841 | wmb(); | 840 | wmb(); |
842 | break; | 841 | break; |
843 | case E_TX_INV_RNG: | 842 | case E_TX_INV_RNG: |
844 | printk(KERN_ERR "%s: Invalid send ring block\n", | 843 | printk(KERN_ERR "%s: Invalid send ring block\n", |
845 | dev->name); | 844 | dev->name); |
846 | writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT, | 845 | writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT, |
847 | ®s->HostCtrl); | 846 | ®s->HostCtrl); |
848 | wmb(); | 847 | wmb(); |
849 | break; | 848 | break; |
850 | case E_TX_INV_BUF: | 849 | case E_TX_INV_BUF: |
851 | printk(KERN_ERR "%s: Invalid send buffer address\n", | 850 | printk(KERN_ERR "%s: Invalid send buffer address\n", |
852 | dev->name); | 851 | dev->name); |
853 | writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT, | 852 | writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT, |
854 | ®s->HostCtrl); | 853 | ®s->HostCtrl); |
855 | wmb(); | 854 | wmb(); |
856 | break; | 855 | break; |
857 | case E_TX_INV_DSC: | 856 | case E_TX_INV_DSC: |
858 | printk(KERN_ERR "%s: Invalid descriptor address\n", | 857 | printk(KERN_ERR "%s: Invalid descriptor address\n", |
859 | dev->name); | 858 | dev->name); |
860 | writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT, | 859 | writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT, |
861 | ®s->HostCtrl); | 860 | ®s->HostCtrl); |
862 | wmb(); | 861 | wmb(); |
863 | break; | 862 | break; |
@@ -911,21 +910,21 @@ static u32 rr_handle_event(struct net_device *dev, u32 prodidx, u32 eidx) | |||
911 | case E_RX_INV_BUF: | 910 | case E_RX_INV_BUF: |
912 | printk(KERN_ERR "%s: Invalid receive buffer " | 911 | printk(KERN_ERR "%s: Invalid receive buffer " |
913 | "address\n", dev->name); | 912 | "address\n", dev->name); |
914 | writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT, | 913 | writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT, |
915 | ®s->HostCtrl); | 914 | ®s->HostCtrl); |
916 | wmb(); | 915 | wmb(); |
917 | break; | 916 | break; |
918 | case E_RX_INV_DSC: | 917 | case E_RX_INV_DSC: |
919 | printk(KERN_ERR "%s: Invalid receive descriptor " | 918 | printk(KERN_ERR "%s: Invalid receive descriptor " |
920 | "address\n", dev->name); | 919 | "address\n", dev->name); |
921 | writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT, | 920 | writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT, |
922 | ®s->HostCtrl); | 921 | ®s->HostCtrl); |
923 | wmb(); | 922 | wmb(); |
924 | break; | 923 | break; |
925 | case E_RNG_BLK: | 924 | case E_RNG_BLK: |
926 | printk(KERN_ERR "%s: Invalid ring block\n", | 925 | printk(KERN_ERR "%s: Invalid ring block\n", |
927 | dev->name); | 926 | dev->name); |
928 | writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT, | 927 | writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT, |
929 | ®s->HostCtrl); | 928 | ®s->HostCtrl); |
930 | wmb(); | 929 | wmb(); |
931 | break; | 930 | break; |
@@ -1012,15 +1011,15 @@ static void rx_int(struct net_device *dev, u32 rxlimit, u32 index) | |||
1012 | if (newskb){ | 1011 | if (newskb){ |
1013 | dma_addr_t addr; | 1012 | dma_addr_t addr; |
1014 | 1013 | ||
1015 | pci_unmap_single(rrpriv->pci_dev, | 1014 | pci_unmap_single(rrpriv->pci_dev, |
1016 | desc->addr.addrlo, dev->mtu + | 1015 | desc->addr.addrlo, dev->mtu + |
1017 | HIPPI_HLEN, PCI_DMA_FROMDEVICE); | 1016 | HIPPI_HLEN, PCI_DMA_FROMDEVICE); |
1018 | skb = rx_skb; | 1017 | skb = rx_skb; |
1019 | skb_put(skb, pkt_len); | 1018 | skb_put(skb, pkt_len); |
1020 | rrpriv->rx_skbuff[index] = newskb; | 1019 | rrpriv->rx_skbuff[index] = newskb; |
1021 | addr = pci_map_single(rrpriv->pci_dev, | 1020 | addr = pci_map_single(rrpriv->pci_dev, |
1022 | newskb->data, | 1021 | newskb->data, |
1023 | dev->mtu + HIPPI_HLEN, | 1022 | dev->mtu + HIPPI_HLEN, |
1024 | PCI_DMA_FROMDEVICE); | 1023 | PCI_DMA_FROMDEVICE); |
1025 | set_rraddr(&desc->addr, addr); | 1024 | set_rraddr(&desc->addr, addr); |
1026 | } else { | 1025 | } else { |
@@ -1200,7 +1199,7 @@ static void rr_timer(unsigned long data) | |||
1200 | 1199 | ||
1201 | if (rr_init1(dev)) { | 1200 | if (rr_init1(dev)) { |
1202 | spin_lock_irqsave(&rrpriv->lock, flags); | 1201 | spin_lock_irqsave(&rrpriv->lock, flags); |
1203 | writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT, | 1202 | writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT, |
1204 | ®s->HostCtrl); | 1203 | ®s->HostCtrl); |
1205 | spin_unlock_irqrestore(&rrpriv->lock, flags); | 1204 | spin_unlock_irqrestore(&rrpriv->lock, flags); |
1206 | } | 1205 | } |
@@ -1253,7 +1252,7 @@ static int rr_open(struct net_device *dev) | |||
1253 | readl(®s->HostCtrl); | 1252 | readl(®s->HostCtrl); |
1254 | spin_unlock_irqrestore(&rrpriv->lock, flags); | 1253 | spin_unlock_irqrestore(&rrpriv->lock, flags); |
1255 | 1254 | ||
1256 | if (request_irq(dev->irq, rr_interrupt, SA_SHIRQ, dev->name, dev)) { | 1255 | if (request_irq(dev->irq, rr_interrupt, IRQF_SHARED, dev->name, dev)) { |
1257 | printk(KERN_WARNING "%s: Requested IRQ %d is busy\n", | 1256 | printk(KERN_WARNING "%s: Requested IRQ %d is busy\n", |
1258 | dev->name, dev->irq); | 1257 | dev->name, dev->irq); |
1259 | ecode = -EAGAIN; | 1258 | ecode = -EAGAIN; |
@@ -1292,7 +1291,7 @@ static int rr_open(struct net_device *dev) | |||
1292 | } | 1291 | } |
1293 | 1292 | ||
1294 | netif_stop_queue(dev); | 1293 | netif_stop_queue(dev); |
1295 | 1294 | ||
1296 | return ecode; | 1295 | return ecode; |
1297 | } | 1296 | } |
1298 | 1297 | ||
@@ -1528,7 +1527,7 @@ static int rr_load_firmware(struct net_device *dev) | |||
1528 | return -EBUSY; | 1527 | return -EBUSY; |
1529 | 1528 | ||
1530 | if (!(readl(®s->HostCtrl) & NIC_HALTED)){ | 1529 | if (!(readl(®s->HostCtrl) & NIC_HALTED)){ |
1531 | printk("%s: Trying to load firmware to a running NIC.\n", | 1530 | printk("%s: Trying to load firmware to a running NIC.\n", |
1532 | dev->name); | 1531 | dev->name); |
1533 | return -EBUSY; | 1532 | return -EBUSY; |
1534 | } | 1533 | } |
@@ -1661,7 +1660,7 @@ static int rr_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) | |||
1661 | gf_out: | 1660 | gf_out: |
1662 | kfree(image); | 1661 | kfree(image); |
1663 | return error; | 1662 | return error; |
1664 | 1663 | ||
1665 | case SIOCRRPFW: | 1664 | case SIOCRRPFW: |
1666 | if (!capable(CAP_SYS_RAWIO)){ | 1665 | if (!capable(CAP_SYS_RAWIO)){ |
1667 | return -EPERM; | 1666 | return -EPERM; |
@@ -1713,7 +1712,7 @@ static int rr_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) | |||
1713 | kfree(oldimage); | 1712 | kfree(oldimage); |
1714 | kfree(image); | 1713 | kfree(image); |
1715 | return error; | 1714 | return error; |
1716 | 1715 | ||
1717 | case SIOCRRID: | 1716 | case SIOCRRID: |
1718 | return put_user(0x52523032, (int __user *)rq->ifr_data); | 1717 | return put_user(0x52523032, (int __user *)rq->ifr_data); |
1719 | default: | 1718 | default: |
@@ -1737,7 +1736,7 @@ static struct pci_driver rr_driver = { | |||
1737 | 1736 | ||
1738 | static int __init rr_init_module(void) | 1737 | static int __init rr_init_module(void) |
1739 | { | 1738 | { |
1740 | return pci_module_init(&rr_driver); | 1739 | return pci_register_driver(&rr_driver); |
1741 | } | 1740 | } |
1742 | 1741 | ||
1743 | static void __exit rr_cleanup_module(void) | 1742 | static void __exit rr_cleanup_module(void) |