aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/rrunner.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/rrunner.c')
-rw-r--r--drivers/net/rrunner.c55
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(&regs->HostCtrl)|HALT_NIC|RR_CLEAR_INT, 795 writel(readl(&regs->HostCtrl)|HALT_NIC|RR_CLEAR_INT,
797 &regs->HostCtrl); 796 &regs->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(&regs->HostCtrl)|HALT_NIC|RR_CLEAR_INT, 802 writel(readl(&regs->HostCtrl)|HALT_NIC|RR_CLEAR_INT,
804 &regs->HostCtrl); 803 &regs->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(&regs->HostCtrl)|HALT_NIC|RR_CLEAR_INT, 826 writel(readl(&regs->HostCtrl)|HALT_NIC|RR_CLEAR_INT,
828 &regs->HostCtrl); 827 &regs->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(&regs->HostCtrl)|HALT_NIC|RR_CLEAR_INT, 838 writel(readl(&regs->HostCtrl)|HALT_NIC|RR_CLEAR_INT,
840 &regs->HostCtrl); 839 &regs->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(&regs->HostCtrl)|HALT_NIC|RR_CLEAR_INT, 845 writel(readl(&regs->HostCtrl)|HALT_NIC|RR_CLEAR_INT,
847 &regs->HostCtrl); 846 &regs->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(&regs->HostCtrl)|HALT_NIC|RR_CLEAR_INT, 852 writel(readl(&regs->HostCtrl)|HALT_NIC|RR_CLEAR_INT,
854 &regs->HostCtrl); 853 &regs->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(&regs->HostCtrl)|HALT_NIC|RR_CLEAR_INT, 859 writel(readl(&regs->HostCtrl)|HALT_NIC|RR_CLEAR_INT,
861 &regs->HostCtrl); 860 &regs->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(&regs->HostCtrl)|HALT_NIC|RR_CLEAR_INT, 913 writel(readl(&regs->HostCtrl)|HALT_NIC|RR_CLEAR_INT,
915 &regs->HostCtrl); 914 &regs->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(&regs->HostCtrl)|HALT_NIC|RR_CLEAR_INT, 920 writel(readl(&regs->HostCtrl)|HALT_NIC|RR_CLEAR_INT,
922 &regs->HostCtrl); 921 &regs->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(&regs->HostCtrl)|HALT_NIC|RR_CLEAR_INT, 927 writel(readl(&regs->HostCtrl)|HALT_NIC|RR_CLEAR_INT,
929 &regs->HostCtrl); 928 &regs->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(&regs->HostCtrl)|HALT_NIC|RR_CLEAR_INT, 1202 writel(readl(&regs->HostCtrl)|HALT_NIC|RR_CLEAR_INT,
1204 &regs->HostCtrl); 1203 &regs->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(&regs->HostCtrl); 1252 readl(&regs->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(&regs->HostCtrl) & NIC_HALTED)){ 1529 if (!(readl(&regs->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
1738static int __init rr_init_module(void) 1737static 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
1743static void __exit rr_cleanup_module(void) 1742static void __exit rr_cleanup_module(void)