Commit 661e5f8d authored by Jeff Garzik's avatar Jeff Garzik

Merge pobox.com:/garz/repo/netdev-2.6/viro-iomem

into pobox.com:/garz/repo/net-drivers-2.6
parents 1568cc8f b4a8e614
...@@ -59,9 +59,9 @@ ...@@ -59,9 +59,9 @@
struct bmac_data { struct bmac_data {
/* volatile struct bmac *bmac; */ /* volatile struct bmac *bmac; */
struct sk_buff_head *queue; struct sk_buff_head *queue;
volatile struct dbdma_regs *tx_dma; volatile struct dbdma_regs __iomem *tx_dma;
int tx_dma_intr; int tx_dma_intr;
volatile struct dbdma_regs *rx_dma; volatile struct dbdma_regs __iomem *rx_dma;
int rx_dma_intr; int rx_dma_intr;
volatile struct dbdma_cmd *tx_cmds; /* xmit dma command list */ volatile struct dbdma_cmd *tx_cmds; /* xmit dma command list */
volatile struct dbdma_cmd *rx_cmds; /* recv dma command list */ volatile struct dbdma_cmd *rx_cmds; /* recv dma command list */
...@@ -165,35 +165,35 @@ static void bmac_start(struct net_device *dev); ...@@ -165,35 +165,35 @@ static void bmac_start(struct net_device *dev);
#define DBDMA_CLEAR(x) ( (x) << 16) #define DBDMA_CLEAR(x) ( (x) << 16)
static inline void static inline void
dbdma_st32(volatile unsigned long *a, unsigned long x) dbdma_st32(volatile __u32 __iomem *a, unsigned long x)
{ {
__asm__ volatile( "stwbrx %0,0,%1" : : "r" (x), "r" (a) : "memory"); __asm__ volatile( "stwbrx %0,0,%1" : : "r" (x), "r" (a) : "memory");
return; return;
} }
static inline unsigned long static inline unsigned long
dbdma_ld32(volatile unsigned long *a) dbdma_ld32(volatile __u32 __iomem *a)
{ {
unsigned long swap; __u32 swap;
__asm__ volatile ("lwbrx %0,0,%1" : "=r" (swap) : "r" (a)); __asm__ volatile ("lwbrx %0,0,%1" : "=r" (swap) : "r" (a));
return swap; return swap;
} }
static void static void
dbdma_continue(volatile struct dbdma_regs *dmap) dbdma_continue(volatile struct dbdma_regs __iomem *dmap)
{ {
dbdma_st32((volatile unsigned long *)&dmap->control, dbdma_st32(&dmap->control,
DBDMA_SET(RUN|WAKE) | DBDMA_CLEAR(PAUSE|DEAD)); DBDMA_SET(RUN|WAKE) | DBDMA_CLEAR(PAUSE|DEAD));
eieio(); eieio();
} }
static void static void
dbdma_reset(volatile struct dbdma_regs *dmap) dbdma_reset(volatile struct dbdma_regs __iomem *dmap)
{ {
dbdma_st32((volatile unsigned long *)&dmap->control, dbdma_st32(&dmap->control,
DBDMA_CLEAR(ACTIVE|DEAD|WAKE|FLUSH|PAUSE|RUN)); DBDMA_CLEAR(ACTIVE|DEAD|WAKE|FLUSH|PAUSE|RUN));
eieio(); eieio();
while (dbdma_ld32((volatile unsigned long *)&dmap->status) & RUN) while (dbdma_ld32(&dmap->status) & RUN)
eieio(); eieio();
} }
...@@ -213,22 +213,22 @@ dbdma_setcmd(volatile struct dbdma_cmd *cp, ...@@ -213,22 +213,22 @@ dbdma_setcmd(volatile struct dbdma_cmd *cp,
static inline static inline
void bmwrite(struct net_device *dev, unsigned long reg_offset, unsigned data ) void bmwrite(struct net_device *dev, unsigned long reg_offset, unsigned data )
{ {
out_le16((void *)dev->base_addr + reg_offset, data); out_le16((void __iomem *)dev->base_addr + reg_offset, data);
} }
static inline static inline
volatile unsigned short bmread(struct net_device *dev, unsigned long reg_offset ) volatile unsigned short bmread(struct net_device *dev, unsigned long reg_offset )
{ {
return in_le16((void *)dev->base_addr + reg_offset); return in_le16((void __iomem *)dev->base_addr + reg_offset);
} }
static void static void
bmac_enable_and_reset_chip(struct net_device *dev) bmac_enable_and_reset_chip(struct net_device *dev)
{ {
struct bmac_data *bp = netdev_priv(dev); struct bmac_data *bp = netdev_priv(dev);
volatile struct dbdma_regs *rd = bp->rx_dma; volatile struct dbdma_regs __iomem *rd = bp->rx_dma;
volatile struct dbdma_regs *td = bp->tx_dma; volatile struct dbdma_regs __iomem *td = bp->tx_dma;
if (rd) if (rd)
dbdma_reset(rd); dbdma_reset(rd);
...@@ -406,7 +406,7 @@ static void ...@@ -406,7 +406,7 @@ static void
bmac_start_chip(struct net_device *dev) bmac_start_chip(struct net_device *dev)
{ {
struct bmac_data *bp = netdev_priv(dev); struct bmac_data *bp = netdev_priv(dev);
volatile struct dbdma_regs *rd = bp->rx_dma; volatile struct dbdma_regs __iomem *rd = bp->rx_dma;
unsigned short oldConfig; unsigned short oldConfig;
/* enable rx dma channel */ /* enable rx dma channel */
...@@ -476,8 +476,8 @@ static int bmac_suspend(struct macio_dev *mdev, u32 state) ...@@ -476,8 +476,8 @@ static int bmac_suspend(struct macio_dev *mdev, u32 state)
bp->sleeping = 1; bp->sleeping = 1;
spin_unlock_irqrestore(&bp->lock, flags); spin_unlock_irqrestore(&bp->lock, flags);
if (bp->opened) { if (bp->opened) {
volatile struct dbdma_regs *rd = bp->rx_dma; volatile struct dbdma_regs __iomem *rd = bp->rx_dma;
volatile struct dbdma_regs *td = bp->tx_dma; volatile struct dbdma_regs __iomem *td = bp->tx_dma;
config = bmread(dev, RXCFG); config = bmread(dev, RXCFG);
bmwrite(dev, RXCFG, (config & ~RxMACEnable)); bmwrite(dev, RXCFG, (config & ~RxMACEnable));
...@@ -602,7 +602,7 @@ bitrev(unsigned char b) ...@@ -602,7 +602,7 @@ bitrev(unsigned char b)
static void static void
bmac_init_tx_ring(struct bmac_data *bp) bmac_init_tx_ring(struct bmac_data *bp)
{ {
volatile struct dbdma_regs *td = bp->tx_dma; volatile struct dbdma_regs __iomem *td = bp->tx_dma;
memset((char *)bp->tx_cmds, 0, (N_TX_RING+1) * sizeof(struct dbdma_cmd)); memset((char *)bp->tx_cmds, 0, (N_TX_RING+1) * sizeof(struct dbdma_cmd));
...@@ -623,7 +623,7 @@ bmac_init_tx_ring(struct bmac_data *bp) ...@@ -623,7 +623,7 @@ bmac_init_tx_ring(struct bmac_data *bp)
static int static int
bmac_init_rx_ring(struct bmac_data *bp) bmac_init_rx_ring(struct bmac_data *bp)
{ {
volatile struct dbdma_regs *rd = bp->rx_dma; volatile struct dbdma_regs __iomem *rd = bp->rx_dma;
int i; int i;
struct sk_buff *skb; struct sk_buff *skb;
...@@ -657,7 +657,7 @@ bmac_init_rx_ring(struct bmac_data *bp) ...@@ -657,7 +657,7 @@ bmac_init_rx_ring(struct bmac_data *bp)
static int bmac_transmit_packet(struct sk_buff *skb, struct net_device *dev) static int bmac_transmit_packet(struct sk_buff *skb, struct net_device *dev)
{ {
struct bmac_data *bp = netdev_priv(dev); struct bmac_data *bp = netdev_priv(dev);
volatile struct dbdma_regs *td = bp->tx_dma; volatile struct dbdma_regs __iomem *td = bp->tx_dma;
int i; int i;
/* see if there's a free slot in the tx ring */ /* see if there's a free slot in the tx ring */
...@@ -693,7 +693,7 @@ static irqreturn_t bmac_rxdma_intr(int irq, void *dev_id, struct pt_regs *regs) ...@@ -693,7 +693,7 @@ static irqreturn_t bmac_rxdma_intr(int irq, void *dev_id, struct pt_regs *regs)
{ {
struct net_device *dev = (struct net_device *) dev_id; struct net_device *dev = (struct net_device *) dev_id;
struct bmac_data *bp = netdev_priv(dev); struct bmac_data *bp = netdev_priv(dev);
volatile struct dbdma_regs *rd = bp->rx_dma; volatile struct dbdma_regs __iomem *rd = bp->rx_dma;
volatile struct dbdma_cmd *cp; volatile struct dbdma_cmd *cp;
int i, nb, stat; int i, nb, stat;
struct sk_buff *skb; struct sk_buff *skb;
...@@ -1331,13 +1331,11 @@ static int __devinit bmac_probe(struct macio_dev *mdev, const struct of_match *m ...@@ -1331,13 +1331,11 @@ static int __devinit bmac_probe(struct macio_dev *mdev, const struct of_match *m
goto err_out_iounmap; goto err_out_iounmap;
bp->is_bmac_plus = is_bmac_plus; bp->is_bmac_plus = is_bmac_plus;
bp->tx_dma = (volatile struct dbdma_regs *) bp->tx_dma = ioremap(macio_resource_start(mdev, 1), macio_resource_len(mdev, 1));
ioremap(macio_resource_start(mdev, 1), macio_resource_len(mdev, 1));
if (!bp->tx_dma) if (!bp->tx_dma)
goto err_out_iounmap; goto err_out_iounmap;
bp->tx_dma_intr = macio_irq(mdev, 1); bp->tx_dma_intr = macio_irq(mdev, 1);
bp->rx_dma = (volatile struct dbdma_regs *) bp->rx_dma = ioremap(macio_resource_start(mdev, 2), macio_resource_len(mdev, 2));
ioremap(macio_resource_start(mdev, 2), macio_resource_len(mdev, 2));
if (!bp->rx_dma) if (!bp->rx_dma)
goto err_out_iounmap_tx; goto err_out_iounmap_tx;
bp->rx_dma_intr = macio_irq(mdev, 2); bp->rx_dma_intr = macio_irq(mdev, 2);
...@@ -1392,11 +1390,11 @@ static int __devinit bmac_probe(struct macio_dev *mdev, const struct of_match *m ...@@ -1392,11 +1390,11 @@ static int __devinit bmac_probe(struct macio_dev *mdev, const struct of_match *m
err_out_irq0: err_out_irq0:
free_irq(dev->irq, dev); free_irq(dev->irq, dev);
err_out_iounmap_rx: err_out_iounmap_rx:
iounmap((void *)bp->rx_dma); iounmap(bp->rx_dma);
err_out_iounmap_tx: err_out_iounmap_tx:
iounmap((void *)bp->tx_dma); iounmap(bp->tx_dma);
err_out_iounmap: err_out_iounmap:
iounmap((void *)dev->base_addr); iounmap((void __iomem *)dev->base_addr);
out_release: out_release:
macio_release_resources(mdev); macio_release_resources(mdev);
out_free: out_free:
...@@ -1421,8 +1419,8 @@ static int bmac_open(struct net_device *dev) ...@@ -1421,8 +1419,8 @@ static int bmac_open(struct net_device *dev)
static int bmac_close(struct net_device *dev) static int bmac_close(struct net_device *dev)
{ {
struct bmac_data *bp = netdev_priv(dev); struct bmac_data *bp = netdev_priv(dev);
volatile struct dbdma_regs *rd = bp->rx_dma; volatile struct dbdma_regs __iomem *rd = bp->rx_dma;
volatile struct dbdma_regs *td = bp->tx_dma; volatile struct dbdma_regs __iomem *td = bp->tx_dma;
unsigned short config; unsigned short config;
int i; int i;
...@@ -1505,8 +1503,8 @@ static void bmac_tx_timeout(unsigned long data) ...@@ -1505,8 +1503,8 @@ static void bmac_tx_timeout(unsigned long data)
{ {
struct net_device *dev = (struct net_device *) data; struct net_device *dev = (struct net_device *) data;
struct bmac_data *bp = netdev_priv(dev); struct bmac_data *bp = netdev_priv(dev);
volatile struct dbdma_regs *td = bp->tx_dma; volatile struct dbdma_regs __iomem *td = bp->tx_dma;
volatile struct dbdma_regs *rd = bp->rx_dma; volatile struct dbdma_regs __iomem *rd = bp->rx_dma;
volatile struct dbdma_cmd *cp; volatile struct dbdma_cmd *cp;
unsigned long flags; unsigned long flags;
unsigned short config, oldConfig; unsigned short config, oldConfig;
...@@ -1638,9 +1636,9 @@ static int __devexit bmac_remove(struct macio_dev *mdev) ...@@ -1638,9 +1636,9 @@ static int __devexit bmac_remove(struct macio_dev *mdev)
free_irq(bp->tx_dma_intr, dev); free_irq(bp->tx_dma_intr, dev);
free_irq(bp->rx_dma_intr, dev); free_irq(bp->rx_dma_intr, dev);
iounmap((void *)dev->base_addr); iounmap((void __iomem *)dev->base_addr);
iounmap((void *)bp->tx_dma); iounmap(bp->tx_dma);
iounmap((void *)bp->rx_dma); iounmap(bp->rx_dma);
macio_release_resources(mdev); macio_release_resources(mdev);
......
...@@ -512,6 +512,7 @@ struct hamachi_private { ...@@ -512,6 +512,7 @@ struct hamachi_private {
u32 rx_int_var, tx_int_var; /* interrupt control variables */ u32 rx_int_var, tx_int_var; /* interrupt control variables */
u32 option; /* Hold on to a copy of the options */ u32 option; /* Hold on to a copy of the options */
struct pci_dev *pci_dev; struct pci_dev *pci_dev;
void __iomem *base;
}; };
MODULE_AUTHOR("Donald Becker <becker@scyld.com>, Eric Kasten <kasten@nscl.msu.edu>, Keith Underwood <keithu@parl.clemson.edu>"); MODULE_AUTHOR("Donald Becker <becker@scyld.com>, Eric Kasten <kasten@nscl.msu.edu>, Keith Underwood <keithu@parl.clemson.edu>");
...@@ -549,7 +550,7 @@ MODULE_PARM_DESC(options, "GNIC-II Bits 0-3: media type, bits 4-6: as force32, b ...@@ -549,7 +550,7 @@ MODULE_PARM_DESC(options, "GNIC-II Bits 0-3: media type, bits 4-6: as force32, b
MODULE_PARM_DESC(full_duplex, "GNIC-II full duplex setting(s) (1)"); MODULE_PARM_DESC(full_duplex, "GNIC-II full duplex setting(s) (1)");
MODULE_PARM_DESC(force32, "GNIC-II: Bit 0: 32 bit PCI, bit 1: disable parity, bit 2: 64 bit PCI (all boards)"); MODULE_PARM_DESC(force32, "GNIC-II: Bit 0: 32 bit PCI, bit 1: disable parity, bit 2: 64 bit PCI (all boards)");
static int read_eeprom(long ioaddr, int location); static int read_eeprom(void __iomem *ioaddr, int location);
static int mdio_read(struct net_device *dev, int phy_id, int location); static int mdio_read(struct net_device *dev, int phy_id, int location);
static void mdio_write(struct net_device *dev, int phy_id, int location, int value); static void mdio_write(struct net_device *dev, int phy_id, int location, int value);
static int hamachi_open(struct net_device *dev); static int hamachi_open(struct net_device *dev);
...@@ -575,7 +576,8 @@ static int __devinit hamachi_init_one (struct pci_dev *pdev, ...@@ -575,7 +576,8 @@ static int __devinit hamachi_init_one (struct pci_dev *pdev,
int option, i, rx_int_var, tx_int_var, boguscnt; int option, i, rx_int_var, tx_int_var, boguscnt;
int chip_id = ent->driver_data; int chip_id = ent->driver_data;
int irq; int irq;
long ioaddr; void __iomem *ioaddr;
unsigned long base;
static int card_idx; static int card_idx;
struct net_device *dev; struct net_device *dev;
void *ring_space; void *ring_space;
...@@ -594,9 +596,9 @@ static int __devinit hamachi_init_one (struct pci_dev *pdev, ...@@ -594,9 +596,9 @@ static int __devinit hamachi_init_one (struct pci_dev *pdev,
goto err_out; goto err_out;
} }
ioaddr = pci_resource_start(pdev, 0); base = pci_resource_start(pdev, 0);
#ifdef __alpha__ /* Really "64 bit addrs" */ #ifdef __alpha__ /* Really "64 bit addrs" */
ioaddr |= (pci_resource_start(pdev, 1) << 32); base |= (pci_resource_start(pdev, 1) << 32);
#endif #endif
pci_set_master(pdev); pci_set_master(pdev);
...@@ -605,7 +607,7 @@ static int __devinit hamachi_init_one (struct pci_dev *pdev, ...@@ -605,7 +607,7 @@ static int __devinit hamachi_init_one (struct pci_dev *pdev,
if (i) return i; if (i) return i;
irq = pdev->irq; irq = pdev->irq;
ioaddr = (long) ioremap(ioaddr, 0x400); ioaddr = ioremap(base, 0x400);
if (!ioaddr) if (!ioaddr)
goto err_out_release; goto err_out_release;
...@@ -678,7 +680,8 @@ static int __devinit hamachi_init_one (struct pci_dev *pdev, ...@@ -678,7 +680,8 @@ static int __devinit hamachi_init_one (struct pci_dev *pdev,
i = readb(ioaddr + PCIClkMeas); i = readb(ioaddr + PCIClkMeas);
} }
dev->base_addr = ioaddr; hmp->base = ioaddr;
dev->base_addr = (unsigned long)ioaddr;
dev->irq = irq; dev->irq = irq;
pci_set_drvdata(pdev, dev); pci_set_drvdata(pdev, dev);
...@@ -741,7 +744,7 @@ static int __devinit hamachi_init_one (struct pci_dev *pdev, ...@@ -741,7 +744,7 @@ static int __devinit hamachi_init_one (struct pci_dev *pdev,
goto err_out_unmap_rx; goto err_out_unmap_rx;
} }
printk(KERN_INFO "%s: %s type %x at 0x%lx, ", printk(KERN_INFO "%s: %s type %x at %p, ",
dev->name, chip_tbl[chip_id].name, readl(ioaddr + ChipRev), dev->name, chip_tbl[chip_id].name, readl(ioaddr + ChipRev),
ioaddr); ioaddr);
for (i = 0; i < 5; i++) for (i = 0; i < 5; i++)
...@@ -790,14 +793,14 @@ static int __devinit hamachi_init_one (struct pci_dev *pdev, ...@@ -790,14 +793,14 @@ static int __devinit hamachi_init_one (struct pci_dev *pdev,
err_out_cleardev: err_out_cleardev:
free_netdev (dev); free_netdev (dev);
err_out_iounmap: err_out_iounmap:
iounmap((char *)ioaddr); iounmap(ioaddr);
err_out_release: err_out_release:
pci_release_regions(pdev); pci_release_regions(pdev);
err_out: err_out:
return ret; return ret;
} }
static int __devinit read_eeprom(long ioaddr, int location) static int __devinit read_eeprom(void __iomem *ioaddr, int location)
{ {
int bogus_cnt = 1000; int bogus_cnt = 1000;
...@@ -819,7 +822,8 @@ static int __devinit read_eeprom(long ioaddr, int location) ...@@ -819,7 +822,8 @@ static int __devinit read_eeprom(long ioaddr, int location)
static int mdio_read(struct net_device *dev, int phy_id, int location) static int mdio_read(struct net_device *dev, int phy_id, int location)
{ {
long ioaddr = dev->base_addr; struct hamachi_private *hmp = netdev_priv(dev);
void __iomem *ioaddr = hmp->base;
int i; int i;
/* We should check busy first - per docs -KDU */ /* We should check busy first - per docs -KDU */
...@@ -836,7 +840,8 @@ static int mdio_read(struct net_device *dev, int phy_id, int location) ...@@ -836,7 +840,8 @@ static int mdio_read(struct net_device *dev, int phy_id, int location)
static void mdio_write(struct net_device *dev, int phy_id, int location, int value) static void mdio_write(struct net_device *dev, int phy_id, int location, int value)
{ {
long ioaddr = dev->base_addr; struct hamachi_private *hmp = netdev_priv(dev);
void __iomem *ioaddr = hmp->base;
int i; int i;
/* We should check busy first - per docs -KDU */ /* We should check busy first - per docs -KDU */
...@@ -857,7 +862,7 @@ static void mdio_write(struct net_device *dev, int phy_id, int location, int val ...@@ -857,7 +862,7 @@ static void mdio_write(struct net_device *dev, int phy_id, int location, int val
static int hamachi_open(struct net_device *dev) static int hamachi_open(struct net_device *dev)
{ {
struct hamachi_private *hmp = netdev_priv(dev); struct hamachi_private *hmp = netdev_priv(dev);
long ioaddr = dev->base_addr; void __iomem *ioaddr = hmp->base;
int i; int i;
u32 rx_int_var, tx_int_var; u32 rx_int_var, tx_int_var;
u16 fifo_info; u16 fifo_info;
...@@ -987,7 +992,7 @@ static int hamachi_open(struct net_device *dev) ...@@ -987,7 +992,7 @@ static int hamachi_open(struct net_device *dev)
writew(0x001D, ioaddr + RxDMACtrl); writew(0x001D, ioaddr + RxDMACtrl);
writew(0x001D, ioaddr + TxDMACtrl); writew(0x001D, ioaddr + TxDMACtrl);
#endif #endif
writew(0x0001, dev->base_addr + RxCmd); writew(0x0001, ioaddr + RxCmd);
if (hamachi_debug > 2) { if (hamachi_debug > 2) {
printk(KERN_DEBUG "%s: Done hamachi_open(), status: Rx %x Tx %x.\n", printk(KERN_DEBUG "%s: Done hamachi_open(), status: Rx %x Tx %x.\n",
...@@ -1038,7 +1043,7 @@ static void hamachi_timer(unsigned long data) ...@@ -1038,7 +1043,7 @@ static void hamachi_timer(unsigned long data)
{ {
struct net_device *dev = (struct net_device *)data; struct net_device *dev = (struct net_device *)data;
struct hamachi_private *hmp = netdev_priv(dev); struct hamachi_private *hmp = netdev_priv(dev);
long ioaddr = dev->base_addr; void __iomem *ioaddr = hmp->base;
int next_tick = 10*HZ; int next_tick = 10*HZ;
if (hamachi_debug > 2) { if (hamachi_debug > 2) {
...@@ -1063,7 +1068,7 @@ static void hamachi_tx_timeout(struct net_device *dev) ...@@ -1063,7 +1068,7 @@ static void hamachi_tx_timeout(struct net_device *dev)
{ {
int i; int i;
struct hamachi_private *hmp = netdev_priv(dev); struct hamachi_private *hmp = netdev_priv(dev);
long ioaddr = dev->base_addr; void __iomem *ioaddr = hmp->base;
printk(KERN_WARNING "%s: Hamachi transmit timed out, status %8.8x," printk(KERN_WARNING "%s: Hamachi transmit timed out, status %8.8x,"
" resetting...\n", dev->name, (int)readw(ioaddr + TxStatus)); " resetting...\n", dev->name, (int)readw(ioaddr + TxStatus));
...@@ -1115,7 +1120,7 @@ static void hamachi_tx_timeout(struct net_device *dev) ...@@ -1115,7 +1120,7 @@ static void hamachi_tx_timeout(struct net_device *dev)
} }
udelay(60); /* Sleep 60 us just for safety sake */ udelay(60); /* Sleep 60 us just for safety sake */
writew(0x0002, dev->base_addr + RxCmd); /* STOP Rx */ writew(0x0002, ioaddr + RxCmd); /* STOP Rx */
writeb(0x01, ioaddr + ChipReset); /* Reinit the hardware */ writeb(0x01, ioaddr + ChipReset); /* Reinit the hardware */
...@@ -1157,9 +1162,9 @@ static void hamachi_tx_timeout(struct net_device *dev) ...@@ -1157,9 +1162,9 @@ static void hamachi_tx_timeout(struct net_device *dev)
hmp->stats.tx_errors++; hmp->stats.tx_errors++;
/* Restart the chip's Tx/Rx processes . */ /* Restart the chip's Tx/Rx processes . */
writew(0x0002, dev->base_addr + TxCmd); /* STOP Tx */ writew(0x0002, ioaddr + TxCmd); /* STOP Tx */
writew(0x0001, dev->base_addr + TxCmd); /* START Tx */ writew(0x0001, ioaddr + TxCmd); /* START Tx */
writew(0x0001, dev->base_addr + RxCmd); /* START Rx */ writew(0x0001, ioaddr + RxCmd); /* START Rx */
netif_wake_queue(dev); netif_wake_queue(dev);
} }
...@@ -1275,9 +1280,9 @@ static int hamachi_start_xmit(struct sk_buff *skb, struct net_device *dev) ...@@ -1275,9 +1280,9 @@ static int hamachi_start_xmit(struct sk_buff *skb, struct net_device *dev)
/* Wake the potentially-idle transmit channel. */ /* Wake the potentially-idle transmit channel. */
/* If we don't need to read status, DON'T -KDU */ /* If we don't need to read status, DON'T -KDU */
status=readw(dev->base_addr + TxStatus); status=readw(hmp->base + TxStatus);
if( !(status & 0x0001) || (status & 0x0002)) if( !(status & 0x0001) || (status & 0x0002))
writew(0x0001, dev->base_addr + TxCmd); writew(0x0001, hmp->base + TxCmd);
return 1; return 1;
} }
...@@ -1343,9 +1348,9 @@ static int hamachi_start_xmit(struct sk_buff *skb, struct net_device *dev) ...@@ -1343,9 +1348,9 @@ static int hamachi_start_xmit(struct sk_buff *skb, struct net_device *dev)
/* Wake the potentially-idle transmit channel. */ /* Wake the potentially-idle transmit channel. */
/* If we don't need to read status, DON'T -KDU */ /* If we don't need to read status, DON'T -KDU */
status=readw(dev->base_addr + TxStatus); status=readw(hmp->base + TxStatus);
if( !(status & 0x0001) || (status & 0x0002)) if( !(status & 0x0001) || (status & 0x0002))
writew(0x0001, dev->base_addr + TxCmd); writew(0x0001, hmp->base + TxCmd);
/* Immediately before returning, let's clear as many entries as we can. */ /* Immediately before returning, let's clear as many entries as we can. */
hamachi_tx(dev); hamachi_tx(dev);
...@@ -1376,8 +1381,9 @@ static int hamachi_start_xmit(struct sk_buff *skb, struct net_device *dev) ...@@ -1376,8 +1381,9 @@ static int hamachi_start_xmit(struct sk_buff *skb, struct net_device *dev)
static irqreturn_t hamachi_interrupt(int irq, void *dev_instance, struct pt_regs *rgs) static irqreturn_t hamachi_interrupt(int irq, void *dev_instance, struct pt_regs *rgs)
{ {
struct net_device *dev = dev_instance; struct net_device *dev = dev_instance;
struct hamachi_private *hmp; struct hamachi_private *hmp = netdev_priv(dev);
long ioaddr, boguscnt = max_interrupt_work; void __iomem *ioaddr = hmp->base;
long boguscnt = max_interrupt_work;
int handled = 0; int handled = 0;
#ifndef final_version /* Can never occur. */ #ifndef final_version /* Can never occur. */
...@@ -1387,8 +1393,6 @@ static irqreturn_t hamachi_interrupt(int irq, void *dev_instance, struct pt_regs ...@@ -1387,8 +1393,6 @@ static irqreturn_t hamachi_interrupt(int irq, void *dev_instance, struct pt_regs
} }
#endif #endif
ioaddr = dev->base_addr;
hmp = netdev_priv(dev);
spin_lock(&hmp->lock); spin_lock(&hmp->lock);
do { do {
...@@ -1687,8 +1691,8 @@ static int hamachi_rx(struct net_device *dev) ...@@ -1687,8 +1691,8 @@ static int hamachi_rx(struct net_device *dev)
/* Restart Rx engine if stopped. */ /* Restart Rx engine if stopped. */
/* If we don't need to check status, don't. -KDU */ /* If we don't need to check status, don't. -KDU */
if (readw(dev->base_addr + RxStatus) & 0x0002) if (readw(hmp->base + RxStatus) & 0x0002)
writew(0x0001, dev->base_addr + RxCmd); writew(0x0001, hmp->base + RxCmd);
return 0; return 0;
} }
...@@ -1697,8 +1701,8 @@ static int hamachi_rx(struct net_device *dev) ...@@ -1697,8 +1701,8 @@ static int hamachi_rx(struct net_device *dev)
than just errors. */ than just errors. */
static void hamachi_error(struct net_device *dev, int intr_status) static void hamachi_error(struct net_device *dev, int intr_status)
{ {
long ioaddr = dev->base_addr;
struct hamachi_private *hmp = netdev_priv(dev); struct hamachi_private *hmp = netdev_priv(dev);
void __iomem *ioaddr = hmp->base;
if (intr_status & (LinkChange|NegotiationChange)) { if (intr_status & (LinkChange|NegotiationChange)) {
if (hamachi_debug > 1) if (hamachi_debug > 1)
...@@ -1731,8 +1735,8 @@ static void hamachi_error(struct net_device *dev, int intr_status) ...@@ -1731,8 +1735,8 @@ static void hamachi_error(struct net_device *dev, int intr_status)
static int hamachi_close(struct net_device *dev) static int hamachi_close(struct net_device *dev)
{ {
long ioaddr = dev->base_addr;
struct hamachi_private *hmp = netdev_priv(dev); struct hamachi_private *hmp = netdev_priv(dev);
void __iomem *ioaddr = hmp->base;
struct sk_buff *skb; struct sk_buff *skb;
int i; int i;
...@@ -1817,8 +1821,8 @@ static int hamachi_close(struct net_device *dev) ...@@ -1817,8 +1821,8 @@ static int hamachi_close(struct net_device *dev)
static struct net_device_stats *hamachi_get_stats(struct net_device *dev) static struct net_device_stats *hamachi_get_stats(struct net_device *dev)
{ {
long ioaddr = dev->base_addr;
struct hamachi_private *hmp = netdev_priv(dev); struct hamachi_private *hmp = netdev_priv(dev);
void __iomem *ioaddr = hmp->base;
/* We should lock this segment of code for SMP eventually, although /* We should lock this segment of code for SMP eventually, although
the vulnerability window is very small and statistics are the vulnerability window is very small and statistics are
...@@ -1845,7 +1849,8 @@ static struct net_device_stats *hamachi_get_stats(struct net_device *dev) ...@@ -1845,7 +1849,8 @@ static struct net_device_stats *hamachi_get_stats(struct net_device *dev)
static void set_rx_mode(struct net_device *dev) static void set_rx_mode(struct net_device *dev)
{ {
long ioaddr = dev->base_addr; struct hamachi_private *hmp = netdev_priv(dev);
void __iomem *ioaddr = hmp->base;
if (dev->flags & IFF_PROMISC) { /* Set promiscuous. */ if (dev->flags & IFF_PROMISC) { /* Set promiscuous. */
/* Unconditionally log net taps. */ /* Unconditionally log net taps. */
...@@ -1950,11 +1955,11 @@ static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) ...@@ -1950,11 +1955,11 @@ static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
*/ */
if (!capable(CAP_NET_ADMIN)) if (!capable(CAP_NET_ADMIN))
return -EPERM; return -EPERM;
writel(d[0], dev->base_addr + TxIntrCtrl); writel(d[0], np->base + TxIntrCtrl);
writel(d[1], dev->base_addr + RxIntrCtrl); writel(d[1], np->base + RxIntrCtrl);
printk(KERN_NOTICE "%s: tx %08x, rx %08x intr\n", dev->name, printk(KERN_NOTICE "%s: tx %08x, rx %08x intr\n", dev->name,
(u32) readl(dev->base_addr + TxIntrCtrl), (u32) readl(np->base + TxIntrCtrl),
(u32) readl(dev->base_addr + RxIntrCtrl)); (u32) readl(np->base + RxIntrCtrl));
rc = 0; rc = 0;
} }
...@@ -1980,7 +1985,7 @@ static void __devexit hamachi_remove_one (struct pci_dev *pdev) ...@@ -1980,7 +1985,7 @@ static void __devexit hamachi_remove_one (struct pci_dev *pdev)
pci_free_consistent(pdev, TX_TOTAL_SIZE, hmp->tx_ring, pci_free_consistent(pdev, TX_TOTAL_SIZE, hmp->tx_ring,
hmp->tx_ring_dma); hmp->tx_ring_dma);
unregister_netdev(dev); unregister_netdev(dev);
iounmap((char *)dev->base_addr); iounmap(hmp->base);
free_netdev(dev); free_netdev(dev);
pci_release_regions(pdev); pci_release_regions(pdev);
pci_set_drvdata(pdev, NULL); pci_set_drvdata(pdev, NULL);
......
...@@ -118,7 +118,7 @@ static void myri_enable_irq(void __iomem *lp, void __iomem *cregs) ...@@ -118,7 +118,7 @@ static void myri_enable_irq(void __iomem *lp, void __iomem *cregs)
static inline void bang_the_chip(struct myri_eth *mp) static inline void bang_the_chip(struct myri_eth *mp)
{ {
struct myri_shmem *shmem = mp->shmem; struct myri_shmem __iomem *shmem = mp->shmem;
void __iomem *cregs = mp->cregs; void __iomem *cregs = mp->cregs;
sbus_writel(1, &shmem->send); sbus_writel(1, &shmem->send);
...@@ -127,9 +127,9 @@ static inline void bang_the_chip(struct myri_eth *mp) ...@@ -127,9 +127,9 @@ static inline void bang_the_chip(struct myri_eth *mp)
static int myri_do_handshake(struct myri_eth *mp) static int myri_do_handshake(struct myri_eth *mp)
{ {
struct myri_shmem *shmem = mp->shmem; struct myri_shmem __iomem *shmem = mp->shmem;
void __iomem *cregs = mp->cregs; void __iomem *cregs = mp->cregs;
struct myri_channel *chan = &shmem->channel; struct myri_channel __iomem *chan = &shmem->channel;
int tick = 0; int tick = 0;
DET(("myri_do_handshake: ")); DET(("myri_do_handshake: "));
...@@ -427,7 +427,7 @@ static void myri_rx(struct myri_eth *mp, struct net_device *dev) ...@@ -427,7 +427,7 @@ static void myri_rx(struct myri_eth *mp, struct net_device *dev)
u32 csum = sbus_readl(&rxdack->csum); u32 csum = sbus_readl(&rxdack->csum);
int len = sbus_readl(&rxdack->myri_scatters[0].len); int len = sbus_readl(&rxdack->myri_scatters[0].len);
int index = sbus_readl(&rxdack->ctx); int index = sbus_readl(&rxdack->ctx);
struct myri_rxd __iomem *rxd = &rq->myri_rxd[rq->tail]; struct myri_rxd __iomem *rxd = &rq->myri_rxd[sbus_readl(&rq->tail)];
struct sk_buff *skb = mp->rx_skbs[index]; struct sk_buff *skb = mp->rx_skbs[index];
/* Ack it. */ /* Ack it. */
...@@ -546,7 +546,7 @@ static irqreturn_t myri_interrupt(int irq, void *dev_id, struct pt_regs *regs) ...@@ -546,7 +546,7 @@ static irqreturn_t myri_interrupt(int irq, void *dev_id, struct pt_regs *regs)
struct net_device *dev = (struct net_device *) dev_id; struct net_device *dev = (struct net_device *) dev_id;
struct myri_eth *mp = (struct myri_eth *) dev->priv; struct myri_eth *mp = (struct myri_eth *) dev->priv;
void __iomem *lregs = mp->lregs; void __iomem *lregs = mp->lregs;
struct myri_channel *chan = &mp->shmem->channel; struct myri_channel __iomem *chan = &mp->shmem->channel;
unsigned long flags; unsigned long flags;
u32 status; u32 status;
int handled = 0; int handled = 0;
......
...@@ -277,7 +277,7 @@ static int init_shared_mem(struct s2io_nic *nic) ...@@ -277,7 +277,7 @@ static int init_shared_mem(struct s2io_nic *nic)
int lst_size, lst_per_page; int lst_size, lst_per_page;
struct net_device *dev = nic->dev; struct net_device *dev = nic->dev;
#ifdef CONFIG_2BUFF_MODE #ifdef CONFIG_2BUFF_MODE
u64 tmp; unsigned long tmp;
buffAdd_t *ba; buffAdd_t *ba;
#endif #endif
...@@ -448,22 +448,22 @@ static int init_shared_mem(struct s2io_nic *nic) ...@@ -448,22 +448,22 @@ static int init_shared_mem(struct s2io_nic *nic)
while (k != MAX_RXDS_PER_BLOCK) { while (k != MAX_RXDS_PER_BLOCK) {
ba = &nic->ba[i][j][k]; ba = &nic->ba[i][j][k];
ba->ba_0_org = (void *) kmalloc ba->ba_0_org = kmalloc
(BUF0_LEN + ALIGN_SIZE, GFP_KERNEL); (BUF0_LEN + ALIGN_SIZE, GFP_KERNEL);
if (!ba->ba_0_org) if (!ba->ba_0_org)
return -ENOMEM; return -ENOMEM;
tmp = (u64) ba->ba_0_org; tmp = (unsigned long) ba->ba_0_org;
tmp += ALIGN_SIZE; tmp += ALIGN_SIZE;
tmp &= ~((u64) ALIGN_SIZE); tmp &= ~((unsigned long) ALIGN_SIZE);
ba->ba_0 = (void *) tmp; ba->ba_0 = (void *) tmp;
ba->ba_1_org = (void *) kmalloc ba->ba_1_org = kmalloc
(BUF1_LEN + ALIGN_SIZE, GFP_KERNEL); (BUF1_LEN + ALIGN_SIZE, GFP_KERNEL);
if (!ba->ba_1_org) if (!ba->ba_1_org)
return -ENOMEM; return -ENOMEM;
tmp = (u64) ba->ba_1_org; tmp = (unsigned long) ba->ba_1_org;
tmp += ALIGN_SIZE; tmp += ALIGN_SIZE;
tmp &= ~((u64) ALIGN_SIZE); tmp &= ~((unsigned long) ALIGN_SIZE);
ba->ba_1 = (void *) tmp; ba->ba_1 = (void *) tmp;
k++; k++;
} }
...@@ -610,10 +610,10 @@ static void free_shared_mem(struct s2io_nic *nic) ...@@ -610,10 +610,10 @@ static void free_shared_mem(struct s2io_nic *nic)
static int init_nic(struct s2io_nic *nic) static int init_nic(struct s2io_nic *nic)
{ {
XENA_dev_config_t *bar0 = (XENA_dev_config_t *) nic->bar0; XENA_dev_config_t __iomem *bar0 = nic->bar0;
struct net_device *dev = nic->dev; struct net_device *dev = nic->dev;
register u64 val64 = 0; register u64 val64 = 0;
void *add; void __iomem *add;
u32 time; u32 time;
int i, j; int i, j;
mac_info_t *mac_control; mac_info_t *mac_control;
...@@ -702,7 +702,7 @@ static int init_nic(struct s2io_nic *nic) ...@@ -702,7 +702,7 @@ static int init_nic(struct s2io_nic *nic)
schedule_timeout(HZ / 2); schedule_timeout(HZ / 2);
/* Enable Receiving broadcasts */ /* Enable Receiving broadcasts */
add = (void *) &bar0->mac_cfg; add = &bar0->mac_cfg;
val64 = readq(&bar0->mac_cfg); val64 = readq(&bar0->mac_cfg);
val64 |= MAC_RMAC_BCAST_ENABLE; val64 |= MAC_RMAC_BCAST_ENABLE;
writeq(RMAC_CFG_KEY(0x4C0D), &bar0->rmac_cfg_key); writeq(RMAC_CFG_KEY(0x4C0D), &bar0->rmac_cfg_key);
...@@ -1003,7 +1003,7 @@ static int init_nic(struct s2io_nic *nic) ...@@ -1003,7 +1003,7 @@ static int init_nic(struct s2io_nic *nic)
writeq(0xffbbffbbffbbffbbULL, &bar0->mc_pause_thresh_q4q7); writeq(0xffbbffbbffbbffbbULL, &bar0->mc_pause_thresh_q4q7);
/* Disable RMAC PAD STRIPPING */ /* Disable RMAC PAD STRIPPING */
add = (void *) &bar0->mac_cfg; add = &bar0->mac_cfg;
val64 = readq(&bar0->mac_cfg); val64 = readq(&bar0->mac_cfg);
val64 &= ~(MAC_CFG_RMAC_STRIP_PAD); val64 &= ~(MAC_CFG_RMAC_STRIP_PAD);
writeq(RMAC_CFG_KEY(0x4C0D), &bar0->rmac_cfg_key); writeq(RMAC_CFG_KEY(0x4C0D), &bar0->rmac_cfg_key);
...@@ -1069,7 +1069,7 @@ static int init_nic(struct s2io_nic *nic) ...@@ -1069,7 +1069,7 @@ static int init_nic(struct s2io_nic *nic)
static void en_dis_able_nic_intrs(struct s2io_nic *nic, u16 mask, int flag) static void en_dis_able_nic_intrs(struct s2io_nic *nic, u16 mask, int flag)
{ {
XENA_dev_config_t *bar0 = (XENA_dev_config_t *) nic->bar0; XENA_dev_config_t __iomem *bar0 = nic->bar0;
register u64 val64 = 0, temp64 = 0; register u64 val64 = 0, temp64 = 0;
/* Top level interrupt classification */ /* Top level interrupt classification */
...@@ -1354,7 +1354,7 @@ static int verify_xena_quiescence(u64 val64, int flag) ...@@ -1354,7 +1354,7 @@ static int verify_xena_quiescence(u64 val64, int flag)
void fix_mac_address(nic_t * sp) void fix_mac_address(nic_t * sp)
{ {
XENA_dev_config_t *bar0 = (XENA_dev_config_t *) sp->bar0; XENA_dev_config_t __iomem *bar0 = sp->bar0;
u64 val64; u64 val64;
int i = 0; int i = 0;
...@@ -1379,7 +1379,7 @@ void fix_mac_address(nic_t * sp) ...@@ -1379,7 +1379,7 @@ void fix_mac_address(nic_t * sp)
static int start_nic(struct s2io_nic *nic) static int start_nic(struct s2io_nic *nic)
{ {
XENA_dev_config_t *bar0 = (XENA_dev_config_t *) nic->bar0; XENA_dev_config_t __iomem *bar0 = nic->bar0;
struct net_device *dev = nic->dev; struct net_device *dev = nic->dev;
register u64 val64 = 0; register u64 val64 = 0;
u16 interruptible, i; u16 interruptible, i;
...@@ -1474,7 +1474,7 @@ static int start_nic(struct s2io_nic *nic) ...@@ -1474,7 +1474,7 @@ static int start_nic(struct s2io_nic *nic)
val64 |= 0x0000800000000000ULL; val64 |= 0x0000800000000000ULL;
writeq(val64, &bar0->gpio_control); writeq(val64, &bar0->gpio_control);
val64 = 0x0411040400000000ULL; val64 = 0x0411040400000000ULL;
writeq(val64, (void *) ((u8 *) bar0 + 0x2700)); writeq(val64, (void __iomem *) bar0 + 0x2700);
} }
/* /*
...@@ -1557,7 +1557,7 @@ void free_tx_buffers(struct s2io_nic *nic) ...@@ -1557,7 +1557,7 @@ void free_tx_buffers(struct s2io_nic *nic)
static void stop_nic(struct s2io_nic *nic) static void stop_nic(struct s2io_nic *nic)
{ {
XENA_dev_config_t *bar0 = (XENA_dev_config_t *) nic->bar0; XENA_dev_config_t __iomem *bar0 = nic->bar0;
register u64 val64 = 0; register u64 val64 = 0;
u16 interruptible, i; u16 interruptible, i;
mac_info_t *mac_control; mac_info_t *mac_control;
...@@ -1615,7 +1615,7 @@ int fill_rx_buffers(struct s2io_nic *nic, int ring_no) ...@@ -1615,7 +1615,7 @@ int fill_rx_buffers(struct s2io_nic *nic, int ring_no)
#ifdef CONFIG_2BUFF_MODE #ifdef CONFIG_2BUFF_MODE
RxD_t *rxdpnext; RxD_t *rxdpnext;
int nextblk; int nextblk;
u64 tmp; unsigned long tmp;
buffAdd_t *ba; buffAdd_t *ba;
dma_addr_t rxdpphys; dma_addr_t rxdpphys;
#endif #endif
...@@ -1757,7 +1757,7 @@ int fill_rx_buffers(struct s2io_nic *nic, int ring_no) ...@@ -1757,7 +1757,7 @@ int fill_rx_buffers(struct s2io_nic *nic, int ring_no)
#else #else
ba = &nic->ba[ring_no][block_no][off]; ba = &nic->ba[ring_no][block_no][off];
skb_reserve(skb, BUF0_LEN); skb_reserve(skb, BUF0_LEN);
tmp = (u64) skb->data; tmp = (unsigned long) skb->data;
tmp += ALIGN_SIZE; tmp += ALIGN_SIZE;
tmp &= ~ALIGN_SIZE; tmp &= ~ALIGN_SIZE;
skb->data = (void *) tmp; skb->data = (void *) tmp;
...@@ -1900,7 +1900,7 @@ static void free_rx_buffers(struct s2io_nic *sp) ...@@ -1900,7 +1900,7 @@ static void free_rx_buffers(struct s2io_nic *sp)
static int s2io_poll(struct net_device *dev, int *budget) static int s2io_poll(struct net_device *dev, int *budget)
{ {
nic_t *nic = dev->priv; nic_t *nic = dev->priv;
XENA_dev_config_t *bar0 = (XENA_dev_config_t *) nic->bar0; XENA_dev_config_t __iomem *bar0 = nic->bar0;
int pkts_to_process = *budget, pkt_cnt = 0; int pkts_to_process = *budget, pkt_cnt = 0;
register u64 val64 = 0; register u64 val64 = 0;
rx_curr_get_info_t get_info, put_info; rx_curr_get_info_t get_info, put_info;
...@@ -2269,7 +2269,7 @@ static void rx_intr_handler(struct s2io_nic *nic) ...@@ -2269,7 +2269,7 @@ static void rx_intr_handler(struct s2io_nic *nic)
static void tx_intr_handler(struct s2io_nic *nic) static void tx_intr_handler(struct s2io_nic *nic)
{ {
XENA_dev_config_t *bar0 = (XENA_dev_config_t *) nic->bar0; XENA_dev_config_t __iomem *bar0 = nic->bar0;
struct net_device *dev = (struct net_device *) nic->dev; struct net_device *dev = (struct net_device *) nic->dev;
tx_curr_get_info_t get_info, put_info; tx_curr_get_info_t get_info, put_info;
struct sk_buff *skb; struct sk_buff *skb;
...@@ -2376,7 +2376,7 @@ static void tx_intr_handler(struct s2io_nic *nic) ...@@ -2376,7 +2376,7 @@ static void tx_intr_handler(struct s2io_nic *nic)
static void alarm_intr_handler(struct s2io_nic *nic) static void alarm_intr_handler(struct s2io_nic *nic)
{ {
struct net_device *dev = (struct net_device *) nic->dev; struct net_device *dev = (struct net_device *) nic->dev;
XENA_dev_config_t *bar0 = (XENA_dev_config_t *) nic->bar0; XENA_dev_config_t __iomem *bar0 = nic->bar0;
register u64 val64 = 0, err_reg = 0; register u64 val64 = 0, err_reg = 0;
/* Handling link status change error Intr */ /* Handling link status change error Intr */
...@@ -2427,7 +2427,7 @@ static void alarm_intr_handler(struct s2io_nic *nic) ...@@ -2427,7 +2427,7 @@ static void alarm_intr_handler(struct s2io_nic *nic)
int wait_for_cmd_complete(nic_t * sp) int wait_for_cmd_complete(nic_t * sp)
{ {
XENA_dev_config_t *bar0 = (XENA_dev_config_t *) sp->bar0; XENA_dev_config_t __iomem *bar0 = sp->bar0;
int ret = FAILURE, cnt = 0; int ret = FAILURE, cnt = 0;
u64 val64; u64 val64;
...@@ -2458,7 +2458,7 @@ int wait_for_cmd_complete(nic_t * sp) ...@@ -2458,7 +2458,7 @@ int wait_for_cmd_complete(nic_t * sp)
void s2io_reset(nic_t * sp) void s2io_reset(nic_t * sp)
{ {
XENA_dev_config_t *bar0 = (XENA_dev_config_t *) sp->bar0; XENA_dev_config_t __iomem *bar0 = sp->bar0;
u64 val64; u64 val64;
u16 subid; u16 subid;
...@@ -2494,7 +2494,7 @@ void s2io_reset(nic_t * sp) ...@@ -2494,7 +2494,7 @@ void s2io_reset(nic_t * sp)
val64 |= 0x0000800000000000ULL; val64 |= 0x0000800000000000ULL;
writeq(val64, &bar0->gpio_control); writeq(val64, &bar0->gpio_control);
val64 = 0x0411040400000000ULL; val64 = 0x0411040400000000ULL;
writeq(val64, (void *) ((u8 *) bar0 + 0x2700)); writeq(val64, (void __iomem *) bar0 + 0x2700);
} }
sp->device_enabled_once = FALSE; sp->device_enabled_once = FALSE;
...@@ -2513,7 +2513,7 @@ void s2io_reset(nic_t * sp) ...@@ -2513,7 +2513,7 @@ void s2io_reset(nic_t * sp)
int s2io_set_swapper(nic_t * sp) int s2io_set_swapper(nic_t * sp)
{ {
struct net_device *dev = sp->dev; struct net_device *dev = sp->dev;
XENA_dev_config_t *bar0 = (XENA_dev_config_t *) sp->bar0; XENA_dev_config_t __iomem *bar0 = sp->bar0;
u64 val64; u64 val64;
/* /*
...@@ -2689,14 +2689,14 @@ int s2io_xmit(struct sk_buff *skb, struct net_device *dev) ...@@ -2689,14 +2689,14 @@ int s2io_xmit(struct sk_buff *skb, struct net_device *dev)
u16 frg_cnt, frg_len, i, queue, queue_len, put_off, get_off; u16 frg_cnt, frg_len, i, queue, queue_len, put_off, get_off;
register u64 val64; register u64 val64;
TxD_t *txdp; TxD_t *txdp;
TxFIFO_element_t *tx_fifo; TxFIFO_element_t __iomem *tx_fifo;
unsigned long flags; unsigned long flags;
#ifdef NETIF_F_TSO #ifdef NETIF_F_TSO
int mss; int mss;
#endif #endif
mac_info_t *mac_control; mac_info_t *mac_control;
struct config_param *config; struct config_param *config;
XENA_dev_config_t *bar0 = (XENA_dev_config_t *) sp->bar0; XENA_dev_config_t __iomem *bar0 = sp->bar0;
mac_control = &sp->mac_control; mac_control = &sp->mac_control;
config = &sp->config; config = &sp->config;
...@@ -2813,7 +2813,7 @@ static irqreturn_t s2io_isr(int irq, void *dev_id, struct pt_regs *regs) ...@@ -2813,7 +2813,7 @@ static irqreturn_t s2io_isr(int irq, void *dev_id, struct pt_regs *regs)
{ {
struct net_device *dev = (struct net_device *) dev_id; struct net_device *dev = (struct net_device *) dev_id;
nic_t *sp = dev->priv; nic_t *sp = dev->priv;
XENA_dev_config_t *bar0 = (XENA_dev_config_t *) sp->bar0; XENA_dev_config_t __iomem *bar0 = sp->bar0;
#ifndef CONFIG_S2IO_NAPI #ifndef CONFIG_S2IO_NAPI
int i, ret; int i, ret;
#endif #endif
...@@ -2939,11 +2939,11 @@ static void s2io_set_multicast(struct net_device *dev) ...@@ -2939,11 +2939,11 @@ static void s2io_set_multicast(struct net_device *dev)
int i, j, prev_cnt; int i, j, prev_cnt;
struct dev_mc_list *mclist; struct dev_mc_list *mclist;
nic_t *sp = dev->priv; nic_t *sp = dev->priv;
XENA_dev_config_t *bar0 = (XENA_dev_config_t *) sp->bar0; XENA_dev_config_t __iomem *bar0 = sp->bar0;
u64 val64 = 0, multi_mac = 0x010203040506ULL, mask = u64 val64 = 0, multi_mac = 0x010203040506ULL, mask =
0xfeffffffffffULL; 0xfeffffffffffULL;
u64 dis_addr = 0xffffffffffffULL, mac_addr = 0; u64 dis_addr = 0xffffffffffffULL, mac_addr = 0;
void *add; void __iomem *add;
if ((dev->flags & IFF_ALLMULTI) && (!sp->m_cast_flg)) { if ((dev->flags & IFF_ALLMULTI) && (!sp->m_cast_flg)) {
/* Enable all Multicast addresses */ /* Enable all Multicast addresses */
...@@ -2977,7 +2977,7 @@ static void s2io_set_multicast(struct net_device *dev) ...@@ -2977,7 +2977,7 @@ static void s2io_set_multicast(struct net_device *dev)
if ((dev->flags & IFF_PROMISC) && (!sp->promisc_flg)) { if ((dev->flags & IFF_PROMISC) && (!sp->promisc_flg)) {
/* Put the NIC into promiscuous mode */ /* Put the NIC into promiscuous mode */
add = (void *) &bar0->mac_cfg; add = &bar0->mac_cfg;
val64 = readq(&bar0->mac_cfg); val64 = readq(&bar0->mac_cfg);
val64 |= MAC_CFG_RMAC_PROM_ENABLE; val64 |= MAC_CFG_RMAC_PROM_ENABLE;
...@@ -2992,7 +2992,7 @@ static void s2io_set_multicast(struct net_device *dev) ...@@ -2992,7 +2992,7 @@ static void s2io_set_multicast(struct net_device *dev)
dev->name); dev->name);
} else if (!(dev->flags & IFF_PROMISC) && (sp->promisc_flg)) { } else if (!(dev->flags & IFF_PROMISC) && (sp->promisc_flg)) {
/* Remove the NIC from promiscuous mode */ /* Remove the NIC from promiscuous mode */
add = (void *) &bar0->mac_cfg; add = &bar0->mac_cfg;
val64 = readq(&bar0->mac_cfg); val64 = readq(&bar0->mac_cfg);
val64 &= ~MAC_CFG_RMAC_PROM_ENABLE; val64 &= ~MAC_CFG_RMAC_PROM_ENABLE;
...@@ -3082,7 +3082,7 @@ static void s2io_set_multicast(struct net_device *dev) ...@@ -3082,7 +3082,7 @@ static void s2io_set_multicast(struct net_device *dev)
int s2io_set_mac_addr(struct net_device *dev, u8 * addr) int s2io_set_mac_addr(struct net_device *dev, u8 * addr)
{ {
nic_t *sp = dev->priv; nic_t *sp = dev->priv;
XENA_dev_config_t *bar0 = (XENA_dev_config_t *) sp->bar0; XENA_dev_config_t __iomem *bar0 = sp->bar0;
register u64 val64, mac_addr = 0; register u64 val64, mac_addr = 0;
int i; int i;
...@@ -3225,7 +3225,7 @@ static void s2io_ethtool_gregs(struct net_device *dev, ...@@ -3225,7 +3225,7 @@ static void s2io_ethtool_gregs(struct net_device *dev,
regs->version = sp->pdev->subsystem_device; regs->version = sp->pdev->subsystem_device;
for (i = 0; i < regs->len; i += 8) { for (i = 0; i < regs->len; i += 8) {
reg = readq((void *) (sp->bar0 + i)); reg = readq(sp->bar0 + i);
memcpy((reg_space + i), &reg, 8); memcpy((reg_space + i), &reg, 8);
} }
} }
...@@ -3242,7 +3242,7 @@ static void s2io_ethtool_gregs(struct net_device *dev, ...@@ -3242,7 +3242,7 @@ static void s2io_ethtool_gregs(struct net_device *dev,
static void s2io_phy_id(unsigned long data) static void s2io_phy_id(unsigned long data)
{ {
nic_t *sp = (nic_t *) data; nic_t *sp = (nic_t *) data;
XENA_dev_config_t *bar0 = (XENA_dev_config_t *) sp->bar0; XENA_dev_config_t __iomem *bar0 = sp->bar0;
u64 val64 = 0; u64 val64 = 0;
u16 subid; u16 subid;
...@@ -3279,7 +3279,7 @@ static int s2io_ethtool_idnic(struct net_device *dev, u32 data) ...@@ -3279,7 +3279,7 @@ static int s2io_ethtool_idnic(struct net_device *dev, u32 data)
{ {
u64 val64 = 0, last_gpio_ctrl_val; u64 val64 = 0, last_gpio_ctrl_val;
nic_t *sp = dev->priv; nic_t *sp = dev->priv;
XENA_dev_config_t *bar0 = (XENA_dev_config_t *) sp->bar0; XENA_dev_config_t __iomem *bar0 = sp->bar0;
u16 subid; u16 subid;
subid = sp->pdev->subsystem_device; subid = sp->pdev->subsystem_device;
...@@ -3327,7 +3327,7 @@ static void s2io_ethtool_getpause_data(struct net_device *dev, ...@@ -3327,7 +3327,7 @@ static void s2io_ethtool_getpause_data(struct net_device *dev,
{ {
u64 val64; u64 val64;
nic_t *sp = dev->priv; nic_t *sp = dev->priv;
XENA_dev_config_t *bar0 = (XENA_dev_config_t *) sp->bar0; XENA_dev_config_t __iomem *bar0 = sp->bar0;
val64 = readq(&bar0->rmac_pause_cfg); val64 = readq(&bar0->rmac_pause_cfg);
if (val64 & RMAC_PAUSE_GEN_ENABLE) if (val64 & RMAC_PAUSE_GEN_ENABLE)
...@@ -3354,7 +3354,7 @@ int s2io_ethtool_setpause_data(struct net_device *dev, ...@@ -3354,7 +3354,7 @@ int s2io_ethtool_setpause_data(struct net_device *dev,
{ {
u64 val64; u64 val64;
nic_t *sp = dev->priv; nic_t *sp = dev->priv;
XENA_dev_config_t *bar0 = (XENA_dev_config_t *) sp->bar0; XENA_dev_config_t __iomem *bar0 = sp->bar0;
val64 = readq(&bar0->rmac_pause_cfg); val64 = readq(&bar0->rmac_pause_cfg);
if (ep->tx_pause) if (ep->tx_pause)
...@@ -3391,7 +3391,7 @@ static int read_eeprom(nic_t * sp, int off, u32 * data) ...@@ -3391,7 +3391,7 @@ static int read_eeprom(nic_t * sp, int off, u32 * data)
int ret = -1; int ret = -1;
u32 exit_cnt = 0; u32 exit_cnt = 0;
u64 val64; u64 val64;
XENA_dev_config_t *bar0 = (XENA_dev_config_t *) sp->bar0; XENA_dev_config_t __iomem *bar0 = sp->bar0;
val64 = I2C_CONTROL_DEV_ID(S2IO_DEV_ID) | I2C_CONTROL_ADDR(off) | val64 = I2C_CONTROL_DEV_ID(S2IO_DEV_ID) | I2C_CONTROL_ADDR(off) |
I2C_CONTROL_BYTE_CNT(0x3) | I2C_CONTROL_READ | I2C_CONTROL_BYTE_CNT(0x3) | I2C_CONTROL_READ |
...@@ -3432,7 +3432,7 @@ static int write_eeprom(nic_t * sp, int off, u32 data, int cnt) ...@@ -3432,7 +3432,7 @@ static int write_eeprom(nic_t * sp, int off, u32 data, int cnt)
{ {
int exit_cnt = 0, ret = -1; int exit_cnt = 0, ret = -1;
u64 val64; u64 val64;
XENA_dev_config_t *bar0 = (XENA_dev_config_t *) sp->bar0; XENA_dev_config_t __iomem *bar0 = sp->bar0;
val64 = I2C_CONTROL_DEV_ID(S2IO_DEV_ID) | I2C_CONTROL_ADDR(off) | val64 = I2C_CONTROL_DEV_ID(S2IO_DEV_ID) | I2C_CONTROL_ADDR(off) |
I2C_CONTROL_BYTE_CNT(cnt) | I2C_CONTROL_SET_DATA(data) | I2C_CONTROL_BYTE_CNT(cnt) | I2C_CONTROL_SET_DATA(data) |
...@@ -3555,7 +3555,7 @@ static int s2io_ethtool_seeprom(struct net_device *dev, ...@@ -3555,7 +3555,7 @@ static int s2io_ethtool_seeprom(struct net_device *dev,
static int s2io_register_test(nic_t * sp, uint64_t * data) static int s2io_register_test(nic_t * sp, uint64_t * data)
{ {
XENA_dev_config_t *bar0 = (XENA_dev_config_t *) sp->bar0; XENA_dev_config_t __iomem *bar0 = sp->bar0;
u64 val64 = 0; u64 val64 = 0;
int fail = 0; int fail = 0;
...@@ -3726,7 +3726,7 @@ static int s2io_bist_test(nic_t * sp, uint64_t * data) ...@@ -3726,7 +3726,7 @@ static int s2io_bist_test(nic_t * sp, uint64_t * data)
static int s2io_link_test(nic_t * sp, uint64_t * data) static int s2io_link_test(nic_t * sp, uint64_t * data)
{ {
XENA_dev_config_t *bar0 = (XENA_dev_config_t *) sp->bar0; XENA_dev_config_t __iomem *bar0 = sp->bar0;
u64 val64; u64 val64;
val64 = readq(&bar0->adapter_status); val64 = readq(&bar0->adapter_status);
...@@ -3751,7 +3751,7 @@ static int s2io_link_test(nic_t * sp, uint64_t * data) ...@@ -3751,7 +3751,7 @@ static int s2io_link_test(nic_t * sp, uint64_t * data)
static int s2io_rldram_test(nic_t * sp, uint64_t * data) static int s2io_rldram_test(nic_t * sp, uint64_t * data)
{ {
XENA_dev_config_t *bar0 = (XENA_dev_config_t *) sp->bar0; XENA_dev_config_t __iomem *bar0 = sp->bar0;
u64 val64; u64 val64;
int cnt, iteration = 0, test_pass = 0; int cnt, iteration = 0, test_pass = 0;
...@@ -4092,7 +4092,7 @@ int s2io_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) ...@@ -4092,7 +4092,7 @@ int s2io_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
int s2io_change_mtu(struct net_device *dev, int new_mtu) int s2io_change_mtu(struct net_device *dev, int new_mtu)
{ {
nic_t *sp = dev->priv; nic_t *sp = dev->priv;
XENA_dev_config_t *bar0 = (XENA_dev_config_t *) sp->bar0; XENA_dev_config_t __iomem *bar0 = sp->bar0;
register u64 val64; register u64 val64;
if (netif_running(dev)) { if (netif_running(dev)) {
...@@ -4169,7 +4169,7 @@ static void s2io_set_link(unsigned long data) ...@@ -4169,7 +4169,7 @@ static void s2io_set_link(unsigned long data)
{ {
nic_t *nic = (nic_t *) data; nic_t *nic = (nic_t *) data;
struct net_device *dev = nic->dev; struct net_device *dev = nic->dev;
XENA_dev_config_t *bar0 = (XENA_dev_config_t *) nic->bar0; XENA_dev_config_t __iomem *bar0 = nic->bar0;
register u64 val64; register u64 val64;
u16 subid; u16 subid;
...@@ -4233,7 +4233,7 @@ static void s2io_set_link(unsigned long data) ...@@ -4233,7 +4233,7 @@ static void s2io_set_link(unsigned long data)
static void s2io_card_down(nic_t * sp) static void s2io_card_down(nic_t * sp)
{ {
int cnt = 0; int cnt = 0;
XENA_dev_config_t *bar0 = (XENA_dev_config_t *) sp->bar0; XENA_dev_config_t __iomem *bar0 = sp->bar0;
unsigned long flags; unsigned long flags;
register u64 val64 = 0; register u64 val64 = 0;
...@@ -4611,7 +4611,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre) ...@@ -4611,7 +4611,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre)
int dma_flag = FALSE; int dma_flag = FALSE;
u32 mac_up, mac_down; u32 mac_up, mac_down;
u64 val64 = 0, tmp64 = 0; u64 val64 = 0, tmp64 = 0;
XENA_dev_config_t *bar0 = NULL; XENA_dev_config_t __iomem *bar0 = NULL;
u16 subid; u16 subid;
mac_info_t *mac_control; mac_info_t *mac_control;
struct config_param *config; struct config_param *config;
...@@ -4741,7 +4741,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre) ...@@ -4741,7 +4741,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre)
goto mem_alloc_failed; goto mem_alloc_failed;
} }
sp->bar0 = (caddr_t) ioremap(pci_resource_start(pdev, 0), sp->bar0 = ioremap(pci_resource_start(pdev, 0),
pci_resource_len(pdev, 0)); pci_resource_len(pdev, 0));
if (!sp->bar0) { if (!sp->bar0) {
DBG_PRINT(ERR_DBG, "%s: S2IO: cannot remap io mem1\n", DBG_PRINT(ERR_DBG, "%s: S2IO: cannot remap io mem1\n",
...@@ -4750,7 +4750,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre) ...@@ -4750,7 +4750,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre)
goto bar0_remap_failed; goto bar0_remap_failed;
} }
sp->bar1 = (caddr_t) ioremap(pci_resource_start(pdev, 2), sp->bar1 = ioremap(pci_resource_start(pdev, 2),
pci_resource_len(pdev, 2)); pci_resource_len(pdev, 2));
if (!sp->bar1) { if (!sp->bar1) {
DBG_PRINT(ERR_DBG, "%s: S2IO: cannot remap io mem2\n", DBG_PRINT(ERR_DBG, "%s: S2IO: cannot remap io mem2\n",
...@@ -4764,7 +4764,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre) ...@@ -4764,7 +4764,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre)
/* Initializing the BAR1 address as the start of the FIFO pointer. */ /* Initializing the BAR1 address as the start of the FIFO pointer. */
for (j = 0; j < MAX_TX_FIFOS; j++) { for (j = 0; j < MAX_TX_FIFOS; j++) {
mac_control->tx_FIFO_start[j] = (TxFIFO_element_t *) mac_control->tx_FIFO_start[j] = (TxFIFO_element_t __iomem *)
(sp->bar1 + (j * 0x00020000)); (sp->bar1 + (j * 0x00020000));
} }
...@@ -4829,7 +4829,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre) ...@@ -4829,7 +4829,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre)
* MAC address initialization. * MAC address initialization.
* For now only one mac address will be read and used. * For now only one mac address will be read and used.
*/ */
bar0 = (XENA_dev_config_t *) sp->bar0; bar0 = sp->bar0;
val64 = RMAC_ADDR_CMD_MEM_RD | RMAC_ADDR_CMD_MEM_STROBE_NEW_CMD | val64 = RMAC_ADDR_CMD_MEM_RD | RMAC_ADDR_CMD_MEM_STROBE_NEW_CMD |
RMAC_ADDR_CMD_MEM_OFFSET(0 + MAC_MAC_ADDR_START_OFFSET); RMAC_ADDR_CMD_MEM_OFFSET(0 + MAC_MAC_ADDR_START_OFFSET);
writeq(val64, &bar0->rmac_addr_cmd_mem); writeq(val64, &bar0->rmac_addr_cmd_mem);
...@@ -4886,7 +4886,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre) ...@@ -4886,7 +4886,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre)
val64 |= 0x0000800000000000ULL; val64 |= 0x0000800000000000ULL;
writeq(val64, &bar0->gpio_control); writeq(val64, &bar0->gpio_control);
val64 = 0x0411040400000000ULL; val64 = 0x0411040400000000ULL;
writeq(val64, (u64 *) ((u8 *) bar0 + 0x2700)); writeq(val64, (void __iomem *) bar0 + 0x2700);
val64 = readq(&bar0->gpio_control); val64 = readq(&bar0->gpio_control);
} }
......
...@@ -583,7 +583,7 @@ typedef struct mac_info { ...@@ -583,7 +583,7 @@ typedef struct mac_info {
/* tx side stuff */ /* tx side stuff */
/* logical pointer of start of each Tx FIFO */ /* logical pointer of start of each Tx FIFO */
TxFIFO_element_t *tx_FIFO_start[MAX_TX_FIFOS]; TxFIFO_element_t __iomem *tx_FIFO_start[MAX_TX_FIFOS];
/* Current offset within tx_FIFO_start, where driver would write new Tx frame*/ /* Current offset within tx_FIFO_start, where driver would write new Tx frame*/
tx_curr_put_info_t tx_curr_put_info[MAX_TX_FIFOS]; tx_curr_put_info_t tx_curr_put_info[MAX_TX_FIFOS];
...@@ -623,8 +623,8 @@ typedef struct s2io_nic { ...@@ -623,8 +623,8 @@ typedef struct s2io_nic {
macaddr_t pre_mac_addr[MAX_MAC_SUPPORTED]; macaddr_t pre_mac_addr[MAX_MAC_SUPPORTED];
struct net_device_stats stats; struct net_device_stats stats;
caddr_t bar0; void __iomem *bar0;
caddr_t bar1; void __iomem *bar1;
struct config_param config; struct config_param config;
mac_info_t mac_control; mac_info_t mac_control;
int high_dma_flag; int high_dma_flag;
...@@ -736,10 +736,9 @@ typedef struct s2io_nic { ...@@ -736,10 +736,9 @@ typedef struct s2io_nic {
/* OS related system calls */ /* OS related system calls */
#ifndef readq #ifndef readq
static inline u64 readq(void *addr) static inline u64 readq(void __iomem *addr)
{ {
u64 ret = 0; u64 ret = readl(addr + 4);
ret = readl(addr + 4);
ret <<= 32; ret <<= 32;
ret |= readl(addr); ret |= readl(addr);
...@@ -748,7 +747,7 @@ static inline u64 readq(void *addr) ...@@ -748,7 +747,7 @@ static inline u64 readq(void *addr)
#endif #endif
#ifndef writeq #ifndef writeq
static inline void writeq(u64 val, void *addr) static inline void writeq(u64 val, void __iomem *addr)
{ {
writel((u32) (val), addr); writel((u32) (val), addr);
writel((u32) (val >> 32), (addr + 4)); writel((u32) (val >> 32), (addr + 4));
...@@ -762,7 +761,7 @@ static inline void writeq(u64 val, void *addr) ...@@ -762,7 +761,7 @@ static inline void writeq(u64 val, void *addr)
*/ */
#define UF 1 #define UF 1
#define LF 2 #define LF 2
static inline void SPECIAL_REG_WRITE(u64 val, void *addr, int order) static inline void SPECIAL_REG_WRITE(u64 val, void __iomem *addr, int order)
{ {
if (order == LF) { if (order == LF) {
writel((u32) (val), addr); writel((u32) (val), addr);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment