Commit 7bedd791 authored by Jeff Garzik's avatar Jeff Garzik

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

into pobox.com:/garz/repo/net-drivers-2.6
parents 90b14f29 2f5a21d6
...@@ -40,10 +40,10 @@ static int port_aaui = -1; ...@@ -40,10 +40,10 @@ static int port_aaui = -1;
#define TX_DMA_ERR 0x80 #define TX_DMA_ERR 0x80
struct mace_data { struct mace_data {
volatile struct mace *mace; volatile struct mace __iomem *mace;
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 */
...@@ -88,7 +88,7 @@ static irqreturn_t mace_txdma_intr(int irq, void *dev_id, struct pt_regs *regs); ...@@ -88,7 +88,7 @@ static irqreturn_t mace_txdma_intr(int irq, void *dev_id, struct pt_regs *regs);
static irqreturn_t mace_rxdma_intr(int irq, void *dev_id, struct pt_regs *regs); static irqreturn_t mace_rxdma_intr(int irq, void *dev_id, struct pt_regs *regs);
static void mace_set_timeout(struct net_device *dev); static void mace_set_timeout(struct net_device *dev);
static void mace_tx_timeout(unsigned long data); static void mace_tx_timeout(unsigned long data);
static inline void dbdma_reset(volatile struct dbdma_regs *dma); static inline void dbdma_reset(volatile struct dbdma_regs __iomem *dma);
static inline void mace_clean_rings(struct mace_data *mp); static inline void mace_clean_rings(struct mace_data *mp);
static void __mace_set_address(struct net_device *dev, void *addr); static void __mace_set_address(struct net_device *dev, void *addr);
...@@ -164,7 +164,7 @@ static int __devinit mace_probe(struct macio_dev *mdev, const struct of_match *m ...@@ -164,7 +164,7 @@ static int __devinit mace_probe(struct macio_dev *mdev, const struct of_match *m
macio_set_drvdata(mdev, dev); macio_set_drvdata(mdev, dev);
dev->base_addr = macio_resource_start(mdev, 0); dev->base_addr = macio_resource_start(mdev, 0);
mp->mace = (volatile struct mace *)ioremap(dev->base_addr, 0x1000); mp->mace = ioremap(dev->base_addr, 0x1000);
if (mp->mace == NULL) { if (mp->mace == NULL) {
printk(KERN_ERR "MACE: can't map IO resources !\n"); printk(KERN_ERR "MACE: can't map IO resources !\n");
rc = -ENOMEM; rc = -ENOMEM;
...@@ -183,8 +183,7 @@ static int __devinit mace_probe(struct macio_dev *mdev, const struct of_match *m ...@@ -183,8 +183,7 @@ static int __devinit mace_probe(struct macio_dev *mdev, const struct of_match *m
mp = (struct mace_data *) dev->priv; mp = (struct mace_data *) dev->priv;
mp->maccc = ENXMT | ENRCV; mp->maccc = ENXMT | ENRCV;
mp->tx_dma = (volatile struct dbdma_regs *) mp->tx_dma = ioremap(macio_resource_start(mdev, 1), 0x1000);
ioremap(macio_resource_start(mdev, 1), 0x1000);
if (mp->tx_dma == NULL) { if (mp->tx_dma == NULL) {
printk(KERN_ERR "MACE: can't map TX DMA resources !\n"); printk(KERN_ERR "MACE: can't map TX DMA resources !\n");
rc = -ENOMEM; rc = -ENOMEM;
...@@ -192,8 +191,7 @@ static int __devinit mace_probe(struct macio_dev *mdev, const struct of_match *m ...@@ -192,8 +191,7 @@ static int __devinit mace_probe(struct macio_dev *mdev, const struct of_match *m
} }
mp->tx_dma_intr = macio_irq(mdev, 1); mp->tx_dma_intr = macio_irq(mdev, 1);
mp->rx_dma = (volatile struct dbdma_regs *) mp->rx_dma = ioremap(macio_resource_start(mdev, 2), 0x1000);
ioremap(macio_resource_start(mdev, 2), 0x1000);
if (mp->rx_dma == NULL) { if (mp->rx_dma == NULL) {
printk(KERN_ERR "MACE: can't map RX DMA resources !\n"); printk(KERN_ERR "MACE: can't map RX DMA resources !\n");
rc = -ENOMEM; rc = -ENOMEM;
...@@ -275,11 +273,11 @@ static int __devinit mace_probe(struct macio_dev *mdev, const struct of_match *m ...@@ -275,11 +273,11 @@ static int __devinit mace_probe(struct macio_dev *mdev, const struct of_match *m
err_free_irq: err_free_irq:
free_irq(macio_irq(mdev, 0), dev); free_irq(macio_irq(mdev, 0), dev);
err_unmap_rx_dma: err_unmap_rx_dma:
iounmap((void*)mp->rx_dma); iounmap(mp->rx_dma);
err_unmap_tx_dma: err_unmap_tx_dma:
iounmap((void*)mp->tx_dma); iounmap(mp->tx_dma);
err_unmap_io: err_unmap_io:
iounmap((void*)mp->mace); iounmap(mp->mace);
err_free: err_free:
free_netdev(dev); free_netdev(dev);
err_release: err_release:
...@@ -305,9 +303,9 @@ static int __devexit mace_remove(struct macio_dev *mdev) ...@@ -305,9 +303,9 @@ static int __devexit mace_remove(struct macio_dev *mdev)
free_irq(mp->tx_dma_intr, dev); free_irq(mp->tx_dma_intr, dev);
free_irq(mp->rx_dma_intr, dev); free_irq(mp->rx_dma_intr, dev);
iounmap((void*)mp->rx_dma); iounmap(mp->rx_dma);
iounmap((void*)mp->tx_dma); iounmap(mp->tx_dma);
iounmap((void*)mp->mace); iounmap(mp->mace);
free_netdev(dev); free_netdev(dev);
...@@ -316,7 +314,7 @@ static int __devexit mace_remove(struct macio_dev *mdev) ...@@ -316,7 +314,7 @@ static int __devexit mace_remove(struct macio_dev *mdev)
return 0; return 0;
} }
static void dbdma_reset(volatile struct dbdma_regs *dma) static void dbdma_reset(volatile struct dbdma_regs __iomem *dma)
{ {
int i; int i;
...@@ -334,7 +332,7 @@ static void dbdma_reset(volatile struct dbdma_regs *dma) ...@@ -334,7 +332,7 @@ static void dbdma_reset(volatile struct dbdma_regs *dma)
static void mace_reset(struct net_device *dev) static void mace_reset(struct net_device *dev)
{ {
struct mace_data *mp = (struct mace_data *) dev->priv; struct mace_data *mp = (struct mace_data *) dev->priv;
volatile struct mace *mb = mp->mace; volatile struct mace __iomem *mb = mp->mace;
int i; int i;
/* soft-reset the chip */ /* soft-reset the chip */
...@@ -389,7 +387,7 @@ static void mace_reset(struct net_device *dev) ...@@ -389,7 +387,7 @@ static void mace_reset(struct net_device *dev)
static void __mace_set_address(struct net_device *dev, void *addr) static void __mace_set_address(struct net_device *dev, void *addr)
{ {
struct mace_data *mp = (struct mace_data *) dev->priv; struct mace_data *mp = (struct mace_data *) dev->priv;
volatile struct mace *mb = mp->mace; volatile struct mace __iomem *mb = mp->mace;
unsigned char *p = addr; unsigned char *p = addr;
int i; int i;
...@@ -410,7 +408,7 @@ static void __mace_set_address(struct net_device *dev, void *addr) ...@@ -410,7 +408,7 @@ static void __mace_set_address(struct net_device *dev, void *addr)
static int mace_set_address(struct net_device *dev, void *addr) static int mace_set_address(struct net_device *dev, void *addr)
{ {
struct mace_data *mp = (struct mace_data *) dev->priv; struct mace_data *mp = (struct mace_data *) dev->priv;
volatile struct mace *mb = mp->mace; volatile struct mace __iomem *mb = mp->mace;
unsigned long flags; unsigned long flags;
spin_lock_irqsave(&mp->lock, flags); spin_lock_irqsave(&mp->lock, flags);
...@@ -445,9 +443,9 @@ static inline void mace_clean_rings(struct mace_data *mp) ...@@ -445,9 +443,9 @@ static inline void mace_clean_rings(struct mace_data *mp)
static int mace_open(struct net_device *dev) static int mace_open(struct net_device *dev)
{ {
struct mace_data *mp = (struct mace_data *) dev->priv; struct mace_data *mp = (struct mace_data *) dev->priv;
volatile struct mace *mb = mp->mace; volatile struct mace __iomem *mb = mp->mace;
volatile struct dbdma_regs *rd = mp->rx_dma; volatile struct dbdma_regs __iomem *rd = mp->rx_dma;
volatile struct dbdma_regs *td = mp->tx_dma; volatile struct dbdma_regs __iomem *td = mp->tx_dma;
volatile struct dbdma_cmd *cp; volatile struct dbdma_cmd *cp;
int i; int i;
struct sk_buff *skb; struct sk_buff *skb;
...@@ -515,9 +513,9 @@ static int mace_open(struct net_device *dev) ...@@ -515,9 +513,9 @@ static int mace_open(struct net_device *dev)
static int mace_close(struct net_device *dev) static int mace_close(struct net_device *dev)
{ {
struct mace_data *mp = (struct mace_data *) dev->priv; struct mace_data *mp = (struct mace_data *) dev->priv;
volatile struct mace *mb = mp->mace; volatile struct mace __iomem *mb = mp->mace;
volatile struct dbdma_regs *rd = mp->rx_dma; volatile struct dbdma_regs __iomem *rd = mp->rx_dma;
volatile struct dbdma_regs *td = mp->tx_dma; volatile struct dbdma_regs __iomem *td = mp->tx_dma;
/* disable rx and tx */ /* disable rx and tx */
out_8(&mb->maccc, 0); out_8(&mb->maccc, 0);
...@@ -548,7 +546,7 @@ static inline void mace_set_timeout(struct net_device *dev) ...@@ -548,7 +546,7 @@ static inline void mace_set_timeout(struct net_device *dev)
static int mace_xmit_start(struct sk_buff *skb, struct net_device *dev) static int mace_xmit_start(struct sk_buff *skb, struct net_device *dev)
{ {
struct mace_data *mp = (struct mace_data *) dev->priv; struct mace_data *mp = (struct mace_data *) dev->priv;
volatile struct dbdma_regs *td = mp->tx_dma; volatile struct dbdma_regs __iomem *td = mp->tx_dma;
volatile struct dbdma_cmd *cp, *np; volatile struct dbdma_cmd *cp, *np;
unsigned long flags; unsigned long flags;
int fill, next, len; int fill, next, len;
...@@ -610,7 +608,7 @@ static struct net_device_stats *mace_stats(struct net_device *dev) ...@@ -610,7 +608,7 @@ static struct net_device_stats *mace_stats(struct net_device *dev)
static void mace_set_multicast(struct net_device *dev) static void mace_set_multicast(struct net_device *dev)
{ {
struct mace_data *mp = (struct mace_data *) dev->priv; struct mace_data *mp = (struct mace_data *) dev->priv;
volatile struct mace *mb = mp->mace; volatile struct mace __iomem *mb = mp->mace;
int i, j; int i, j;
u32 crc; u32 crc;
unsigned long flags; unsigned long flags;
...@@ -662,7 +660,7 @@ static void mace_set_multicast(struct net_device *dev) ...@@ -662,7 +660,7 @@ static void mace_set_multicast(struct net_device *dev)
static void mace_handle_misc_intrs(struct mace_data *mp, int intr) static void mace_handle_misc_intrs(struct mace_data *mp, int intr)
{ {
volatile struct mace *mb = mp->mace; volatile struct mace __iomem *mb = mp->mace;
static int mace_babbles, mace_jabbers; static int mace_babbles, mace_jabbers;
if (intr & MPCO) if (intr & MPCO)
...@@ -685,8 +683,8 @@ static irqreturn_t mace_interrupt(int irq, void *dev_id, struct pt_regs *regs) ...@@ -685,8 +683,8 @@ static irqreturn_t mace_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 mace_data *mp = (struct mace_data *) dev->priv; struct mace_data *mp = (struct mace_data *) dev->priv;
volatile struct mace *mb = mp->mace; volatile struct mace __iomem *mb = mp->mace;
volatile struct dbdma_regs *td = mp->tx_dma; volatile struct dbdma_regs __iomem *td = mp->tx_dma;
volatile struct dbdma_cmd *cp; volatile struct dbdma_cmd *cp;
int intr, fs, i, stat, x; int intr, fs, i, stat, x;
int xcount, dstat; int xcount, dstat;
...@@ -831,9 +829,9 @@ static void mace_tx_timeout(unsigned long data) ...@@ -831,9 +829,9 @@ static void mace_tx_timeout(unsigned long data)
{ {
struct net_device *dev = (struct net_device *) data; struct net_device *dev = (struct net_device *) data;
struct mace_data *mp = (struct mace_data *) dev->priv; struct mace_data *mp = (struct mace_data *) dev->priv;
volatile struct mace *mb = mp->mace; volatile struct mace __iomem *mb = mp->mace;
volatile struct dbdma_regs *td = mp->tx_dma; volatile struct dbdma_regs __iomem *td = mp->tx_dma;
volatile struct dbdma_regs *rd = mp->rx_dma; volatile struct dbdma_regs __iomem *rd = mp->rx_dma;
volatile struct dbdma_cmd *cp; volatile struct dbdma_cmd *cp;
unsigned long flags; unsigned long flags;
int i; int i;
...@@ -902,7 +900,7 @@ static irqreturn_t mace_rxdma_intr(int irq, void *dev_id, struct pt_regs *regs) ...@@ -902,7 +900,7 @@ static irqreturn_t mace_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 mace_data *mp = (struct mace_data *) dev->priv; struct mace_data *mp = (struct mace_data *) dev->priv;
volatile struct dbdma_regs *rd = mp->rx_dma; volatile struct dbdma_regs __iomem *rd = mp->rx_dma;
volatile struct dbdma_cmd *cp, *np; volatile struct dbdma_cmd *cp, *np;
int i, nb, stat, next; int i, nb, stat, next;
struct sk_buff *skb; struct sk_buff *skb;
......
...@@ -21,11 +21,7 @@ ...@@ -21,11 +21,7 @@
#define _FPLUS_ #define _FPLUS_
#ifndef HW_PTR #ifndef HW_PTR
#ifdef MEM_MAPPED_IO #define HW_PTR void __iomem *
#define HW_PTR u_long
#else
#define HW_PTR u_short
#endif
#endif #endif
/* /*
......
...@@ -33,11 +33,7 @@ ...@@ -33,11 +33,7 @@
#endif #endif
#ifndef HW_PTR #ifndef HW_PTR
#ifdef MEM_MAPPED_IO #define HW_PTR void __iomem *
#define HW_PTR u_long
#else
#define HW_PTR u_short
#endif
#endif #endif
#ifdef MULT_OEM #ifdef MULT_OEM
......
...@@ -53,7 +53,7 @@ ...@@ -53,7 +53,7 @@
// is redefined by linux, but we need our definition // is redefined by linux, but we need our definition
#undef ADDR #undef ADDR
#ifdef MEM_MAPPED_IO #ifdef MEM_MAPPED_IO
#define ADDR(a) (char far *) smc->hw.iop+(a) #define ADDR(a) (smc->hw.iop+(a))
#else #else
#define ADDR(a) (((a)>>7) ? (outp(smc->hw.iop+B0_RAP,(a)>>7), (smc->hw.iop+( ((a)&0x7F) | ((a)>>7 ? 0x80:0)) )) : (smc->hw.iop+(((a)&0x7F)|((a)>>7 ? 0x80:0)))) #define ADDR(a) (((a)>>7) ? (outp(smc->hw.iop+B0_RAP,(a)>>7), (smc->hw.iop+( ((a)&0x7F) | ((a)>>7 ? 0x80:0)) )) : (smc->hw.iop+(((a)&0x7F)|((a)>>7 ? 0x80:0))))
#endif #endif
......
...@@ -29,20 +29,11 @@ ...@@ -29,20 +29,11 @@
#define _far #define _far
#endif #endif
#ifndef MEM_MAPPED_IO // "normal" IO #define inp(p) ioread8(p)
#define inp(p) inb(p) #define inpw(p) ioread16(p)
#define inpw(p) inw(p) #define inpd(p) ioread32(p)
#define inpd(p) inl(p) #define outp(p,c) iowrite8(c,p)
#define outp(p,c) outb(c,p) #define outpw(p,s) iowrite16(s,p)
#define outpw(p,s) outw(s,p) #define outpd(p,l) iowrite32(l,p)
#define outpd(p,l) outl(l,p)
#else // memory mapped io
#define inp(a) readb(a)
#define inpw(a) readw(a)
#define inpd(a) readl(a)
#define outp(a,v) writeb(v, a)
#define outpw(a,v) writew(v, a)
#define outpd(a,v) writel(v, a)
#endif
#endif /* _TYPES_ */ #endif /* _TYPES_ */
...@@ -206,6 +206,7 @@ static int skfp_init_one(struct pci_dev *pdev, ...@@ -206,6 +206,7 @@ static int skfp_init_one(struct pci_dev *pdev,
struct net_device *dev; struct net_device *dev;
struct s_smc *smc; /* board pointer */ struct s_smc *smc; /* board pointer */
unsigned long port, len; unsigned long port, len;
void __iomem *mem;
int err; int err;
PRINTK(KERN_INFO "entering skfp_init_one\n"); PRINTK(KERN_INFO "entering skfp_init_one\n");
...@@ -263,16 +264,16 @@ static int skfp_init_one(struct pci_dev *pdev, ...@@ -263,16 +264,16 @@ static int skfp_init_one(struct pci_dev *pdev,
} }
#ifdef MEM_MAPPED_IO #ifdef MEM_MAPPED_IO
dev->base_addr = (unsigned long) ioremap(port, len); mem = ioremap(port, len);
if (!dev->base_addr) { #else
printk(KERN_ERR "skfp: Unable to map MEMORY register, " mem =ioport_map(port, len);
#endif
if (!mem) {
printk(KERN_ERR "skfp: Unable to map register, "
"FDDI adapter will be disabled.\n"); "FDDI adapter will be disabled.\n");
err = -EIO; err = -EIO;
goto err_out3; goto err_out3;
} }
#else
dev->base_addr = port;
#endif
dev->irq = pdev->irq; dev->irq = pdev->irq;
dev->get_stats = &skfp_ctl_get_stats; dev->get_stats = &skfp_ctl_get_stats;
...@@ -296,9 +297,12 @@ static int skfp_init_one(struct pci_dev *pdev, ...@@ -296,9 +297,12 @@ static int skfp_init_one(struct pci_dev *pdev,
smc->os.MaxFrameSize = MAX_FRAME_SIZE; smc->os.MaxFrameSize = MAX_FRAME_SIZE;
smc->os.dev = dev; smc->os.dev = dev;
smc->hw.slot = -1; smc->hw.slot = -1;
smc->hw.iop = mem;
smc->os.ResetRequested = FALSE; smc->os.ResetRequested = FALSE;
skb_queue_head_init(&smc->os.SendSkbQueue); skb_queue_head_init(&smc->os.SendSkbQueue);
dev->base_addr = (unsigned long)mem;
err = skfp_driver_init(dev); err = skfp_driver_init(dev);
if (err) if (err)
goto err_out4; goto err_out4;
...@@ -328,7 +332,9 @@ static int skfp_init_one(struct pci_dev *pdev, ...@@ -328,7 +332,9 @@ static int skfp_init_one(struct pci_dev *pdev,
smc->os.LocalRxBuffer, smc->os.LocalRxBufferDMA); smc->os.LocalRxBuffer, smc->os.LocalRxBufferDMA);
err_out4: err_out4:
#ifdef MEM_MAPPED_IO #ifdef MEM_MAPPED_IO
iounmap((void *) dev->base_addr); iounmap(smc->hw.iop);
#else
ioport_unmap(smc->hw.iop);
#endif #endif
err_out3: err_out3:
free_netdev(dev); free_netdev(dev);
...@@ -363,7 +369,9 @@ static void __devexit skfp_remove_one(struct pci_dev *pdev) ...@@ -363,7 +369,9 @@ static void __devexit skfp_remove_one(struct pci_dev *pdev)
lp->os.LocalRxBuffer = NULL; lp->os.LocalRxBuffer = NULL;
} }
#ifdef MEM_MAPPED_IO #ifdef MEM_MAPPED_IO
iounmap((void *) p->base_addr); iounmap(lp->hw.iop);
#else
ioport_unmap(lp->hw.iop);
#endif #endif
pci_release_regions(pdev); pci_release_regions(pdev);
free_netdev(p); free_netdev(p);
...@@ -406,7 +414,6 @@ static int skfp_driver_init(struct net_device *dev) ...@@ -406,7 +414,6 @@ static int skfp_driver_init(struct net_device *dev)
// set the io address in private structures // set the io address in private structures
bp->base_addr = dev->base_addr; bp->base_addr = dev->base_addr;
smc->hw.iop = dev->base_addr;
// Get the interrupt level from the PCI Configuration Table // Get the interrupt level from the PCI Configuration Table
smc->hw.irq = dev->irq; smc->hw.irq = dev->irq;
......
This diff is collapsed.
This diff is collapsed.
...@@ -443,7 +443,7 @@ static void __devexit streamer_remove_one(struct pci_dev *pdev) ...@@ -443,7 +443,7 @@ static void __devexit streamer_remove_one(struct pci_dev *pdev)
static int streamer_reset(struct net_device *dev) static int streamer_reset(struct net_device *dev)
{ {
struct streamer_private *streamer_priv; struct streamer_private *streamer_priv;
__u8 *streamer_mmio; __u8 __iomem *streamer_mmio;
unsigned long t; unsigned long t;
unsigned int uaa_addr; unsigned int uaa_addr;
struct sk_buff *skb = NULL; struct sk_buff *skb = NULL;
...@@ -591,7 +591,7 @@ static int streamer_reset(struct net_device *dev) ...@@ -591,7 +591,7 @@ static int streamer_reset(struct net_device *dev)
static int streamer_open(struct net_device *dev) static int streamer_open(struct net_device *dev)
{ {
struct streamer_private *streamer_priv = (struct streamer_private *) dev->priv; struct streamer_private *streamer_priv = (struct streamer_private *) dev->priv;
__u8 *streamer_mmio = streamer_priv->streamer_mmio; __u8 __iomem *streamer_mmio = streamer_priv->streamer_mmio;
unsigned long flags; unsigned long flags;
char open_error[255]; char open_error[255];
int i, open_finished = 1; int i, open_finished = 1;
...@@ -908,7 +908,7 @@ static void streamer_rx(struct net_device *dev) ...@@ -908,7 +908,7 @@ static void streamer_rx(struct net_device *dev)
{ {
struct streamer_private *streamer_priv = struct streamer_private *streamer_priv =
(struct streamer_private *) dev->priv; (struct streamer_private *) dev->priv;
__u8 *streamer_mmio = streamer_priv->streamer_mmio; __u8 __iomem *streamer_mmio = streamer_priv->streamer_mmio;
struct streamer_rx_desc *rx_desc; struct streamer_rx_desc *rx_desc;
int rx_ring_last_received, length, frame_length, buffer_cnt = 0; int rx_ring_last_received, length, frame_length, buffer_cnt = 0;
struct sk_buff *skb, *skb2; struct sk_buff *skb, *skb2;
...@@ -1035,7 +1035,7 @@ static irqreturn_t streamer_interrupt(int irq, void *dev_id, struct pt_regs *reg ...@@ -1035,7 +1035,7 @@ static irqreturn_t streamer_interrupt(int irq, void *dev_id, struct pt_regs *reg
struct net_device *dev = (struct net_device *) dev_id; struct net_device *dev = (struct net_device *) dev_id;
struct streamer_private *streamer_priv = struct streamer_private *streamer_priv =
(struct streamer_private *) dev->priv; (struct streamer_private *) dev->priv;
__u8 *streamer_mmio = streamer_priv->streamer_mmio; __u8 __iomem *streamer_mmio = streamer_priv->streamer_mmio;
__u16 sisr; __u16 sisr;
__u16 misr; __u16 misr;
u8 max_intr = MAX_INTR; u8 max_intr = MAX_INTR;
...@@ -1158,7 +1158,7 @@ static int streamer_xmit(struct sk_buff *skb, struct net_device *dev) ...@@ -1158,7 +1158,7 @@ static int streamer_xmit(struct sk_buff *skb, struct net_device *dev)
{ {
struct streamer_private *streamer_priv = struct streamer_private *streamer_priv =
(struct streamer_private *) dev->priv; (struct streamer_private *) dev->priv;
__u8 *streamer_mmio = streamer_priv->streamer_mmio; __u8 __iomem *streamer_mmio = streamer_priv->streamer_mmio;
unsigned long flags ; unsigned long flags ;
spin_lock_irqsave(&streamer_priv->streamer_lock, flags); spin_lock_irqsave(&streamer_priv->streamer_lock, flags);
...@@ -1209,7 +1209,7 @@ static int streamer_close(struct net_device *dev) ...@@ -1209,7 +1209,7 @@ static int streamer_close(struct net_device *dev)
{ {
struct streamer_private *streamer_priv = struct streamer_private *streamer_priv =
(struct streamer_private *) dev->priv; (struct streamer_private *) dev->priv;
__u8 *streamer_mmio = streamer_priv->streamer_mmio; __u8 __iomem *streamer_mmio = streamer_priv->streamer_mmio;
unsigned long flags; unsigned long flags;
int i; int i;
...@@ -1275,7 +1275,7 @@ static void streamer_set_rx_mode(struct net_device *dev) ...@@ -1275,7 +1275,7 @@ static void streamer_set_rx_mode(struct net_device *dev)
{ {
struct streamer_private *streamer_priv = struct streamer_private *streamer_priv =
(struct streamer_private *) dev->priv; (struct streamer_private *) dev->priv;
__u8 *streamer_mmio = streamer_priv->streamer_mmio; __u8 __iomem *streamer_mmio = streamer_priv->streamer_mmio;
__u8 options = 0; __u8 options = 0;
struct dev_mc_list *dmi; struct dev_mc_list *dmi;
unsigned char dev_mc_address[5]; unsigned char dev_mc_address[5];
...@@ -1334,7 +1334,7 @@ static void streamer_set_rx_mode(struct net_device *dev) ...@@ -1334,7 +1334,7 @@ static void streamer_set_rx_mode(struct net_device *dev)
static void streamer_srb_bh(struct net_device *dev) static void streamer_srb_bh(struct net_device *dev)
{ {
struct streamer_private *streamer_priv = (struct streamer_private *) dev->priv; struct streamer_private *streamer_priv = (struct streamer_private *) dev->priv;
__u8 *streamer_mmio = streamer_priv->streamer_mmio; __u8 __iomem *streamer_mmio = streamer_priv->streamer_mmio;
__u16 srb_word; __u16 srb_word;
writew(streamer_priv->srb, streamer_mmio + LAPA); writew(streamer_priv->srb, streamer_mmio + LAPA);
...@@ -1531,7 +1531,7 @@ static void streamer_arb_cmd(struct net_device *dev) ...@@ -1531,7 +1531,7 @@ static void streamer_arb_cmd(struct net_device *dev)
{ {
struct streamer_private *streamer_priv = struct streamer_private *streamer_priv =
(struct streamer_private *) dev->priv; (struct streamer_private *) dev->priv;
__u8 *streamer_mmio = streamer_priv->streamer_mmio; __u8 __iomem *streamer_mmio = streamer_priv->streamer_mmio;
__u8 header_len; __u8 header_len;
__u16 frame_len, buffer_len; __u16 frame_len, buffer_len;
struct sk_buff *mac_frame; struct sk_buff *mac_frame;
...@@ -1747,7 +1747,7 @@ static void streamer_asb_bh(struct net_device *dev) ...@@ -1747,7 +1747,7 @@ static void streamer_asb_bh(struct net_device *dev)
{ {
struct streamer_private *streamer_priv = struct streamer_private *streamer_priv =
(struct streamer_private *) dev->priv; (struct streamer_private *) dev->priv;
__u8 *streamer_mmio = streamer_priv->streamer_mmio; __u8 __iomem *streamer_mmio = streamer_priv->streamer_mmio;
if (streamer_priv->asb_queued == 1) if (streamer_priv->asb_queued == 1)
{ {
...@@ -1855,7 +1855,7 @@ static int sprintf_info(char *buffer, struct net_device *dev) ...@@ -1855,7 +1855,7 @@ static int sprintf_info(char *buffer, struct net_device *dev)
{ {
struct streamer_private *streamer_priv = struct streamer_private *streamer_priv =
(struct streamer_private *) dev->priv; (struct streamer_private *) dev->priv;
__u8 *streamer_mmio = streamer_priv->streamer_mmio; __u8 __iomem *streamer_mmio = streamer_priv->streamer_mmio;
struct streamer_adapter_addr_table sat; struct streamer_adapter_addr_table sat;
struct streamer_parameters_table spt; struct streamer_parameters_table spt;
int size = 0; int size = 0;
...@@ -1939,7 +1939,7 @@ static int streamer_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) ...@@ -1939,7 +1939,7 @@ static int streamer_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
{ {
int i; int i;
struct streamer_private *streamer_priv = (struct streamer_private *) dev->priv; struct streamer_private *streamer_priv = (struct streamer_private *) dev->priv;
u8 *streamer_mmio = streamer_priv->streamer_mmio; u8 __iomem *streamer_mmio = streamer_priv->streamer_mmio;
switch(cmd) { switch(cmd) {
case IOCTL_SISR_MASK: case IOCTL_SISR_MASK:
......
...@@ -293,7 +293,7 @@ struct streamer_private { ...@@ -293,7 +293,7 @@ struct streamer_private {
struct streamer_private *next; struct streamer_private *next;
struct pci_dev *pci_dev; struct pci_dev *pci_dev;
__u8 *streamer_mmio; __u8 __iomem *streamer_mmio;
char *streamer_card_name; char *streamer_card_name;
spinlock_t streamer_lock; spinlock_t streamer_lock;
......
...@@ -438,8 +438,8 @@ static int olympic_open(struct net_device *dev) ...@@ -438,8 +438,8 @@ static int olympic_open(struct net_device *dev)
struct olympic_private *olympic_priv=(struct olympic_private *)dev->priv; struct olympic_private *olympic_priv=(struct olympic_private *)dev->priv;
u8 __iomem *olympic_mmio=olympic_priv->olympic_mmio,*init_srb; u8 __iomem *olympic_mmio=olympic_priv->olympic_mmio,*init_srb;
unsigned long flags, t; unsigned long flags, t;
char open_error[255] ;
int i, open_finished = 1 ; int i, open_finished = 1 ;
u8 resp, err;
DECLARE_WAITQUEUE(wait,current) ; DECLARE_WAITQUEUE(wait,current) ;
...@@ -540,35 +540,33 @@ static int olympic_open(struct net_device *dev) ...@@ -540,35 +540,33 @@ static int olympic_open(struct net_device *dev)
* timed out. * timed out.
*/ */
if(readb(init_srb+2)== OLYMPIC_CLEAR_RET_CODE) { switch (resp = readb(init_srb+2)) {
case OLYMPIC_CLEAR_RET_CODE:
printk(KERN_WARNING "%s: Adapter Open time out or error.\n", dev->name) ; printk(KERN_WARNING "%s: Adapter Open time out or error.\n", dev->name) ;
return -EIO ; goto out;
} case 0:
open_finished = 1;
if(readb(init_srb+2)!=0) { break;
if (readb(init_srb+2) == 0x07) { case 0x07:
if (!olympic_priv->olympic_ring_speed && open_finished) { /* Autosense , first time around */ if (!olympic_priv->olympic_ring_speed && open_finished) { /* Autosense , first time around */
printk(KERN_WARNING "%s: Retrying at different ring speed \n", dev->name); printk(KERN_WARNING "%s: Retrying at different ring speed \n", dev->name);
open_finished = 0 ; open_finished = 0 ;
} else { continue;
}
strcpy(open_error, open_maj_error[(readb(init_srb+7) & 0xf0) >> 4]) ; err = readb(init_srb+7);
strcat(open_error," - ") ;
strcat(open_error, open_min_error[(readb(init_srb+7) & 0x0f)]) ;
if (!olympic_priv->olympic_ring_speed && ((readb(init_srb+7) & 0x0f) == 0x0d)) { if (!olympic_priv->olympic_ring_speed && ((err & 0x0f) == 0x0d)) {
printk(KERN_WARNING "%s: Tried to autosense ring speed with no monitors present\n",dev->name); printk(KERN_WARNING "%s: Tried to autosense ring speed with no monitors present\n",dev->name);
printk(KERN_WARNING "%s: Please try again with a specified ring speed \n",dev->name); printk(KERN_WARNING "%s: Please try again with a specified ring speed \n",dev->name);
free_irq(dev->irq, dev); } else {
return -EIO ; printk(KERN_WARNING "%s: %s - %s\n", dev->name,
open_maj_error[(err & 0xf0) >> 4],
open_min_error[(err & 0x0f)]);
} }
goto out;
printk(KERN_WARNING "%s: %s\n",dev->name,open_error); case 0x32:
free_irq(dev->irq,dev) ;
return -EIO ;
} /* if autosense && open_finished */
} else if (init_srb[2] == 0x32) {
printk(KERN_WARNING "%s: Invalid LAA: %02x:%02x:%02x:%02x:%02x:%02x\n", printk(KERN_WARNING "%s: Invalid LAA: %02x:%02x:%02x:%02x:%02x:%02x\n",
dev->name, dev->name,
olympic_priv->olympic_laa[0], olympic_priv->olympic_laa[0],
...@@ -577,15 +575,13 @@ static int olympic_open(struct net_device *dev) ...@@ -577,15 +575,13 @@ static int olympic_open(struct net_device *dev)
olympic_priv->olympic_laa[3], olympic_priv->olympic_laa[3],
olympic_priv->olympic_laa[4], olympic_priv->olympic_laa[4],
olympic_priv->olympic_laa[5]) ; olympic_priv->olympic_laa[5]) ;
free_irq(dev->irq,dev) ; goto out;
return -EIO ;
} else { default:
printk(KERN_WARNING "%s: Bad OPEN response: %x\n", dev->name,init_srb[2]); printk(KERN_WARNING "%s: Bad OPEN response: %x\n", dev->name, resp);
free_irq(dev->irq, dev); goto out;
return -EIO;
} }
} else
open_finished = 1 ;
} while (!(open_finished)) ; /* Will only loop if ring speed mismatch re-open attempted && autosense is on */ } while (!(open_finished)) ; /* Will only loop if ring speed mismatch re-open attempted && autosense is on */
if (readb(init_srb+18) & (1<<3)) if (readb(init_srb+18) & (1<<3))
...@@ -634,8 +630,7 @@ static int olympic_open(struct net_device *dev) ...@@ -634,8 +630,7 @@ static int olympic_open(struct net_device *dev)
if (i==0) { if (i==0) {
printk(KERN_WARNING "%s: Not enough memory to allocate rx buffers. Adapter disabled\n",dev->name); printk(KERN_WARNING "%s: Not enough memory to allocate rx buffers. Adapter disabled\n",dev->name);
free_irq(dev->irq, dev); goto out;
return -EIO;
} }
olympic_priv->rx_ring_dma_addr = pci_map_single(olympic_priv->pdev,olympic_priv->olympic_rx_ring, olympic_priv->rx_ring_dma_addr = pci_map_single(olympic_priv->pdev,olympic_priv->olympic_rx_ring,
...@@ -738,6 +733,9 @@ static int olympic_open(struct net_device *dev) ...@@ -738,6 +733,9 @@ static int olympic_open(struct net_device *dev)
netif_start_queue(dev); netif_start_queue(dev);
return 0; return 0;
out:
free_irq(dev->irq, dev);
return -EIO;
} }
/* /*
......
...@@ -970,7 +970,7 @@ typedef struct { ...@@ -970,7 +970,7 @@ typedef struct {
* Host receive descriptor * Host receive descriptor
*/ */
typedef struct { typedef struct {
unsigned char *card_ram_off; /* offset into card memory of the unsigned char __iomem *card_ram_off; /* offset into card memory of the
desc */ desc */
RxFid rx_desc; /* card receive descriptor */ RxFid rx_desc; /* card receive descriptor */
char *virtual_host_addr; /* virtual address of host receive char *virtual_host_addr; /* virtual address of host receive
...@@ -982,7 +982,7 @@ typedef struct { ...@@ -982,7 +982,7 @@ typedef struct {
* Host transmit descriptor * Host transmit descriptor
*/ */
typedef struct { typedef struct {
unsigned char *card_ram_off; /* offset into card memory of the unsigned char __iomem *card_ram_off; /* offset into card memory of the
desc */ desc */
TxFid tx_desc; /* card transmit descriptor */ TxFid tx_desc; /* card transmit descriptor */
char *virtual_host_addr; /* virtual address of host receive char *virtual_host_addr; /* virtual address of host receive
...@@ -994,7 +994,7 @@ typedef struct { ...@@ -994,7 +994,7 @@ typedef struct {
* Host RID descriptor * Host RID descriptor
*/ */
typedef struct { typedef struct {
unsigned char *card_ram_off; /* offset into card memory of the unsigned char __iomem *card_ram_off; /* offset into card memory of the
descriptor */ descriptor */
Rid rid_desc; /* card RID descriptor */ Rid rid_desc; /* card RID descriptor */
char *virtual_host_addr; /* virtual address of host receive char *virtual_host_addr; /* virtual address of host receive
...@@ -1203,8 +1203,8 @@ struct airo_info { ...@@ -1203,8 +1203,8 @@ struct airo_info {
unsigned long ridbus; // phys addr of config_desc unsigned long ridbus; // phys addr of config_desc
struct sk_buff_head txq;// tx queue used by mpi350 code struct sk_buff_head txq;// tx queue used by mpi350 code
struct pci_dev *pci; struct pci_dev *pci;
unsigned char *pcimem; unsigned char __iomem *pcimem;
unsigned char *pciaux; unsigned char __iomem *pciaux;
unsigned char *shared; unsigned char *shared;
dma_addr_t shared_dma; dma_addr_t shared_dma;
int power; int power;
...@@ -2029,8 +2029,8 @@ static int mpi_send_packet (struct net_device *dev) ...@@ -2029,8 +2029,8 @@ static int mpi_send_packet (struct net_device *dev)
memcpy(sendbuf, buffer, len); memcpy(sendbuf, buffer, len);
} }
memcpy((char *)ai->txfids[0].card_ram_off, memcpy_toio(ai->txfids[0].card_ram_off,
(char *)&ai->txfids[0].tx_desc, sizeof(TxFid)); &ai->txfids[0].tx_desc, sizeof(TxFid));
OUT4500(ai, EVACK, 8); OUT4500(ai, EVACK, 8);
...@@ -2460,7 +2460,7 @@ static int mpi_init_descriptors (struct airo_info *ai) ...@@ -2460,7 +2460,7 @@ static int mpi_init_descriptors (struct airo_info *ai)
} }
for (i=0; i<MPI_MAX_FIDS; i++) { for (i=0; i<MPI_MAX_FIDS; i++) {
memcpy(ai->rxfids[i].card_ram_off, memcpy_toio(ai->rxfids[i].card_ram_off,
&ai->rxfids[i].rx_desc, sizeof(RxFid)); &ai->rxfids[i].rx_desc, sizeof(RxFid));
} }
...@@ -2476,7 +2476,7 @@ static int mpi_init_descriptors (struct airo_info *ai) ...@@ -2476,7 +2476,7 @@ static int mpi_init_descriptors (struct airo_info *ai)
for (i=0; i<MPI_MAX_FIDS; i++) { for (i=0; i<MPI_MAX_FIDS; i++) {
ai->txfids[i].tx_desc.valid = 1; ai->txfids[i].tx_desc.valid = 1;
memcpy((char *)ai->txfids[i].card_ram_off, memcpy_toio(ai->txfids[i].card_ram_off,
&ai->txfids[i].tx_desc, sizeof(TxFid)); &ai->txfids[i].tx_desc, sizeof(TxFid));
} }
ai->txfids[i-1].tx_desc.eoc = 1; /* Last descriptor has EOC set */ ai->txfids[i-1].tx_desc.eoc = 1; /* Last descriptor has EOC set */
...@@ -2501,8 +2501,8 @@ static int mpi_init_descriptors (struct airo_info *ai) ...@@ -2501,8 +2501,8 @@ static int mpi_init_descriptors (struct airo_info *ai)
return rc; return rc;
} }
memcpy((char *)ai->config_desc.card_ram_off, memcpy_toio(ai->config_desc.card_ram_off,
(char *)&ai->config_desc.rid_desc, sizeof(Rid)); &ai->config_desc.rid_desc, sizeof(Rid));
return rc; return rc;
} }
...@@ -2520,7 +2520,7 @@ static int mpi_map_card(struct airo_info *ai, struct pci_dev *pci, ...@@ -2520,7 +2520,7 @@ static int mpi_map_card(struct airo_info *ai, struct pci_dev *pci,
int rc = -1; int rc = -1;
int i; int i;
unsigned char *busaddroff,*vpackoff; unsigned char *busaddroff,*vpackoff;
unsigned char *pciaddroff; unsigned char __iomem *pciaddroff;
mem_start = pci_resource_start(pci, 1); mem_start = pci_resource_start(pci, 1);
mem_len = pci_resource_len(pci, 1); mem_len = pci_resource_len(pci, 1);
...@@ -3441,7 +3441,7 @@ static void mpi_receive_802_3(struct airo_info *ai) ...@@ -3441,7 +3441,7 @@ static void mpi_receive_802_3(struct airo_info *ai)
MICBuffer micbuf; MICBuffer micbuf;
#endif #endif
memcpy ((char *)&rxd, ai->rxfids[0].card_ram_off, sizeof(rxd)); memcpy_fromio(&rxd, ai->rxfids[0].card_ram_off, sizeof(rxd));
/* Make sure we got something */ /* Make sure we got something */
if (rxd.rdy && rxd.valid == 0) { if (rxd.rdy && rxd.valid == 0) {
len = rxd.len + 12; len = rxd.len + 12;
...@@ -3504,7 +3504,7 @@ static void mpi_receive_802_3(struct airo_info *ai) ...@@ -3504,7 +3504,7 @@ static void mpi_receive_802_3(struct airo_info *ai)
rxd.valid = 1; rxd.valid = 1;
rxd.rdy = 0; rxd.rdy = 0;
rxd.len = PKTSIZE; rxd.len = PKTSIZE;
memcpy (ai->rxfids[0].card_ram_off, (char *)&rxd, sizeof(rxd)); memcpy_toio(ai->rxfids[0].card_ram_off, &rxd, sizeof(rxd));
} }
} }
...@@ -3526,7 +3526,7 @@ void mpi_receive_802_11 (struct airo_info *ai) ...@@ -3526,7 +3526,7 @@ void mpi_receive_802_11 (struct airo_info *ai)
u16 *buffer; u16 *buffer;
char *ptr = ai->rxfids[0].virtual_host_addr+4; char *ptr = ai->rxfids[0].virtual_host_addr+4;
memcpy ((char *)&rxd, ai->rxfids[0].card_ram_off, sizeof(rxd)); memcpy_fromio(&rxd, ai->rxfids[0].card_ram_off, sizeof(rxd));
memcpy ((char *)&hdr, ptr, sizeof(hdr)); memcpy ((char *)&hdr, ptr, sizeof(hdr));
ptr += sizeof(hdr); ptr += sizeof(hdr);
/* Bad CRC. Ignore packet */ /* Bad CRC. Ignore packet */
...@@ -3610,7 +3610,7 @@ void mpi_receive_802_11 (struct airo_info *ai) ...@@ -3610,7 +3610,7 @@ void mpi_receive_802_11 (struct airo_info *ai)
rxd.valid = 1; rxd.valid = 1;
rxd.rdy = 0; rxd.rdy = 0;
rxd.len = PKTSIZE; rxd.len = PKTSIZE;
memcpy (ai->rxfids[0].card_ram_off, (char *)&rxd, sizeof(rxd)); memcpy_toio(ai->rxfids[0].card_ram_off, &rxd, sizeof(rxd));
} }
} }
...@@ -3990,8 +3990,8 @@ static int PC4500_readrid(struct airo_info *ai, u16 rid, void *pBuf, int len, in ...@@ -3990,8 +3990,8 @@ static int PC4500_readrid(struct airo_info *ai, u16 rid, void *pBuf, int len, in
cmd.cmd = CMD_ACCESS; cmd.cmd = CMD_ACCESS;
cmd.parm0 = rid; cmd.parm0 = rid;
memcpy((char *)ai->config_desc.card_ram_off, memcpy_toio(ai->config_desc.card_ram_off,
(char *)&ai->config_desc.rid_desc, sizeof(Rid)); &ai->config_desc.rid_desc, sizeof(Rid));
rc = issuecommand(ai, &cmd, &rsp); rc = issuecommand(ai, &cmd, &rsp);
...@@ -4062,8 +4062,8 @@ static int PC4500_writerid(struct airo_info *ai, u16 rid, ...@@ -4062,8 +4062,8 @@ static int PC4500_writerid(struct airo_info *ai, u16 rid,
cmd.cmd = CMD_WRITERID; cmd.cmd = CMD_WRITERID;
cmd.parm0 = rid; cmd.parm0 = rid;
memcpy((char *)ai->config_desc.card_ram_off, memcpy_toio(ai->config_desc.card_ram_off,
(char *)&ai->config_desc.rid_desc, sizeof(Rid)); &ai->config_desc.rid_desc, sizeof(Rid));
if (len < 4 || len > 2047) { if (len < 4 || len > 2047) {
printk(KERN_ERR "%s: len=%d\n",__FUNCTION__,len); printk(KERN_ERR "%s: len=%d\n",__FUNCTION__,len);
...@@ -7591,7 +7591,7 @@ int flashputbuf(struct airo_info *ai){ ...@@ -7591,7 +7591,7 @@ int flashputbuf(struct airo_info *ai){
/* Write stuff */ /* Write stuff */
if (test_bit(FLAG_MPI,&ai->flags)) if (test_bit(FLAG_MPI,&ai->flags))
memcpy(ai->pciaux + 0x8000, ai->flash, FLASHSIZE); memcpy_toio(ai->pciaux + 0x8000, ai->flash, FLASHSIZE);
else { else {
OUT4500(ai,AUXPAGE,0x100); OUT4500(ai,AUXPAGE,0x100);
OUT4500(ai,AUXOFF,0); OUT4500(ai,AUXOFF,0);
......
This diff is collapsed.
...@@ -58,7 +58,8 @@ ...@@ -58,7 +58,8 @@
static const char *arlan_diagnostic_info_string(struct net_device *dev) static const char *arlan_diagnostic_info_string(struct net_device *dev)
{ {
volatile struct arlan_shmem *arlan = ((struct arlan_private *) dev->priv)->card; struct arlan_private *priv = netdev_priv(dev);
volatile struct arlan_shmem __iomem *arlan = priv->card;
u_char diagnosticInfo; u_char diagnosticInfo;
READSHM(diagnosticInfo, arlan->diagnosticInfo, u_char); READSHM(diagnosticInfo, arlan->diagnosticInfo, u_char);
...@@ -113,7 +114,8 @@ static const char *arlan_diagnostic_info_string(struct net_device *dev) ...@@ -113,7 +114,8 @@ static const char *arlan_diagnostic_info_string(struct net_device *dev)
static const char *arlan_hardware_type_string(struct net_device *dev) static const char *arlan_hardware_type_string(struct net_device *dev)
{ {
u_char hardwareType; u_char hardwareType;
volatile struct arlan_shmem *arlan = ((struct arlan_private *) dev->priv)->card; struct arlan_private *priv = netdev_priv(dev);
volatile struct arlan_shmem __iomem *arlan = priv->card;
READSHM(hardwareType, arlan->hardwareType, u_char); READSHM(hardwareType, arlan->hardwareType, u_char);
switch (hardwareType) switch (hardwareType)
...@@ -189,7 +191,8 @@ static void arlan_print_diagnostic_info(struct net_device *dev) ...@@ -189,7 +191,8 @@ static void arlan_print_diagnostic_info(struct net_device *dev)
u_char diagnosticInfo; u_char diagnosticInfo;
u_short diagnosticOffset; u_short diagnosticOffset;
u_char hardwareType; u_char hardwareType;
volatile struct arlan_shmem *arlan = ((struct arlan_private *) dev->priv)->card; struct arlan_private *priv = netdev_priv(dev);
volatile struct arlan_shmem __iomem *arlan = priv->card;
// ARLAN_DEBUG_ENTRY("arlan_print_diagnostic_info"); // ARLAN_DEBUG_ENTRY("arlan_print_diagnostic_info");
...@@ -254,7 +257,8 @@ static int arlan_hw_test_memory(struct net_device *dev) ...@@ -254,7 +257,8 @@ static int arlan_hw_test_memory(struct net_device *dev)
int i; int i;
int memlen = sizeof(struct arlan_shmem) - 0xF; /* avoid control register */ int memlen = sizeof(struct arlan_shmem) - 0xF; /* avoid control register */
volatile char *arlan_mem = (char *) (dev->mem_start); volatile char *arlan_mem = (char *) (dev->mem_start);
volatile struct arlan_shmem *arlan = ((struct arlan_private *) dev->priv)->card; struct arlan_private *priv = netdev_priv(dev);
volatile struct arlan_shmem __iomem *arlan = priv->card;
char pattern; char pattern;
ptr = NULL; ptr = NULL;
...@@ -319,7 +323,8 @@ static int arlan_hw_test_memory(struct net_device *dev) ...@@ -319,7 +323,8 @@ static int arlan_hw_test_memory(struct net_device *dev)
static int arlan_setup_card_by_book(struct net_device *dev) static int arlan_setup_card_by_book(struct net_device *dev)
{ {
u_char irqLevel, configuredStatusFlag; u_char irqLevel, configuredStatusFlag;
volatile struct arlan_shmem *arlan = ((struct arlan_private *) dev->priv)->card; struct arlan_private *priv = netdev_priv(dev);
volatile struct arlan_shmem __iomem *arlan = priv->card;
// ARLAN_DEBUG_ENTRY("arlan_setup_card"); // ARLAN_DEBUG_ENTRY("arlan_setup_card");
......
...@@ -332,7 +332,7 @@ struct TxParam ...@@ -332,7 +332,7 @@ struct TxParam
/* Information that need to be kept for each board. */ /* Information that need to be kept for each board. */
struct arlan_private { struct arlan_private {
struct net_device_stats stats; struct net_device_stats stats;
struct arlan_shmem * card; struct arlan_shmem __iomem * card;
struct arlan_shmem * conf; struct arlan_shmem * conf;
struct arlan_conf_stru * Conf; struct arlan_conf_stru * Conf;
...@@ -403,14 +403,12 @@ struct arlan_private { ...@@ -403,14 +403,12 @@ struct arlan_private {
#define ARLAN_COM_INT 0x80 #define ARLAN_COM_INT 0x80
#define TXLAST(dev) (((struct arlan_private *)dev->priv)->txRing[((struct arlan_private *)dev->priv)->txLast]) #define TXLAST(dev) (((struct arlan_private *)netdev_priv(dev))->txRing[((struct arlan_private *)netdev_priv(dev))->txLast])
#define TXHEAD(dev) (((struct arlan_private *)dev->priv)->txRing[0]) #define TXHEAD(dev) (((struct arlan_private *)netdev_priv(dev))->txRing[0])
#define TXTAIL(dev) (((struct arlan_private *)dev->priv)->txRing[1]) #define TXTAIL(dev) (((struct arlan_private *)netdev_priv(dev))->txRing[1])
#define TXBuffStart(dev) \ #define TXBuffStart(dev) offsetof(struct arlan_shmem, txBuffer)
((int)(((struct arlan_private *)dev->priv)->card)->txBuffer) - ((int)(((struct arlan_private *)dev->priv)->card) ) #define TXBuffEnd(dev) offsetof(struct arlan_shmem, xxBuffer)
#define TXBuffEnd(dev) \
((int)(((struct arlan_private *)dev->priv)->card)->rxBuffer) - ((int)(((struct arlan_private *)dev->priv)->card)
#define READSHM(to,from,atype) {\ #define READSHM(to,from,atype) {\
atype tmp;\ atype tmp;\
...@@ -451,16 +449,16 @@ struct arlan_private { ...@@ -451,16 +449,16 @@ struct arlan_private {
#define registrationBad(dev)\ #define registrationBad(dev)\
( ( READSHMB(((struct arlan_private *)dev->priv)->card->registrationMode) > 0) && \ ( ( READSHMB(((struct arlan_private *)netdev_priv(dev))->card->registrationMode) > 0) && \
( READSHMB(((struct arlan_private *)dev->priv)->card->registrationStatus) == 0) ) ( READSHMB(((struct arlan_private *)netdev_priv(dev))->card->registrationStatus) == 0) )
#define readControlRegister(dev)\ #define readControlRegister(dev)\
READSHMB(((struct arlan_private *)dev->priv)->card->cntrlRegImage) READSHMB(((struct arlan_private *)netdev_priv(dev))->card->cntrlRegImage)
#define writeControlRegister(dev, v){\ #define writeControlRegister(dev, v){\
WRITESHMB(((struct arlan_private *)dev->priv)->card->cntrlRegImage ,((v) &0xF) );\ WRITESHMB(((struct arlan_private *)netdev_priv(dev))->card->cntrlRegImage ,((v) &0xF) );\
WRITESHMB(((struct arlan_private *)dev->priv)->card->controlRegister ,(v) );} WRITESHMB(((struct arlan_private *)netdev_priv(dev))->card->controlRegister ,(v) );}
#define arlan_interrupt_lancpu(dev) {\ #define arlan_interrupt_lancpu(dev) {\
......
...@@ -213,7 +213,7 @@ static dev_link_t *netwave_attach(void); /* Create instance */ ...@@ -213,7 +213,7 @@ static dev_link_t *netwave_attach(void); /* Create instance */
static void netwave_detach(dev_link_t *); /* Destroy instance */ static void netwave_detach(dev_link_t *); /* Destroy instance */
/* Hardware configuration */ /* Hardware configuration */
static void netwave_doreset(ioaddr_t iobase, u_char* ramBase); static void netwave_doreset(ioaddr_t iobase, u_char __iomem *ramBase);
static void netwave_reset(struct net_device *dev); static void netwave_reset(struct net_device *dev);
/* Misc device stuff */ /* Misc device stuff */
...@@ -321,7 +321,7 @@ typedef struct netwave_private { ...@@ -321,7 +321,7 @@ typedef struct netwave_private {
dev_link_t link; dev_link_t link;
spinlock_t spinlock; /* Serialize access to the hardware (SMP) */ spinlock_t spinlock; /* Serialize access to the hardware (SMP) */
dev_node_t node; dev_node_t node;
u_char *ramBase; u_char __iomem *ramBase;
int timeoutCounter; int timeoutCounter;
int lastExec; int lastExec;
struct timer_list watchdog; /* To avoid blocking state */ struct timer_list watchdog; /* To avoid blocking state */
...@@ -340,12 +340,12 @@ static struct net_device_stats *netwave_get_stats(struct net_device *dev); ...@@ -340,12 +340,12 @@ static struct net_device_stats *netwave_get_stats(struct net_device *dev);
* The Netwave card is little-endian, so won't work for big endian * The Netwave card is little-endian, so won't work for big endian
* systems. * systems.
*/ */
static inline unsigned short get_uint16(u_char* staddr) static inline unsigned short get_uint16(u_char __iomem *staddr)
{ {
return readw(staddr); /* Return only 16 bits */ return readw(staddr); /* Return only 16 bits */
} }
static inline short get_int16(u_char* staddr) static inline short get_int16(u_char __iomem * staddr)
{ {
return readw(staddr); return readw(staddr);
} }
...@@ -362,7 +362,7 @@ static inline void wait_WOC(unsigned int iobase) ...@@ -362,7 +362,7 @@ static inline void wait_WOC(unsigned int iobase)
} }
#ifdef WIRELESS_EXT #ifdef WIRELESS_EXT
static void netwave_snapshot(netwave_private *priv, u_char *ramBase, static void netwave_snapshot(netwave_private *priv, u_char __iomem *ramBase,
ioaddr_t iobase) { ioaddr_t iobase) {
u_short resultBuffer; u_short resultBuffer;
...@@ -397,8 +397,8 @@ static struct iw_statistics *netwave_get_wireless_stats(struct net_device *dev) ...@@ -397,8 +397,8 @@ static struct iw_statistics *netwave_get_wireless_stats(struct net_device *dev)
{ {
unsigned long flags; unsigned long flags;
ioaddr_t iobase = dev->base_addr; ioaddr_t iobase = dev->base_addr;
netwave_private *priv = (netwave_private *) dev->priv; netwave_private *priv = netdev_priv(dev);
u_char *ramBase = priv->ramBase; u_char __iomem *ramBase = priv->ramBase;
struct iw_statistics* wstats; struct iw_statistics* wstats;
wstats = &priv->iw_stats; wstats = &priv->iw_stats;
...@@ -446,7 +446,7 @@ static dev_link_t *netwave_attach(void) ...@@ -446,7 +446,7 @@ static dev_link_t *netwave_attach(void)
dev = alloc_etherdev(sizeof(netwave_private)); dev = alloc_etherdev(sizeof(netwave_private));
if (!dev) if (!dev)
return NULL; return NULL;
priv = dev->priv; priv = netdev_priv(dev);
link = &priv->link; link = &priv->link;
link->priv = dev; link->priv = dev;
...@@ -589,8 +589,8 @@ static int netwave_set_nwid(struct net_device *dev, ...@@ -589,8 +589,8 @@ static int netwave_set_nwid(struct net_device *dev,
{ {
unsigned long flags; unsigned long flags;
ioaddr_t iobase = dev->base_addr; ioaddr_t iobase = dev->base_addr;
netwave_private *priv = (netwave_private *) dev->priv; netwave_private *priv = netdev_priv(dev);
u_char *ramBase = priv->ramBase; u_char __iomem *ramBase = priv->ramBase;
/* Disable interrupts & save flags */ /* Disable interrupts & save flags */
spin_lock_irqsave(&priv->spinlock, flags); spin_lock_irqsave(&priv->spinlock, flags);
...@@ -647,8 +647,8 @@ static int netwave_set_scramble(struct net_device *dev, ...@@ -647,8 +647,8 @@ static int netwave_set_scramble(struct net_device *dev,
{ {
unsigned long flags; unsigned long flags;
ioaddr_t iobase = dev->base_addr; ioaddr_t iobase = dev->base_addr;
netwave_private *priv = (netwave_private *) dev->priv; netwave_private *priv = netdev_priv(dev);
u_char *ramBase = priv->ramBase; u_char __iomem *ramBase = priv->ramBase;
/* Disable interrupts & save flags */ /* Disable interrupts & save flags */
spin_lock_irqsave(&priv->spinlock, flags); spin_lock_irqsave(&priv->spinlock, flags);
...@@ -763,8 +763,8 @@ static int netwave_get_snap(struct net_device *dev, ...@@ -763,8 +763,8 @@ static int netwave_get_snap(struct net_device *dev,
{ {
unsigned long flags; unsigned long flags;
ioaddr_t iobase = dev->base_addr; ioaddr_t iobase = dev->base_addr;
netwave_private *priv = (netwave_private *) dev->priv; netwave_private *priv = netdev_priv(dev);
u_char *ramBase = priv->ramBase; u_char __iomem *ramBase = priv->ramBase;
/* Disable interrupts & save flags */ /* Disable interrupts & save flags */
spin_lock_irqsave(&priv->spinlock, flags); spin_lock_irqsave(&priv->spinlock, flags);
...@@ -996,14 +996,14 @@ do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0) ...@@ -996,14 +996,14 @@ do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0)
static void netwave_pcmcia_config(dev_link_t *link) { static void netwave_pcmcia_config(dev_link_t *link) {
client_handle_t handle = link->handle; client_handle_t handle = link->handle;
struct net_device *dev = link->priv; struct net_device *dev = link->priv;
netwave_private *priv = dev->priv; netwave_private *priv = netdev_priv(dev);
tuple_t tuple; tuple_t tuple;
cisparse_t parse; cisparse_t parse;
int i, j, last_ret, last_fn; int i, j, last_ret, last_fn;
u_char buf[64]; u_char buf[64];
win_req_t req; win_req_t req;
memreq_t mem; memreq_t mem;
u_char *ramBase = NULL; u_char __iomem *ramBase = NULL;
DEBUG(0, "netwave_pcmcia_config(0x%p)\n", link); DEBUG(0, "netwave_pcmcia_config(0x%p)\n", link);
...@@ -1069,7 +1069,7 @@ static void netwave_pcmcia_config(dev_link_t *link) { ...@@ -1069,7 +1069,7 @@ static void netwave_pcmcia_config(dev_link_t *link) {
/* Store base address of the common window frame */ /* Store base address of the common window frame */
ramBase = ioremap(req.Base, 0x8000); ramBase = ioremap(req.Base, 0x8000);
((netwave_private*)dev->priv)->ramBase = ramBase; priv->ramBase = ramBase;
dev->irq = link->irq.AssignedIRQ; dev->irq = link->irq.AssignedIRQ;
dev->base_addr = link->io.BasePort1; dev->base_addr = link->io.BasePort1;
...@@ -1118,7 +1118,7 @@ static void netwave_pcmcia_config(dev_link_t *link) { ...@@ -1118,7 +1118,7 @@ static void netwave_pcmcia_config(dev_link_t *link) {
static void netwave_release(dev_link_t *link) static void netwave_release(dev_link_t *link)
{ {
struct net_device *dev = link->priv; struct net_device *dev = link->priv;
netwave_private *priv = dev->priv; netwave_private *priv = netdev_priv(dev);
DEBUG(0, "netwave_release(0x%p)\n", link); DEBUG(0, "netwave_release(0x%p)\n", link);
...@@ -1149,7 +1149,8 @@ static void netwave_release(dev_link_t *link) ...@@ -1149,7 +1149,8 @@ static void netwave_release(dev_link_t *link)
* *
*/ */
static int netwave_event(event_t event, int priority, static int netwave_event(event_t event, int priority,
event_callback_args_t *args) { event_callback_args_t *args)
{
dev_link_t *link = args->client_data; dev_link_t *link = args->client_data;
struct net_device *dev = link->priv; struct net_device *dev = link->priv;
...@@ -1202,7 +1203,8 @@ static int netwave_event(event_t event, int priority, ...@@ -1202,7 +1203,8 @@ static int netwave_event(event_t event, int priority,
* *
* Proper hardware reset of the card. * Proper hardware reset of the card.
*/ */
static void netwave_doreset(ioaddr_t ioBase, u_char* ramBase) { static void netwave_doreset(ioaddr_t ioBase, u_char __iomem *ramBase)
{
/* Reset card */ /* Reset card */
wait_WOC(ioBase); wait_WOC(ioBase);
outb(0x80, ioBase + NETWAVE_REG_PMR); outb(0x80, ioBase + NETWAVE_REG_PMR);
...@@ -1217,8 +1219,8 @@ static void netwave_doreset(ioaddr_t ioBase, u_char* ramBase) { ...@@ -1217,8 +1219,8 @@ static void netwave_doreset(ioaddr_t ioBase, u_char* ramBase) {
*/ */
static void netwave_reset(struct net_device *dev) { static void netwave_reset(struct net_device *dev) {
/* u_char state; */ /* u_char state; */
netwave_private *priv = (netwave_private*) dev->priv; netwave_private *priv = netdev_priv(dev);
u_char *ramBase = priv->ramBase; u_char __iomem *ramBase = priv->ramBase;
ioaddr_t iobase = dev->base_addr; ioaddr_t iobase = dev->base_addr;
DEBUG(0, "netwave_reset: Done with hardware reset\n"); DEBUG(0, "netwave_reset: Done with hardware reset\n");
...@@ -1298,8 +1300,8 @@ static int netwave_hw_xmit(unsigned char* data, int len, ...@@ -1298,8 +1300,8 @@ static int netwave_hw_xmit(unsigned char* data, int len,
DataOffset; DataOffset;
int tmpcount; int tmpcount;
netwave_private *priv = (netwave_private *) dev->priv; netwave_private *priv = netdev_priv(dev);
u_char* ramBase = priv->ramBase; u_char __iomem * ramBase = priv->ramBase;
ioaddr_t iobase = dev->base_addr; ioaddr_t iobase = dev->base_addr;
/* Disable interrupts & save flags */ /* Disable interrupts & save flags */
...@@ -1390,11 +1392,12 @@ static int netwave_start_xmit(struct sk_buff *skb, struct net_device *dev) { ...@@ -1390,11 +1392,12 @@ static int netwave_start_xmit(struct sk_buff *skb, struct net_device *dev) {
* ready to transmit another packet. * ready to transmit another packet.
* 3. A command has completed execution. * 3. A command has completed execution.
*/ */
static irqreturn_t netwave_interrupt(int irq, void* dev_id, struct pt_regs *regs) { static irqreturn_t netwave_interrupt(int irq, void* dev_id, struct pt_regs *regs)
{
ioaddr_t iobase; ioaddr_t iobase;
u_char *ramBase; u_char __iomem *ramBase;
struct net_device *dev = (struct net_device *)dev_id; struct net_device *dev = (struct net_device *)dev_id;
struct netwave_private *priv = dev->priv; struct netwave_private *priv = netdev_priv(dev);
dev_link_t *link = &priv->link; dev_link_t *link = &priv->link;
int i; int i;
...@@ -1524,7 +1527,7 @@ static void netwave_watchdog(struct net_device *dev) { ...@@ -1524,7 +1527,7 @@ static void netwave_watchdog(struct net_device *dev) {
} /* netwave_watchdog */ } /* netwave_watchdog */
static struct net_device_stats *netwave_get_stats(struct net_device *dev) { static struct net_device_stats *netwave_get_stats(struct net_device *dev) {
netwave_private *priv = (netwave_private*)dev->priv; netwave_private *priv = netdev_priv(dev);
update_stats(dev); update_stats(dev);
...@@ -1547,7 +1550,7 @@ static struct net_device_stats *netwave_get_stats(struct net_device *dev) { ...@@ -1547,7 +1550,7 @@ static struct net_device_stats *netwave_get_stats(struct net_device *dev) {
static void update_stats(struct net_device *dev) { static void update_stats(struct net_device *dev) {
//unsigned long flags; //unsigned long flags;
/* netwave_private *priv = (netwave_private*) dev->priv; */ /* netwave_private *priv = netdev_priv(dev); */
//spin_lock_irqsave(&priv->spinlock, flags); //spin_lock_irqsave(&priv->spinlock, flags);
...@@ -1557,9 +1560,10 @@ static void update_stats(struct net_device *dev) { ...@@ -1557,9 +1560,10 @@ static void update_stats(struct net_device *dev) {
//spin_unlock_irqrestore(&priv->spinlock, flags); //spin_unlock_irqrestore(&priv->spinlock, flags);
} }
static int netwave_rx(struct net_device *dev) { static int netwave_rx(struct net_device *dev)
netwave_private *priv = (netwave_private*)(dev->priv); {
u_char *ramBase = priv->ramBase; netwave_private *priv = netdev_priv(dev);
u_char __iomem *ramBase = priv->ramBase;
ioaddr_t iobase = dev->base_addr; ioaddr_t iobase = dev->base_addr;
u_char rxStatus; u_char rxStatus;
struct sk_buff *skb = NULL; struct sk_buff *skb = NULL;
...@@ -1647,7 +1651,7 @@ static int netwave_rx(struct net_device *dev) { ...@@ -1647,7 +1651,7 @@ static int netwave_rx(struct net_device *dev) {
} }
static int netwave_open(struct net_device *dev) { static int netwave_open(struct net_device *dev) {
netwave_private *priv = dev->priv; netwave_private *priv = netdev_priv(dev);
dev_link_t *link = &priv->link; dev_link_t *link = &priv->link;
DEBUG(1, "netwave_open: starting.\n"); DEBUG(1, "netwave_open: starting.\n");
...@@ -1664,7 +1668,7 @@ static int netwave_open(struct net_device *dev) { ...@@ -1664,7 +1668,7 @@ static int netwave_open(struct net_device *dev) {
} }
static int netwave_close(struct net_device *dev) { static int netwave_close(struct net_device *dev) {
netwave_private *priv = (netwave_private *)dev->priv; netwave_private *priv = netdev_priv(dev);
dev_link_t *link = &priv->link; dev_link_t *link = &priv->link;
DEBUG(1, "netwave_close: finishing.\n"); DEBUG(1, "netwave_close: finishing.\n");
...@@ -1709,7 +1713,8 @@ module_exit(exit_netwave_cs); ...@@ -1709,7 +1713,8 @@ module_exit(exit_netwave_cs);
static void set_multicast_list(struct net_device *dev) static void set_multicast_list(struct net_device *dev)
{ {
ioaddr_t iobase = dev->base_addr; ioaddr_t iobase = dev->base_addr;
u_char* ramBase = ((netwave_private*) dev->priv)->ramBase; netwave_private *priv = netdev_priv(dev);
u_char __iomem * ramBase = priv->ramBase;
u_char rcvMode = 0; u_char rcvMode = 0;
#ifdef PCMCIA_DEBUG #ifdef PCMCIA_DEBUG
......
...@@ -136,7 +136,8 @@ psa_read(struct net_device * dev, ...@@ -136,7 +136,8 @@ psa_read(struct net_device * dev,
u_char * b, /* buffer to fill */ u_char * b, /* buffer to fill */
int n) /* size to read */ int n) /* size to read */
{ {
u_char * ptr = ((u_char *)dev->mem_start) + PSA_ADDR + (o << 1); net_local *lp = netdev_priv(dev);
u_char __iomem *ptr = lp->mem + PSA_ADDR + (o << 1);
while(n-- > 0) while(n-- > 0)
{ {
...@@ -160,12 +161,13 @@ psa_write(struct net_device * dev, ...@@ -160,12 +161,13 @@ psa_write(struct net_device * dev,
u_char * b, /* Buffer in memory */ u_char * b, /* Buffer in memory */
int n) /* Length of buffer */ int n) /* Length of buffer */
{ {
u_char * ptr = ((u_char *) dev->mem_start) + PSA_ADDR + (o << 1); net_local *lp = netdev_priv(dev);
u_char __iomem *ptr = lp->mem + PSA_ADDR + (o << 1);
int count = 0; int count = 0;
ioaddr_t base = dev->base_addr; ioaddr_t base = dev->base_addr;
/* As there seem to have no flag PSA_BUSY as in the ISA model, we are /* As there seem to have no flag PSA_BUSY as in the ISA model, we are
* oblige to verify this address to know when the PSA is ready... */ * oblige to verify this address to know when the PSA is ready... */
volatile u_char * verify = ((u_char *) dev->mem_start) + PSA_ADDR + volatile u_char __iomem *verify = lp->mem + PSA_ADDR +
(psaoff(0, psa_comp_number) << 1); (psaoff(0, psa_comp_number) << 1);
/* Authorize writting to PSA */ /* Authorize writting to PSA */
...@@ -3948,17 +3950,16 @@ wv_hw_reset(struct net_device * dev) ...@@ -3948,17 +3950,16 @@ wv_hw_reset(struct net_device * dev)
static inline int static inline int
wv_pcmcia_config(dev_link_t * link) wv_pcmcia_config(dev_link_t * link)
{ {
client_handle_t handle; client_handle_t handle = link->handle;
tuple_t tuple; tuple_t tuple;
cisparse_t parse; cisparse_t parse;
struct net_device * dev; struct net_device * dev = (struct net_device *) link->priv;
int i; int i;
u_char buf[64]; u_char buf[64];
win_req_t req; win_req_t req;
memreq_t mem; memreq_t mem;
net_local * lp = netdev_priv(dev);
handle = link->handle;
dev = (struct net_device *) link->priv;
#ifdef DEBUG_CONFIG_TRACE #ifdef DEBUG_CONFIG_TRACE
printk(KERN_DEBUG "->wv_pcmcia_config(0x%p)\n", link); printk(KERN_DEBUG "->wv_pcmcia_config(0x%p)\n", link);
...@@ -4045,7 +4046,8 @@ wv_pcmcia_config(dev_link_t * link) ...@@ -4045,7 +4046,8 @@ wv_pcmcia_config(dev_link_t * link)
break; break;
} }
dev->mem_start = (u_long)ioremap(req.Base, req.Size); lp->mem = ioremap(req.Base, req.Size);
dev->mem_start = (u_long)lp->mem;
dev->mem_end = dev->mem_start + req.Size; dev->mem_end = dev->mem_start + req.Size;
mem.CardOffset = 0; mem.Page = 0; mem.CardOffset = 0; mem.Page = 0;
...@@ -4062,8 +4064,8 @@ wv_pcmcia_config(dev_link_t * link) ...@@ -4062,8 +4064,8 @@ wv_pcmcia_config(dev_link_t * link)
netif_start_queue(dev); netif_start_queue(dev);
#ifdef DEBUG_CONFIG_INFO #ifdef DEBUG_CONFIG_INFO
printk(KERN_DEBUG "wv_pcmcia_config: MEMSTART 0x%x IRQ %d IOPORT 0x%x\n", printk(KERN_DEBUG "wv_pcmcia_config: MEMSTART %p IRQ %d IOPORT 0x%x\n",
(u_int) dev->mem_start, dev->irq, (u_int) dev->base_addr); lp->mem, dev->irq, (u_int) dev->base_addr);
#endif #endif
i = register_netdev(dev); i = register_netdev(dev);
...@@ -4104,13 +4106,14 @@ static void ...@@ -4104,13 +4106,14 @@ static void
wv_pcmcia_release(dev_link_t *link) wv_pcmcia_release(dev_link_t *link)
{ {
struct net_device * dev = (struct net_device *) link->priv; struct net_device * dev = (struct net_device *) link->priv;
net_local * lp = netdev_priv(dev);
#ifdef DEBUG_CONFIG_TRACE #ifdef DEBUG_CONFIG_TRACE
printk(KERN_DEBUG "%s: -> wv_pcmcia_release(0x%p)\n", dev->name, link); printk(KERN_DEBUG "%s: -> wv_pcmcia_release(0x%p)\n", dev->name, link);
#endif #endif
/* Don't bother checking to see if these succeed or not */ /* Don't bother checking to see if these succeed or not */
iounmap((u_char *)dev->mem_start); iounmap(lp->mem);
pcmcia_release_window(link->win); pcmcia_release_window(link->win);
pcmcia_release_configuration(link->handle); pcmcia_release_configuration(link->handle);
pcmcia_release_io(link->handle, &link->io); pcmcia_release_io(link->handle, &link->io);
......
...@@ -645,6 +645,7 @@ struct net_local ...@@ -645,6 +645,7 @@ struct net_local
int cell_search; /* Searching for new cell? */ int cell_search; /* Searching for new cell? */
struct timer_list cell_timer; /* Garbage collection */ struct timer_list cell_timer; /* Garbage collection */
#endif /* WAVELAN_ROAMING */ #endif /* WAVELAN_ROAMING */
void __iomem *mem;
}; };
/**************************** PROTOTYPES ****************************/ /**************************** PROTOTYPES ****************************/
......
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