git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge to kernel-2.6.20-1.2949.fc6.vs2.2.0.1
[linux-2.6.git]
/
drivers
/
net
/
rrunner.c
diff --git
a/drivers/net/rrunner.c
b/drivers/net/rrunner.c
index
402f779
..
d81536f
100644
(file)
--- a/
drivers/net/rrunner.c
+++ b/
drivers/net/rrunner.c
@@
-28,7
+28,6
@@
#define RX_DMA_SKBUFF 1
#define PKT_COPY_THRESHOLD 512
#define RX_DMA_SKBUFF 1
#define PKT_COPY_THRESHOLD 512
-#include <linux/config.h>
#include <linux/module.h>
#include <linux/types.h>
#include <linux/errno.h>
#include <linux/module.h>
#include <linux/types.h>
#include <linux/errno.h>
@@
-62,7
+61,7
@@
MODULE_AUTHOR("Jes Sorensen <jes@wildopensource.com>");
MODULE_DESCRIPTION("Essential RoadRunner HIPPI driver");
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("Essential RoadRunner HIPPI driver");
MODULE_LICENSE("GPL");
-static char version[] __initdata = "rrunner.c: v0.50 11/11/2002 Jes Sorensen (jes@wildopensource.com)\n";
+static char version[] __
dev
initdata = "rrunner.c: v0.50 11/11/2002 Jes Sorensen (jes@wildopensource.com)\n";
/*
* Implementation notes:
/*
* Implementation notes:
@@
-157,7
+156,7
@@
static int __devinit rr_init_one(struct pci_dev *pdev,
* Remap the regs into kernel space.
*/
* Remap the regs into kernel space.
*/
- rrpriv->regs =
(struct rr_regs *)
ioremap(dev->base_addr, 0x1000);
+ rrpriv->regs = ioremap(dev->base_addr, 0x1000);
if (!rrpriv->regs){
printk(KERN_ERR "%s: Unable to map I/O register, "
if (!rrpriv->regs){
printk(KERN_ERR "%s: Unable to map I/O register, "
@@
-215,13
+214,13
@@
static int __devinit rr_init_one(struct pci_dev *pdev,
out:
if (rrpriv->rx_ring)
out:
if (rrpriv->rx_ring)
- pci_free_consistent(pdev, RX_TOTAL_SIZE, rrpriv->rx_ring,
+ pci_free_consistent(pdev, RX_TOTAL_SIZE, rrpriv->rx_ring,
rrpriv->rx_ring_dma);
if (rrpriv->tx_ring)
pci_free_consistent(pdev, TX_TOTAL_SIZE, rrpriv->tx_ring,
rrpriv->tx_ring_dma);
if (rrpriv->regs)
rrpriv->rx_ring_dma);
if (rrpriv->tx_ring)
pci_free_consistent(pdev, TX_TOTAL_SIZE, rrpriv->tx_ring,
rrpriv->tx_ring_dma);
if (rrpriv->regs)
- iounmap(rrpriv->regs);
+ iounmap(rrpriv->regs);
if (pdev) {
pci_release_regions(pdev);
pci_set_drvdata(pdev, NULL);
if (pdev) {
pci_release_regions(pdev);
pci_set_drvdata(pdev, NULL);
@@
-267,7
+266,7
@@
static void __devexit rr_remove_one (struct pci_dev *pdev)
*/
static void rr_issue_cmd(struct rr_private *rrpriv, struct cmd *cmd)
{
*/
static void rr_issue_cmd(struct rr_private *rrpriv, struct cmd *cmd)
{
- struct rr_regs *regs;
+ struct rr_regs
__iomem
*regs;
u32 idx;
regs = rrpriv->regs;
u32 idx;
regs = rrpriv->regs;
@@
-304,7
+303,7
@@
static void rr_issue_cmd(struct rr_private *rrpriv, struct cmd *cmd)
static int rr_reset(struct net_device *dev)
{
struct rr_private *rrpriv;
static int rr_reset(struct net_device *dev)
{
struct rr_private *rrpriv;
- struct rr_regs *regs;
+ struct rr_regs
__iomem
*regs;
struct eeprom *hw = NULL;
u32 start_pc;
int i;
struct eeprom *hw = NULL;
u32 start_pc;
int i;
@@
-418,7
+417,7
@@
static unsigned int rr_read_eeprom(struct rr_private *rrpriv,
unsigned char *buf,
unsigned long length)
{
unsigned char *buf,
unsigned long length)
{
- struct rr_regs *regs = rrpriv->regs;
+ struct rr_regs
__iomem
*regs = rrpriv->regs;
u32 misc, io, host, i;
io = readl(®s->ExtIo);
u32 misc, io, host, i;
io = readl(®s->ExtIo);
@@
-470,7
+469,7
@@
static unsigned int write_eeprom(struct rr_private *rrpriv,
unsigned char *buf,
unsigned long length)
{
unsigned char *buf,
unsigned long length)
{
- struct rr_regs *regs = rrpriv->regs;
+ struct rr_regs
__iomem
*regs = rrpriv->regs;
u32 misc, io, data, i, j, ready, error = 0;
io = readl(®s->ExtIo);
u32 misc, io, data, i, j, ready, error = 0;
io = readl(®s->ExtIo);
@@
-520,7
+519,7
@@
static unsigned int write_eeprom(struct rr_private *rrpriv,
static int __init rr_init(struct net_device *dev)
{
struct rr_private *rrpriv;
static int __init rr_init(struct net_device *dev)
{
struct rr_private *rrpriv;
- struct rr_regs *regs;
+ struct rr_regs
__iomem
*regs;
struct eeprom *hw = NULL;
u32 sram_size, rev;
int i;
struct eeprom *hw = NULL;
u32 sram_size, rev;
int i;
@@
-560,7
+559,7
@@
static int __init rr_init(struct net_device *dev)
htons(rr_read_eeprom_word(rrpriv, &hw->manf.BoardULA));
*(u32 *)(dev->dev_addr+2) =
htonl(rr_read_eeprom_word(rrpriv, &hw->manf.BoardULA[4]));
htons(rr_read_eeprom_word(rrpriv, &hw->manf.BoardULA));
*(u32 *)(dev->dev_addr+2) =
htonl(rr_read_eeprom_word(rrpriv, &hw->manf.BoardULA[4]));
-
+
printk(" MAC: ");
for (i = 0; i < 5; i++)
printk(" MAC: ");
for (i = 0; i < 5; i++)
@@
-589,7
+588,7
@@
static int __init rr_init(struct net_device *dev)
static int rr_init1(struct net_device *dev)
{
struct rr_private *rrpriv;
static int rr_init1(struct net_device *dev)
{
struct rr_private *rrpriv;
- struct rr_regs *regs;
+ struct rr_regs
__iomem
*regs;
unsigned long myjif, flags;
struct cmd cmd;
u32 hostctrl;
unsigned long myjif, flags;
struct cmd cmd;
u32 hostctrl;
@@
-737,8
+736,8
@@
static int rr_init1(struct net_device *dev)
struct sk_buff *skb = rrpriv->rx_skbuff[i];
if (skb) {
struct sk_buff *skb = rrpriv->rx_skbuff[i];
if (skb) {
- pci_unmap_single(rrpriv->pci_dev,
- rrpriv->rx_ring[i].addr.addrlo,
+ pci_unmap_single(rrpriv->pci_dev,
+ rrpriv->rx_ring[i].addr.addrlo,
dev->mtu + HIPPI_HLEN,
PCI_DMA_FROMDEVICE);
rrpriv->rx_ring[i].size = 0;
dev->mtu + HIPPI_HLEN,
PCI_DMA_FROMDEVICE);
rrpriv->rx_ring[i].size = 0;
@@
-759,7
+758,7
@@
static int rr_init1(struct net_device *dev)
static u32 rr_handle_event(struct net_device *dev, u32 prodidx, u32 eidx)
{
struct rr_private *rrpriv;
static u32 rr_handle_event(struct net_device *dev, u32 prodidx, u32 eidx)
{
struct rr_private *rrpriv;
- struct rr_regs *regs;
+ struct rr_regs
__iomem
*regs;
u32 tmp;
rrpriv = netdev_priv(dev);
u32 tmp;
rrpriv = netdev_priv(dev);
@@
-793,14
+792,14
@@
static u32 rr_handle_event(struct net_device *dev, u32 prodidx, u32 eidx)
case E_INTERN_ERR:
printk(KERN_ERR "%s: HIPPI Internal NIC error\n",
dev->name);
case E_INTERN_ERR:
printk(KERN_ERR "%s: HIPPI Internal NIC error\n",
dev->name);
- writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT,
+ writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT,
®s->HostCtrl);
wmb();
break;
case E_HOST_ERR:
printk(KERN_ERR "%s: Host software error\n",
dev->name);
®s->HostCtrl);
wmb();
break;
case E_HOST_ERR:
printk(KERN_ERR "%s: Host software error\n",
dev->name);
- writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT,
+ writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT,
®s->HostCtrl);
wmb();
break;
®s->HostCtrl);
wmb();
break;
@@
-824,7
+823,7
@@
static u32 rr_handle_event(struct net_device *dev, u32 prodidx, u32 eidx)
case E_INT_PRTY:
printk(KERN_ERR "%s: HIPPI Internal Parity error\n",
dev->name);
case E_INT_PRTY:
printk(KERN_ERR "%s: HIPPI Internal Parity error\n",
dev->name);
- writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT,
+ writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT,
®s->HostCtrl);
wmb();
break;
®s->HostCtrl);
wmb();
break;
@@
-836,28
+835,28
@@
static u32 rr_handle_event(struct net_device *dev, u32 prodidx, u32 eidx)
printk(KERN_WARNING "%s: Link lost during transmit\n",
dev->name);
rrpriv->stats.tx_aborted_errors++;
printk(KERN_WARNING "%s: Link lost during transmit\n",
dev->name);
rrpriv->stats.tx_aborted_errors++;
- writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT,
+ writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT,
®s->HostCtrl);
wmb();
break;
case E_TX_INV_RNG:
printk(KERN_ERR "%s: Invalid send ring block\n",
dev->name);
®s->HostCtrl);
wmb();
break;
case E_TX_INV_RNG:
printk(KERN_ERR "%s: Invalid send ring block\n",
dev->name);
- writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT,
+ writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT,
®s->HostCtrl);
wmb();
break;
case E_TX_INV_BUF:
printk(KERN_ERR "%s: Invalid send buffer address\n",
dev->name);
®s->HostCtrl);
wmb();
break;
case E_TX_INV_BUF:
printk(KERN_ERR "%s: Invalid send buffer address\n",
dev->name);
- writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT,
+ writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT,
®s->HostCtrl);
wmb();
break;
case E_TX_INV_DSC:
printk(KERN_ERR "%s: Invalid descriptor address\n",
dev->name);
®s->HostCtrl);
wmb();
break;
case E_TX_INV_DSC:
printk(KERN_ERR "%s: Invalid descriptor address\n",
dev->name);
- writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT,
+ writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT,
®s->HostCtrl);
wmb();
break;
®s->HostCtrl);
wmb();
break;
@@
-911,21
+910,21
@@
static u32 rr_handle_event(struct net_device *dev, u32 prodidx, u32 eidx)
case E_RX_INV_BUF:
printk(KERN_ERR "%s: Invalid receive buffer "
"address\n", dev->name);
case E_RX_INV_BUF:
printk(KERN_ERR "%s: Invalid receive buffer "
"address\n", dev->name);
- writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT,
+ writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT,
®s->HostCtrl);
wmb();
break;
case E_RX_INV_DSC:
printk(KERN_ERR "%s: Invalid receive descriptor "
"address\n", dev->name);
®s->HostCtrl);
wmb();
break;
case E_RX_INV_DSC:
printk(KERN_ERR "%s: Invalid receive descriptor "
"address\n", dev->name);
- writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT,
+ writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT,
®s->HostCtrl);
wmb();
break;
case E_RNG_BLK:
printk(KERN_ERR "%s: Invalid ring block\n",
dev->name);
®s->HostCtrl);
wmb();
break;
case E_RNG_BLK:
printk(KERN_ERR "%s: Invalid ring block\n",
dev->name);
- writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT,
+ writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT,
®s->HostCtrl);
wmb();
break;
®s->HostCtrl);
wmb();
break;
@@
-962,7
+961,7
@@
static u32 rr_handle_event(struct net_device *dev, u32 prodidx, u32 eidx)
static void rx_int(struct net_device *dev, u32 rxlimit, u32 index)
{
struct rr_private *rrpriv = netdev_priv(dev);
static void rx_int(struct net_device *dev, u32 rxlimit, u32 index)
{
struct rr_private *rrpriv = netdev_priv(dev);
- struct rr_regs *regs = rrpriv->regs;
+ struct rr_regs
__iomem
*regs = rrpriv->regs;
do {
struct rx_desc *desc;
do {
struct rx_desc *desc;
@@
-1012,15
+1011,15
@@
static void rx_int(struct net_device *dev, u32 rxlimit, u32 index)
if (newskb){
dma_addr_t addr;
if (newskb){
dma_addr_t addr;
- pci_unmap_single(rrpriv->pci_dev,
- desc->addr.addrlo, dev->mtu +
+ pci_unmap_single(rrpriv->pci_dev,
+ desc->addr.addrlo, dev->mtu +
HIPPI_HLEN, PCI_DMA_FROMDEVICE);
skb = rx_skb;
skb_put(skb, pkt_len);
rrpriv->rx_skbuff[index] = newskb;
HIPPI_HLEN, PCI_DMA_FROMDEVICE);
skb = rx_skb;
skb_put(skb, pkt_len);
rrpriv->rx_skbuff[index] = newskb;
- addr = pci_map_single(rrpriv->pci_dev,
- newskb->data,
- dev->mtu + HIPPI_HLEN,
+ addr = pci_map_single(rrpriv->pci_dev,
+ newskb->data,
+ dev->mtu + HIPPI_HLEN,
PCI_DMA_FROMDEVICE);
set_rraddr(&desc->addr, addr);
} else {
PCI_DMA_FROMDEVICE);
set_rraddr(&desc->addr, addr);
} else {
@@
-1054,10
+1053,10
@@
static void rx_int(struct net_device *dev, u32 rxlimit, u32 index)
}
}
-static irqreturn_t rr_interrupt(int irq, void *dev_id
, struct pt_regs *ptregs
)
+static irqreturn_t rr_interrupt(int irq, void *dev_id)
{
struct rr_private *rrpriv;
{
struct rr_private *rrpriv;
- struct rr_regs *regs;
+ struct rr_regs
__iomem
*regs;
struct net_device *dev = (struct net_device *)dev_id;
u32 prodidx, rxindex, eidx, txcsmr, rxlimit, txcon;
struct net_device *dev = (struct net_device *)dev_id;
u32 prodidx, rxindex, eidx, txcsmr, rxlimit, txcon;
@@
-1186,7
+1185,7
@@
static void rr_timer(unsigned long data)
{
struct net_device *dev = (struct net_device *)data;
struct rr_private *rrpriv = netdev_priv(dev);
{
struct net_device *dev = (struct net_device *)data;
struct rr_private *rrpriv = netdev_priv(dev);
- struct rr_regs *regs = rrpriv->regs;
+ struct rr_regs
__iomem
*regs = rrpriv->regs;
unsigned long flags;
if (readl(®s->HostCtrl) & NIC_HALTED){
unsigned long flags;
if (readl(®s->HostCtrl) & NIC_HALTED){
@@
-1200,7
+1199,7
@@
static void rr_timer(unsigned long data)
if (rr_init1(dev)) {
spin_lock_irqsave(&rrpriv->lock, flags);
if (rr_init1(dev)) {
spin_lock_irqsave(&rrpriv->lock, flags);
- writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT,
+ writel(readl(®s->HostCtrl)|HALT_NIC|RR_CLEAR_INT,
®s->HostCtrl);
spin_unlock_irqrestore(&rrpriv->lock, flags);
}
®s->HostCtrl);
spin_unlock_irqrestore(&rrpriv->lock, flags);
}
@@
-1214,7
+1213,7
@@
static int rr_open(struct net_device *dev)
{
struct rr_private *rrpriv = netdev_priv(dev);
struct pci_dev *pdev = rrpriv->pci_dev;
{
struct rr_private *rrpriv = netdev_priv(dev);
struct pci_dev *pdev = rrpriv->pci_dev;
- struct rr_regs *regs;
+ struct rr_regs
__iomem
*regs;
int ecode = 0;
unsigned long flags;
dma_addr_t dma_addr;
int ecode = 0;
unsigned long flags;
dma_addr_t dma_addr;
@@
-1253,7
+1252,7
@@
static int rr_open(struct net_device *dev)
readl(®s->HostCtrl);
spin_unlock_irqrestore(&rrpriv->lock, flags);
readl(®s->HostCtrl);
spin_unlock_irqrestore(&rrpriv->lock, flags);
- if (request_irq(dev->irq, rr_interrupt,
SA_SHIRQ
, dev->name, dev)) {
+ if (request_irq(dev->irq, rr_interrupt,
IRQF_SHARED
, dev->name, dev)) {
printk(KERN_WARNING "%s: Requested IRQ %d is busy\n",
dev->name, dev->irq);
ecode = -EAGAIN;
printk(KERN_WARNING "%s: Requested IRQ %d is busy\n",
dev->name, dev->irq);
ecode = -EAGAIN;
@@
-1292,7
+1291,7
@@
static int rr_open(struct net_device *dev)
}
netif_stop_queue(dev);
}
netif_stop_queue(dev);
-
+
return ecode;
}
return ecode;
}
@@
-1300,7
+1299,7
@@
static int rr_open(struct net_device *dev)
static void rr_dump(struct net_device *dev)
{
struct rr_private *rrpriv;
static void rr_dump(struct net_device *dev)
{
struct rr_private *rrpriv;
- struct rr_regs *regs;
+ struct rr_regs
__iomem
*regs;
u32 index, cons;
short i;
int len;
u32 index, cons;
short i;
int len;
@@
-1363,7
+1362,7
@@
static void rr_dump(struct net_device *dev)
static int rr_close(struct net_device *dev)
{
struct rr_private *rrpriv;
static int rr_close(struct net_device *dev)
{
struct rr_private *rrpriv;
- struct rr_regs *regs;
+ struct rr_regs
__iomem
*regs;
unsigned long flags;
u32 tmp;
short i;
unsigned long flags;
u32 tmp;
short i;
@@
-1428,7
+1427,8
@@
static int rr_close(struct net_device *dev)
static int rr_start_xmit(struct sk_buff *skb, struct net_device *dev)
{
struct rr_private *rrpriv = netdev_priv(dev);
static int rr_start_xmit(struct sk_buff *skb, struct net_device *dev)
{
struct rr_private *rrpriv = netdev_priv(dev);
- struct rr_regs *regs = rrpriv->regs;
+ struct rr_regs __iomem *regs = rrpriv->regs;
+ struct hippi_cb *hcb = (struct hippi_cb *) skb->cb;
struct ring_ctrl *txctrl;
unsigned long flags;
u32 index, len = skb->len;
struct ring_ctrl *txctrl;
unsigned long flags;
u32 index, len = skb->len;
@@
-1460,7
+1460,7
@@
static int rr_start_xmit(struct sk_buff *skb, struct net_device *dev)
ifield = (u32 *)skb_push(skb, 8);
ifield[0] = 0;
ifield = (u32 *)skb_push(skb, 8);
ifield[0] = 0;
- ifield[1] =
skb->private.
ifield;
+ ifield[1] =
hcb->
ifield;
/*
* We don't need the lock before we are actually going to start
/*
* We don't need the lock before we are actually going to start
@@
-1513,7
+1513,7
@@
static struct net_device_stats *rr_get_stats(struct net_device *dev)
static int rr_load_firmware(struct net_device *dev)
{
struct rr_private *rrpriv;
static int rr_load_firmware(struct net_device *dev)
{
struct rr_private *rrpriv;
- struct rr_regs *regs;
+ struct rr_regs
__iomem
*regs;
unsigned long eptr, segptr;
int i, j;
u32 localctrl, sptr, len, tmp;
unsigned long eptr, segptr;
int i, j;
u32 localctrl, sptr, len, tmp;
@@
-1527,7
+1527,7
@@
static int rr_load_firmware(struct net_device *dev)
return -EBUSY;
if (!(readl(®s->HostCtrl) & NIC_HALTED)){
return -EBUSY;
if (!(readl(®s->HostCtrl) & NIC_HALTED)){
- printk("%s: Trying to load firmware to a running NIC.\n",
+ printk("%s: Trying to load firmware to a running NIC.\n",
dev->name);
return -EBUSY;
}
dev->name);
return -EBUSY;
}
@@
-1660,7
+1660,7
@@
static int rr_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
gf_out:
kfree(image);
return error;
gf_out:
kfree(image);
return error;
-
+
case SIOCRRPFW:
if (!capable(CAP_SYS_RAWIO)){
return -EPERM;
case SIOCRRPFW:
if (!capable(CAP_SYS_RAWIO)){
return -EPERM;
@@
-1709,12
+1709,10
@@
static int rr_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
error = -EFAULT;
}
wf_out:
error = -EFAULT;
}
wf_out:
- if (oldimage)
- kfree(oldimage);
- if (image)
- kfree(image);
+ kfree(oldimage);
+ kfree(image);
return error;
return error;
-
+
case SIOCRRID:
return put_user(0x52523032, (int __user *)rq->ifr_data);
default:
case SIOCRRID:
return put_user(0x52523032, (int __user *)rq->ifr_data);
default:
@@
-1738,7
+1736,7
@@
static struct pci_driver rr_driver = {
static int __init rr_init_module(void)
{
static int __init rr_init_module(void)
{
- return pci_
module_init
(&rr_driver);
+ return pci_
register_driver
(&rr_driver);
}
static void __exit rr_cleanup_module(void)
}
static void __exit rr_cleanup_module(void)