Commit a55d3471 authored by Jeff Garzik's avatar Jeff Garzik

Merge pobox.com:/garz/repo/linux-2.6

into pobox.com:/garz/repo/netdev-2.6/viro-eth1
parents d1370cf6 c02c7ccf
......@@ -776,6 +776,7 @@ struct netdev_private {
struct mii_if_info mii_if; /* MII lib hooks/info */
int phy_cnt; /* MII device addresses. */
unsigned char phys[PHY_CNT]; /* MII device addresses. */
void __iomem *base;
};
......@@ -846,6 +847,7 @@ static int __devinit starfire_init_one(struct pci_dev *pdev,
struct net_device *dev;
static int card_idx = -1;
long ioaddr;
void __iomem *base;
int drv_flags, io_size;
int boguscnt;
......@@ -884,14 +886,12 @@ static int __devinit starfire_init_one(struct pci_dev *pdev,
}
/* ioremap is borken in Linux-2.2.x/sparc64 */
#if !defined(CONFIG_SPARC64) || LINUX_VERSION_CODE > 0x20300
ioaddr = (long) ioremap(ioaddr, io_size);
if (!ioaddr) {
base = ioremap(ioaddr, io_size);
if (!base) {
printk(KERN_ERR DRV_NAME " %d: cannot remap %#x @ %#lx, aborting\n",
card_idx, io_size, ioaddr);
goto err_out_free_res;
}
#endif /* !CONFIG_SPARC64 || Linux 2.3.0+ */
pci_set_master(pdev);
......@@ -918,27 +918,27 @@ static int __devinit starfire_init_one(struct pci_dev *pdev,
/* Serial EEPROM reads are hidden by the hardware. */
for (i = 0; i < 6; i++)
dev->dev_addr[i] = readb(ioaddr + EEPROMCtrl + 20 - i);
dev->dev_addr[i] = readb(base + EEPROMCtrl + 20 - i);
#if ! defined(final_version) /* Dump the EEPROM contents during development. */
if (debug > 4)
for (i = 0; i < 0x20; i++)
printk("%2.2x%s",
(unsigned int)readb(ioaddr + EEPROMCtrl + i),
(unsigned int)readb(base + EEPROMCtrl + i),
i % 16 != 15 ? " " : "\n");
#endif
/* Issue soft reset */
writel(MiiSoftReset, ioaddr + TxMode);
writel(MiiSoftReset, base + TxMode);
udelay(1000);
writel(0, ioaddr + TxMode);
writel(0, base + TxMode);
/* Reset the chip to erase previous misconfiguration. */
writel(1, ioaddr + PCIDeviceConfig);
writel(1, base + PCIDeviceConfig);
boguscnt = 1000;
while (--boguscnt > 0) {
udelay(10);
if ((readl(ioaddr + PCIDeviceConfig) & 1) == 0)
if ((readl(base + PCIDeviceConfig) & 1) == 0)
break;
}
if (boguscnt == 0)
......@@ -946,10 +946,11 @@ static int __devinit starfire_init_one(struct pci_dev *pdev,
/* wait a little longer */
udelay(1000);
dev->base_addr = ioaddr;
dev->base_addr = (unsigned long)base;
dev->irq = irq;
np = netdev_priv(dev);
np->base = base;
spin_lock_init(&np->lock);
pci_set_drvdata(pdev, dev);
......@@ -1021,8 +1022,8 @@ static int __devinit starfire_init_one(struct pci_dev *pdev,
if (register_netdev(dev))
goto err_out_cleardev;
printk(KERN_INFO "%s: %s at %#lx, ",
dev->name, netdrv_tbl[chip_idx].name, ioaddr);
printk(KERN_INFO "%s: %s at %p, ",
dev->name, netdrv_tbl[chip_idx].name, base);
for (i = 0; i < 5; i++)
printk("%2.2x:", dev->dev_addr[i]);
printk("%2.2x, IRQ %d.\n", dev->dev_addr[i], irq);
......@@ -1065,7 +1066,7 @@ static int __devinit starfire_init_one(struct pci_dev *pdev,
err_out_cleardev:
pci_set_drvdata(pdev, NULL);
iounmap((void *)ioaddr);
iounmap(base);
err_out_free_res:
pci_release_regions (pdev);
err_out_free_netdev:
......@@ -1077,7 +1078,8 @@ static int __devinit starfire_init_one(struct pci_dev *pdev,
/* Read the MII Management Data I/O (MDIO) interfaces. */
static int mdio_read(struct net_device *dev, int phy_id, int location)
{
long mdio_addr = dev->base_addr + MIICtrl + (phy_id<<7) + (location<<2);
struct netdev_private *np = netdev_priv(dev);
void __iomem *mdio_addr = np->base + MIICtrl + (phy_id<<7) + (location<<2);
int result, boguscnt=1000;
/* ??? Should we add a busy-wait here? */
do
......@@ -1093,7 +1095,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)
{
long mdio_addr = dev->base_addr + MIICtrl + (phy_id<<7) + (location<<2);
struct netdev_private *np = netdev_priv(dev);
void __iomem *mdio_addr = np->base + MIICtrl + (phy_id<<7) + (location<<2);
writel(value, mdio_addr);
/* The busy-wait will occur before a read. */
}
......@@ -1102,7 +1105,7 @@ static void mdio_write(struct net_device *dev, int phy_id, int location, int val
static int netdev_open(struct net_device *dev)
{
struct netdev_private *np = netdev_priv(dev);
long ioaddr = dev->base_addr;
void __iomem *ioaddr = np->base;
int i, retval;
size_t tx_done_q_size, rx_done_q_size, tx_ring_size, rx_ring_size;
......@@ -1191,7 +1194,7 @@ static int netdev_open(struct net_device *dev)
writew(0, ioaddr + PerfFilterTable + 8);
for (i = 1; i < 16; i++) {
u16 *eaddrs = (u16 *)dev->dev_addr;
long setup_frm = ioaddr + PerfFilterTable + i * 16;
void __iomem *setup_frm = ioaddr + PerfFilterTable + i * 16;
writew(cpu_to_be16(eaddrs[2]), setup_frm); setup_frm += 4;
writew(cpu_to_be16(eaddrs[1]), setup_frm); setup_frm += 4;
writew(cpu_to_be16(eaddrs[0]), setup_frm); setup_frm += 8;
......@@ -1295,7 +1298,7 @@ static void check_duplex(struct net_device *dev)
static void tx_timeout(struct net_device *dev)
{
struct netdev_private *np = netdev_priv(dev);
long ioaddr = dev->base_addr;
void __iomem *ioaddr = np->base;
int old_debug;
printk(KERN_WARNING "%s: Transmit timed out, status %#8.8x, "
......@@ -1343,7 +1346,7 @@ static void init_ring(struct net_device *dev)
/* Grrr, we cannot offset to correctly align the IP header. */
np->rx_ring[i].rxaddr = cpu_to_dma(np->rx_info[i].mapping | RxDescValid);
}
writew(i - 1, dev->base_addr + RxDescQIdx);
writew(i - 1, np->base + RxDescQIdx);
np->dirty_rx = (unsigned int)(i - RX_RING_SIZE);
/* Clear the remainder of the Rx buffer ring. */
......@@ -1464,7 +1467,7 @@ static int start_tx(struct sk_buff *skb, struct net_device *dev)
wmb();
/* Update the producer index. */
writel(entry * (sizeof(starfire_tx_desc) / 8), dev->base_addr + TxProducerIdx);
writel(entry * (sizeof(starfire_tx_desc) / 8), np->base + TxProducerIdx);
/* 4 is arbitrary, but should be ok */
if ((np->cur_tx - np->dirty_tx) + 4 > TX_RING_SIZE)
......@@ -1481,16 +1484,13 @@ static int start_tx(struct sk_buff *skb, struct net_device *dev)
static irqreturn_t intr_handler(int irq, void *dev_instance, struct pt_regs *rgs)
{
struct net_device *dev = dev_instance;
struct netdev_private *np;
long ioaddr;
struct netdev_private *np = netdev_priv(dev);
void __iomem *ioaddr = np->base;
int boguscnt = max_interrupt_work;
int consumer;
int tx_status;
int handled = 0;
ioaddr = dev->base_addr;
np = netdev_priv(dev);
do {
u32 intr_status = readl(ioaddr + IntrClear);
......@@ -1697,7 +1697,7 @@ static int __netdev_rx(struct net_device *dev, int *quota)
desc->status = 0;
np->rx_done = (np->rx_done + 1) % DONE_Q_SIZE;
}
writew(np->rx_done, dev->base_addr + CompletionQConsumerIdx);
writew(np->rx_done, np->base + CompletionQConsumerIdx);
out:
refill_rx_ring(dev);
......@@ -1712,7 +1712,8 @@ static int __netdev_rx(struct net_device *dev, int *quota)
static int netdev_poll(struct net_device *dev, int *budget)
{
u32 intr_status;
long ioaddr = dev->base_addr;
struct netdev_private *np = netdev_priv(dev);
void __iomem *ioaddr = np->base;
int retcode = 0, quota = dev->quota;
do {
......@@ -1766,14 +1767,14 @@ static void refill_rx_ring(struct net_device *dev)
np->rx_ring[entry].rxaddr |= cpu_to_dma(RxDescEndRing);
}
if (entry >= 0)
writew(entry, dev->base_addr + RxDescQIdx);
writew(entry, np->base + RxDescQIdx);
}
static void netdev_media_change(struct net_device *dev)
{
struct netdev_private *np = netdev_priv(dev);
long ioaddr = dev->base_addr;
void __iomem *ioaddr = np->base;
u16 reg0, reg1, reg4, reg5;
u32 new_tx_mode;
u32 new_intr_timer_ctrl;
......@@ -1852,7 +1853,7 @@ static void netdev_error(struct net_device *dev, int intr_status)
/* Came close to underrunning the Tx FIFO, increase threshold. */
if (intr_status & IntrTxDataLow) {
if (np->tx_threshold <= PKT_BUF_SZ / 16) {
writel(++np->tx_threshold, dev->base_addr + TxThreshold);
writel(++np->tx_threshold, np->base + TxThreshold);
printk(KERN_NOTICE "%s: PCI bus congestion, increasing Tx FIFO threshold to %d bytes\n",
dev->name, np->tx_threshold * 16);
} else
......@@ -1874,8 +1875,8 @@ static void netdev_error(struct net_device *dev, int intr_status)
static struct net_device_stats *get_stats(struct net_device *dev)
{
long ioaddr = dev->base_addr;
struct netdev_private *np = netdev_priv(dev);
void __iomem *ioaddr = np->base;
/* This adapter architecture needs no SMP locks. */
np->stats.tx_bytes = readl(ioaddr + 0x57010);
......@@ -1904,17 +1905,17 @@ static struct net_device_stats *get_stats(struct net_device *dev)
*/
static void set_rx_mode(struct net_device *dev)
{
long ioaddr = dev->base_addr;
struct netdev_private *np = netdev_priv(dev);
void __iomem *ioaddr = np->base;
u32 rx_mode = MinVLANPrio;
struct dev_mc_list *mclist;
int i;
#ifdef VLAN_SUPPORT
struct netdev_private *np = netdev_priv(dev);
rx_mode |= VlanMode;
if (np->vlgrp) {
int vlan_count = 0;
long filter_addr = ioaddr + HashTable + 8;
void __iomem *filter_addr = ioaddr + HashTable + 8;
for (i = 0; i < VLAN_VID_MASK; i++) {
if (np->vlgrp->vlan_devices[i]) {
if (vlan_count >= 32)
......@@ -1943,7 +1944,7 @@ static void set_rx_mode(struct net_device *dev)
rx_mode |= AcceptBroadcast|AcceptAllMulticast|PerfectFilter;
} else if (dev->mc_count <= 14) {
/* Use the 16 element perfect filter, skip first two entries. */
long filter_addr = ioaddr + PerfFilterTable + 2 * 16;
void __iomem *filter_addr = ioaddr + PerfFilterTable + 2 * 16;
u16 *eaddrs;
for (i = 2, mclist = dev->mc_list; mclist && i < dev->mc_count + 2;
i++, mclist = mclist->next) {
......@@ -1961,7 +1962,7 @@ static void set_rx_mode(struct net_device *dev)
rx_mode |= AcceptBroadcast|PerfectFilter;
} else {
/* Must use a multicast hash table. */
long filter_addr;
void __iomem *filter_addr;
u16 *eaddrs;
u16 mc_filter[32] __attribute__ ((aligned(sizeof(long)))); /* Multicast hash filter */
......@@ -2077,8 +2078,8 @@ static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
static int netdev_close(struct net_device *dev)
{
long ioaddr = dev->base_addr;
struct netdev_private *np = netdev_priv(dev);
void __iomem *ioaddr = np->base;
int i;
netif_stop_queue(dev);
......@@ -2162,7 +2163,7 @@ static void __devexit starfire_remove_one (struct pci_dev *pdev)
pci_set_power_state(pdev, 3); /* go to sleep in D3 mode */
pci_disable_device(pdev);
iounmap((char *)dev->base_addr);
iounmap(np->base);
pci_release_regions(pdev);
pci_set_drvdata(pdev, NULL);
......
......@@ -443,7 +443,7 @@ static void __devexit streamer_remove_one(struct pci_dev *pdev)
static int streamer_reset(struct net_device *dev)
{
struct streamer_private *streamer_priv;
__u8 *streamer_mmio;
__u8 __iomem *streamer_mmio;
unsigned long t;
unsigned int uaa_addr;
struct sk_buff *skb = NULL;
......@@ -591,7 +591,7 @@ static int streamer_reset(struct net_device *dev)
static int streamer_open(struct net_device *dev)
{
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;
char open_error[255];
int i, open_finished = 1;
......@@ -908,7 +908,7 @@ static void streamer_rx(struct net_device *dev)
{
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;
struct streamer_rx_desc *rx_desc;
int rx_ring_last_received, length, frame_length, buffer_cnt = 0;
struct sk_buff *skb, *skb2;
......@@ -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 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 sisr;
__u16 misr;
u8 max_intr = MAX_INTR;
......@@ -1158,7 +1158,7 @@ static int streamer_xmit(struct sk_buff *skb, struct net_device *dev)
{
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 ;
spin_lock_irqsave(&streamer_priv->streamer_lock, flags);
......@@ -1209,7 +1209,7 @@ static int streamer_close(struct net_device *dev)
{
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;
int i;
......@@ -1275,7 +1275,7 @@ static void streamer_set_rx_mode(struct net_device *dev)
{
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;
__u8 options = 0;
struct dev_mc_list *dmi;
unsigned char dev_mc_address[5];
......@@ -1334,7 +1334,7 @@ static void streamer_set_rx_mode(struct net_device *dev)
static void streamer_srb_bh(struct net_device *dev)
{
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;
writew(streamer_priv->srb, streamer_mmio + LAPA);
......@@ -1531,7 +1531,7 @@ static void streamer_arb_cmd(struct net_device *dev)
{
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;
__u8 header_len;
__u16 frame_len, buffer_len;
struct sk_buff *mac_frame;
......@@ -1747,7 +1747,7 @@ static void streamer_asb_bh(struct net_device *dev)
{
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;
if (streamer_priv->asb_queued == 1)
{
......@@ -1855,7 +1855,7 @@ static int sprintf_info(char *buffer, struct net_device *dev)
{
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;
struct streamer_adapter_addr_table sat;
struct streamer_parameters_table spt;
int size = 0;
......@@ -1939,7 +1939,7 @@ static int streamer_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
{
int i;
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) {
case IOCTL_SISR_MASK:
......
......@@ -293,7 +293,7 @@ struct streamer_private {
struct streamer_private *next;
struct pci_dev *pci_dev;
__u8 *streamer_mmio;
__u8 __iomem *streamer_mmio;
char *streamer_card_name;
spinlock_t streamer_lock;
......
......@@ -129,7 +129,7 @@ static inline long us2ticks(int us)
static inline int arlan_drop_tx(struct net_device *dev)
{
struct arlan_private *priv = dev->priv;
struct arlan_private *priv = netdev_priv(dev);
priv->stats.tx_errors++;
if (priv->Conf->tx_delay_ms)
......@@ -152,8 +152,8 @@ static inline int arlan_drop_tx(struct net_device *dev)
int arlan_command(struct net_device *dev, int command_p)
{
struct arlan_private *priv = dev->priv;
volatile struct arlan_shmem *arlan = priv->card;
struct arlan_private *priv = netdev_priv(dev);
volatile struct arlan_shmem __iomem *arlan = priv->card;
struct arlan_conf_stru *conf = priv->Conf;
int udelayed = 0;
int i = 0;
......@@ -368,7 +368,7 @@ int arlan_command(struct net_device *dev, int command_p)
if (!registrationBad(dev))
{
setInterruptEnable(dev);
memset_io((void *) arlan->commandParameter, 0, 0xf);
memset_io(arlan->commandParameter, 0, 0xf);
WRITESHMB(arlan->commandByte, ARLAN_COM_INT | ARLAN_COM_RX_ENABLE);
WRITESHMB(arlan->commandParameter[0], conf->rxParameter);
arlan_interrupt_lancpu(dev);
......@@ -398,9 +398,9 @@ int arlan_command(struct net_device *dev, int command_p)
priv->last_rx_int_ack_time + us2ticks(conf->rx_tweak2)))
{
setInterruptEnable(dev);
memset_io((void *) arlan->commandParameter, 0, 0xf);
memset_io(arlan->commandParameter, 0, 0xf);
WRITESHMB(arlan->commandByte, ARLAN_COM_TX_ENABLE | ARLAN_COM_INT);
memcpy_toio((void *) arlan->commandParameter, &TXLAST(dev), 14);
memcpy_toio(arlan->commandParameter, &TXLAST(dev), 14);
// for ( i=1 ; i < 15 ; i++) printk("%02x:",READSHMB(arlan->commandParameter[i]));
priv->tx_last_sent = jiffies;
arlan_interrupt_lancpu(dev);
......@@ -481,7 +481,7 @@ int arlan_command(struct net_device *dev, int command_p)
static inline void arlan_command_process(struct net_device *dev)
{
struct arlan_private *priv = dev->priv;
struct arlan_private *priv = netdev_priv(dev);
int times = 0;
while (priv->waiting_command_mask && times < 8)
......@@ -502,7 +502,7 @@ static inline void arlan_command_process(struct net_device *dev)
static inline void arlan_retransmit_now(struct net_device *dev)
{
struct arlan_private *priv = dev->priv;
struct arlan_private *priv = netdev_priv(dev);
ARLAN_DEBUG_ENTRY("arlan_retransmit_now");
......@@ -540,7 +540,7 @@ static inline void arlan_retransmit_now(struct net_device *dev)
static void arlan_registration_timer(unsigned long data)
{
struct net_device *dev = (struct net_device *) data;
struct arlan_private *priv = dev->priv;
struct arlan_private *priv = netdev_priv(dev);
int bh_mark_needed = 0;
int next_tick = 1;
long lostTime = ((long)jiffies - (long)priv->registrationLastSeen)
......@@ -633,7 +633,7 @@ static void arlan_registration_timer(unsigned long data)
static void arlan_print_registers(struct net_device *dev, int line)
{
struct arlan_private *priv = dev->priv;
struct arlan_private *priv = netdev_priv(dev);
volatile struct arlan_shmem *arlan = priv->card;
u_char hostcpuLock, lancpuLock, controlRegister, cntrlRegImage,
......@@ -663,8 +663,8 @@ static int arlan_hw_tx(struct net_device *dev, char *buf, int length)
{
int i;
struct arlan_private *priv = dev->priv;
volatile struct arlan_shmem *arlan = priv->card;
struct arlan_private *priv = netdev_priv(dev);
volatile struct arlan_shmem __iomem *arlan = priv->card;
struct arlan_conf_stru *conf = priv->Conf;
int tailStarts = 0x800;
......@@ -673,9 +673,9 @@ static int arlan_hw_tx(struct net_device *dev, char *buf, int length)
ARLAN_DEBUG_ENTRY("arlan_hw_tx");
if (TXHEAD(dev).offset)
headEnds = (((TXHEAD(dev).offset + TXHEAD(dev).length - (((int) arlan->txBuffer) - ((int) arlan))) / 64) + 1) * 64;
headEnds = (((TXHEAD(dev).offset + TXHEAD(dev).length - offsetof(struct arlan_shmem, txBuffer)) / 64) + 1) * 64;
if (TXTAIL(dev).offset)
tailStarts = 0x800 - (((TXTAIL(dev).offset - (((int) arlan->txBuffer) - ((int) arlan))) / 64) + 2) * 64;
tailStarts = 0x800 - (((TXTAIL(dev).offset - offsetof(struct arlan_shmem, txBuffer)) / 64) + 2) * 64;
if (!TXHEAD(dev).offset && length < tailStarts)
......@@ -684,7 +684,7 @@ static int arlan_hw_tx(struct net_device *dev, char *buf, int length)
printk(KERN_ERR "TXHEAD insert, tailStart %d\n", tailStarts);
TXHEAD(dev).offset =
(((int) arlan->txBuffer) - ((int) arlan));
offsetof(struct arlan_shmem, txBuffer);
TXHEAD(dev).length = length - ARLAN_FAKE_HDR_LEN;
for (i = 0; i < 6; i++)
TXHEAD(dev).dest[i] = buf[i];
......@@ -692,7 +692,7 @@ static int arlan_hw_tx(struct net_device *dev, char *buf, int length)
TXHEAD(dev).retries = conf->txRetries; /* 0 is use default */
TXHEAD(dev).routing = conf->txRouting;
TXHEAD(dev).scrambled = conf->txScrambled;
memcpy_toio(((char *) arlan + TXHEAD(dev).offset), buf + ARLAN_FAKE_HDR_LEN, TXHEAD(dev).length);
memcpy_toio((char __iomem *)arlan + TXHEAD(dev).offset, buf + ARLAN_FAKE_HDR_LEN, TXHEAD(dev).length);
}
else if (!TXTAIL(dev).offset && length < (0x800 - headEnds))
{
......@@ -700,7 +700,7 @@ static int arlan_hw_tx(struct net_device *dev, char *buf, int length)
printk(KERN_ERR "TXTAIL insert, headEnd %d\n", headEnds);
TXTAIL(dev).offset =
(((int) arlan->txBuffer) - ((int) arlan)) + 0x800 - (length / 64 + 2) * 64;
offsetof(struct arlan_shmem, txBuffer) + 0x800 - (length / 64 + 2) * 64;
TXTAIL(dev).length = length - ARLAN_FAKE_HDR_LEN;
for (i = 0; i < 6; i++)
TXTAIL(dev).dest[i] = buf[i];
......@@ -708,7 +708,7 @@ static int arlan_hw_tx(struct net_device *dev, char *buf, int length)
TXTAIL(dev).retries = conf->txRetries;
TXTAIL(dev).routing = conf->txRouting;
TXTAIL(dev).scrambled = conf->txScrambled;
memcpy_toio(((char *) arlan + TXTAIL(dev).offset), buf + ARLAN_FAKE_HDR_LEN, TXTAIL(dev).length);
memcpy_toio(((char __iomem *)arlan + TXTAIL(dev).offset), buf + ARLAN_FAKE_HDR_LEN, TXTAIL(dev).length);
}
else
{
......@@ -764,8 +764,8 @@ static int arlan_hw_tx(struct net_device *dev, char *buf, int length)
static int arlan_hw_config(struct net_device *dev)
{
struct arlan_private *priv = dev->priv;
volatile struct arlan_shmem *arlan = priv->card;
struct arlan_private *priv = netdev_priv(dev);
volatile struct arlan_shmem __iomem *arlan = priv->card;
struct arlan_conf_stru *conf = priv->Conf;
ARLAN_DEBUG_ENTRY("arlan_hw_config");
......@@ -847,8 +847,8 @@ static int arlan_hw_config(struct net_device *dev)
static int arlan_read_card_configuration(struct net_device *dev)
{
u_char tlx415;
struct arlan_private *priv = dev->priv;
volatile struct arlan_shmem *arlan = priv->card;
struct arlan_private *priv = netdev_priv(dev);
volatile struct arlan_shmem __iomem *arlan = priv->card;
struct arlan_conf_stru *conf = priv->Conf;
ARLAN_DEBUG_ENTRY("arlan_read_card_configuration");
......@@ -972,7 +972,7 @@ static int lastFoundAt = 0xbe000;
static int __init arlan_check_fingerprint(unsigned long memaddr)
{
static const char probeText[] = "TELESYSTEM SLW INC. ARLAN \0";
volatile struct arlan_shmem *arlan = (struct arlan_shmem *) memaddr;
volatile struct arlan_shmem __iomem *arlan = (struct arlan_shmem *) memaddr;
unsigned long paddr = virt_to_phys((void *) memaddr);
char tempBuf[49];
......@@ -1000,7 +1000,7 @@ static int __init arlan_check_fingerprint(unsigned long memaddr)
static int arlan_change_mtu(struct net_device *dev, int new_mtu)
{
struct arlan_private *priv = dev->priv;
struct arlan_private *priv = netdev_priv(dev);
struct arlan_conf_stru *conf = priv->Conf;
ARLAN_DEBUG_ENTRY("arlan_change_mtu");
......@@ -1040,7 +1040,7 @@ static int arlan_mac_addr(struct net_device *dev, void *p)
static int __init arlan_setup_device(struct net_device *dev, int num)
{
struct arlan_private *ap = dev->priv;
struct arlan_private *ap = netdev_priv(dev);
int err;
ARLAN_DEBUG_ENTRY("arlan_setup_device");
......@@ -1081,7 +1081,7 @@ static int __init arlan_setup_device(struct net_device *dev, int num)
static int __init arlan_probe_here(struct net_device *dev,
unsigned long memaddr)
{
struct arlan_private *ap = dev->priv;
struct arlan_private *ap = netdev_priv(dev);
ARLAN_DEBUG_ENTRY("arlan_probe_here");
......@@ -1110,8 +1110,8 @@ static int __init arlan_probe_here(struct net_device *dev,
static int arlan_open(struct net_device *dev)
{
struct arlan_private *priv = dev->priv;
volatile struct arlan_shmem *arlan = priv->card;
struct arlan_private *priv = netdev_priv(dev);
volatile struct arlan_shmem __iomem *arlan = priv->card;
int ret = 0;
ARLAN_DEBUG_ENTRY("arlan_open");
......@@ -1208,7 +1208,7 @@ static int arlan_tx(struct sk_buff *skb, struct net_device *dev)
static inline int DoNotReTransmitCrap(struct net_device *dev)
{
struct arlan_private *priv = dev->priv;
struct arlan_private *priv = netdev_priv(dev);
if (TXLAST(dev).length < priv->Conf->ReTransmitPacketMaxSize)
return 1;
......@@ -1218,7 +1218,7 @@ static inline int DoNotReTransmitCrap(struct net_device *dev)
static inline int DoNotWaitReTransmitCrap(struct net_device *dev)
{
struct arlan_private *priv = dev->priv;
struct arlan_private *priv = netdev_priv(dev);
if (TXLAST(dev).length < priv->Conf->waitReTransmitPacketMaxSize)
return 1;
......@@ -1227,7 +1227,7 @@ static inline int DoNotWaitReTransmitCrap(struct net_device *dev)
static inline void arlan_queue_retransmit(struct net_device *dev)
{
struct arlan_private *priv = dev->priv;
struct arlan_private *priv = netdev_priv(dev);
ARLAN_DEBUG_ENTRY("arlan_queue_retransmit");
......@@ -1242,7 +1242,7 @@ static inline void arlan_queue_retransmit(struct net_device *dev)
static inline void RetryOrFail(struct net_device *dev)
{
struct arlan_private *priv = dev->priv;
struct arlan_private *priv = netdev_priv(dev);
ARLAN_DEBUG_ENTRY("RetryOrFail");
......@@ -1263,7 +1263,7 @@ static inline void RetryOrFail(struct net_device *dev)
static void arlan_tx_done_interrupt(struct net_device *dev, int status)
{
struct arlan_private *priv = dev->priv;
struct arlan_private *priv = netdev_priv(dev);
ARLAN_DEBUG_ENTRY("arlan_tx_done_interrupt");
......@@ -1405,8 +1405,8 @@ static void arlan_rx_interrupt(struct net_device *dev, u_char rxStatus, u_short
char *skbtmp;
int i = 0;
struct arlan_private *priv = dev->priv;
volatile struct arlan_shmem *arlan = priv->card;
struct arlan_private *priv = netdev_priv(dev);
volatile struct arlan_shmem __iomem *arlan = priv->card;
struct arlan_conf_stru *conf = priv->Conf;
......@@ -1509,7 +1509,7 @@ static void arlan_rx_interrupt(struct net_device *dev, u_char rxStatus, u_short
skb->dev = dev;
skbtmp = skb_put(skb, pkt_len);
memcpy_fromio(skbtmp + ARLAN_FAKE_HDR_LEN, ((char *) arlan) + rxOffset, pkt_len - ARLAN_FAKE_HDR_LEN);
memcpy_fromio(skbtmp + ARLAN_FAKE_HDR_LEN, ((char __iomem *) arlan) + rxOffset, pkt_len - ARLAN_FAKE_HDR_LEN);
memcpy_fromio(skbtmp, arlan->ultimateDestAddress, 6);
memcpy_fromio(skbtmp + 6, arlan->rxSrc, 6);
WRITESHMB(arlan->rxStatus, 0x00);
......@@ -1557,8 +1557,8 @@ static void arlan_rx_interrupt(struct net_device *dev, u_char rxStatus, u_short
static void arlan_process_interrupt(struct net_device *dev)
{
struct arlan_private *priv = dev->priv;
volatile struct arlan_shmem *arlan = priv->card;
struct arlan_private *priv = netdev_priv(dev);
volatile struct arlan_shmem __iomem *arlan = priv->card;
u_char rxStatus = READSHMB(arlan->rxStatus);
u_char txStatus = READSHMB(arlan->txStatus);
u_short rxOffset = READSHMS(arlan->rxOffset);
......@@ -1660,8 +1660,8 @@ static void arlan_process_interrupt(struct net_device *dev)
static irqreturn_t arlan_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{
struct net_device *dev = dev_id;
struct arlan_private *priv = dev->priv;
volatile struct arlan_shmem *arlan = priv->card;
struct arlan_private *priv = netdev_priv(dev);
volatile struct arlan_shmem __iomem *arlan = priv->card;
u_char rxStatus = READSHMB(arlan->rxStatus);
u_char txStatus = READSHMB(arlan->txStatus);
......@@ -1683,7 +1683,7 @@ static irqreturn_t arlan_interrupt(int irq, void *dev_id, struct pt_regs *regs)
static int arlan_close(struct net_device *dev)
{
struct arlan_private *priv = dev->priv;
struct arlan_private *priv = netdev_priv(dev);
ARLAN_DEBUG_ENTRY("arlan_close");
......@@ -1717,8 +1717,8 @@ static long alignLong(volatile u_char * ptr)
static struct net_device_stats *arlan_statistics(struct net_device *dev)
{
struct arlan_private *priv = dev->priv;
volatile struct arlan_shmem *arlan = priv->card;
struct arlan_private *priv = netdev_priv(dev);
volatile struct arlan_shmem __iomem *arlan = priv->card;
ARLAN_DEBUG_ENTRY("arlan_statistics");
......@@ -1747,8 +1747,8 @@ static struct net_device_stats *arlan_statistics(struct net_device *dev)
static void arlan_set_multicast(struct net_device *dev)
{
struct arlan_private *priv = dev->priv;
volatile struct arlan_shmem *arlan = priv->card;
struct arlan_private *priv = netdev_priv(dev);
volatile struct arlan_shmem __iomem *arlan = priv->card;
struct arlan_conf_stru *conf = priv->Conf;
int board_conf_needed = 0;
......
......@@ -58,7 +58,8 @@
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;
READSHM(diagnosticInfo, arlan->diagnosticInfo, u_char);
......@@ -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)
{
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);
switch (hardwareType)
......@@ -189,7 +191,8 @@ static void arlan_print_diagnostic_info(struct net_device *dev)
u_char diagnosticInfo;
u_short diagnosticOffset;
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");
......@@ -254,7 +257,8 @@ static int arlan_hw_test_memory(struct net_device *dev)
int i;
int memlen = sizeof(struct arlan_shmem) - 0xF; /* avoid control register */
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;
ptr = NULL;
......@@ -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)
{
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");
......
......@@ -332,7 +332,7 @@ struct TxParam
/* Information that need to be kept for each board. */
struct arlan_private {
struct net_device_stats stats;
struct arlan_shmem * card;
struct arlan_shmem __iomem * card;
struct arlan_shmem * conf;
struct arlan_conf_stru * Conf;
......@@ -403,14 +403,12 @@ struct arlan_private {
#define ARLAN_COM_INT 0x80
#define TXLAST(dev) (((struct arlan_private *)dev->priv)->txRing[((struct arlan_private *)dev->priv)->txLast])
#define TXHEAD(dev) (((struct arlan_private *)dev->priv)->txRing[0])
#define TXTAIL(dev) (((struct arlan_private *)dev->priv)->txRing[1])
#define TXLAST(dev) (((struct arlan_private *)netdev_priv(dev))->txRing[((struct arlan_private *)netdev_priv(dev))->txLast])
#define TXHEAD(dev) (((struct arlan_private *)netdev_priv(dev))->txRing[0])
#define TXTAIL(dev) (((struct arlan_private *)netdev_priv(dev))->txRing[1])
#define TXBuffStart(dev) \
((int)(((struct arlan_private *)dev->priv)->card)->txBuffer) - ((int)(((struct arlan_private *)dev->priv)->card) )
#define TXBuffEnd(dev) \
((int)(((struct arlan_private *)dev->priv)->card)->rxBuffer) - ((int)(((struct arlan_private *)dev->priv)->card)
#define TXBuffStart(dev) offsetof(struct arlan_shmem, txBuffer)
#define TXBuffEnd(dev) offsetof(struct arlan_shmem, xxBuffer)
#define READSHM(to,from,atype) {\
atype tmp;\
......@@ -451,16 +449,16 @@ struct arlan_private {
#define registrationBad(dev)\
( ( READSHMB(((struct arlan_private *)dev->priv)->card->registrationMode) > 0) && \
( READSHMB(((struct arlan_private *)dev->priv)->card->registrationStatus) == 0) )
( ( READSHMB(((struct arlan_private *)netdev_priv(dev))->card->registrationMode) > 0) && \
( READSHMB(((struct arlan_private *)netdev_priv(dev))->card->registrationStatus) == 0) )
#define readControlRegister(dev)\
READSHMB(((struct arlan_private *)dev->priv)->card->cntrlRegImage)
READSHMB(((struct arlan_private *)netdev_priv(dev))->card->cntrlRegImage)
#define writeControlRegister(dev, v){\
WRITESHMB(((struct arlan_private *)dev->priv)->card->cntrlRegImage ,((v) &0xF) );\
WRITESHMB(((struct arlan_private *)dev->priv)->card->controlRegister ,(v) );}
WRITESHMB(((struct arlan_private *)netdev_priv(dev))->card->cntrlRegImage ,((v) &0xF) );\
WRITESHMB(((struct arlan_private *)netdev_priv(dev))->card->controlRegister ,(v) );}
#define arlan_interrupt_lancpu(dev) {\
......
......@@ -213,7 +213,7 @@ static dev_link_t *netwave_attach(void); /* Create instance */
static void netwave_detach(dev_link_t *); /* Destroy instance */
/* 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);
/* Misc device stuff */
......@@ -322,7 +322,7 @@ typedef struct netwave_private {
dev_link_t link;
spinlock_t spinlock; /* Serialize access to the hardware (SMP) */
dev_node_t node;
u_char *ramBase;
u_char __iomem *ramBase;
int timeoutCounter;
int lastExec;
struct timer_list watchdog; /* To avoid blocking state */
......@@ -341,12 +341,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
* 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 */
}
static inline short get_int16(u_char* staddr)
static inline short get_int16(u_char __iomem * staddr)
{
return readw(staddr);
}
......@@ -363,7 +363,7 @@ static inline void wait_WOC(unsigned int iobase)
}
#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) {
u_short resultBuffer;
......@@ -398,8 +398,8 @@ static struct iw_statistics *netwave_get_wireless_stats(struct net_device *dev)
{
unsigned long flags;
ioaddr_t iobase = dev->base_addr;
netwave_private *priv = (netwave_private *) dev->priv;
u_char *ramBase = priv->ramBase;
netwave_private *priv = netdev_priv(dev);
u_char __iomem *ramBase = priv->ramBase;
struct iw_statistics* wstats;
wstats = &priv->iw_stats;
......@@ -447,7 +447,7 @@ static dev_link_t *netwave_attach(void)
dev = alloc_etherdev(sizeof(netwave_private));
if (!dev)
return NULL;
priv = dev->priv;
priv = netdev_priv(dev);
link = &priv->link;
link->priv = dev;
......@@ -591,8 +591,8 @@ static int netwave_set_nwid(struct net_device *dev,
{
unsigned long flags;
ioaddr_t iobase = dev->base_addr;
netwave_private *priv = (netwave_private *) dev->priv;
u_char *ramBase = priv->ramBase;
netwave_private *priv = netdev_priv(dev);
u_char __iomem *ramBase = priv->ramBase;
/* Disable interrupts & save flags */
spin_lock_irqsave(&priv->spinlock, flags);
......@@ -649,8 +649,8 @@ static int netwave_set_scramble(struct net_device *dev,
{
unsigned long flags;
ioaddr_t iobase = dev->base_addr;
netwave_private *priv = (netwave_private *) dev->priv;
u_char *ramBase = priv->ramBase;
netwave_private *priv = netdev_priv(dev);
u_char __iomem *ramBase = priv->ramBase;
/* Disable interrupts & save flags */
spin_lock_irqsave(&priv->spinlock, flags);
......@@ -765,8 +765,8 @@ static int netwave_get_snap(struct net_device *dev,
{
unsigned long flags;
ioaddr_t iobase = dev->base_addr;
netwave_private *priv = (netwave_private *) dev->priv;
u_char *ramBase = priv->ramBase;
netwave_private *priv = netdev_priv(dev);
u_char __iomem *ramBase = priv->ramBase;
/* Disable interrupts & save flags */
spin_lock_irqsave(&priv->spinlock, flags);
......@@ -998,14 +998,14 @@ do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0)
static void netwave_pcmcia_config(dev_link_t *link) {
client_handle_t handle = link->handle;
struct net_device *dev = link->priv;
netwave_private *priv = dev->priv;
netwave_private *priv = netdev_priv(dev);
tuple_t tuple;
cisparse_t parse;
int i, j, last_ret, last_fn;
u_char buf[64];
win_req_t req;
memreq_t mem;
u_char *ramBase = NULL;
u_char __iomem *ramBase = NULL;
DEBUG(0, "netwave_pcmcia_config(0x%p)\n", link);
......@@ -1071,7 +1071,7 @@ static void netwave_pcmcia_config(dev_link_t *link) {
/* Store base address of the common window frame */
ramBase = ioremap(req.Base, 0x8000);
((netwave_private*)dev->priv)->ramBase = ramBase;
priv->ramBase = ramBase;
dev->irq = link->irq.AssignedIRQ;
dev->base_addr = link->io.BasePort1;
......@@ -1120,7 +1120,7 @@ static void netwave_pcmcia_config(dev_link_t *link) {
static void netwave_release(dev_link_t *link)
{
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);
......@@ -1151,7 +1151,8 @@ static void netwave_release(dev_link_t *link)
*
*/
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;
struct net_device *dev = link->priv;
......@@ -1204,7 +1205,8 @@ static int netwave_event(event_t event, int priority,
*
* 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 */
wait_WOC(ioBase);
outb(0x80, ioBase + NETWAVE_REG_PMR);
......@@ -1219,8 +1221,8 @@ static void netwave_doreset(ioaddr_t ioBase, u_char* ramBase) {
*/
static void netwave_reset(struct net_device *dev) {
/* u_char state; */
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;
DEBUG(0, "netwave_reset: Done with hardware reset\n");
......@@ -1310,8 +1312,8 @@ static int netwave_hw_xmit(unsigned char* data, int len,
DataOffset;
int tmpcount;
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;
/* Disable interrupts & save flags */
......@@ -1402,11 +1404,12 @@ static int netwave_start_xmit(struct sk_buff *skb, struct net_device *dev) {
* ready to transmit another packet.
* 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;
u_char *ramBase;
u_char __iomem *ramBase;
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;
int i;
......@@ -1536,7 +1539,7 @@ static void netwave_watchdog(struct net_device *dev) {
} /* netwave_watchdog */
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);
......@@ -1559,7 +1562,7 @@ static struct net_device_stats *netwave_get_stats(struct net_device *dev) {
static void update_stats(struct net_device *dev) {
//unsigned long flags;
/* netwave_private *priv = (netwave_private*) dev->priv; */
/* netwave_private *priv = netdev_priv(dev); */
//spin_lock_irqsave(&priv->spinlock, flags);
......@@ -1569,9 +1572,10 @@ static void update_stats(struct net_device *dev) {
//spin_unlock_irqrestore(&priv->spinlock, flags);
}
static int netwave_rx(struct net_device *dev) {
netwave_private *priv = (netwave_private*)(dev->priv);
u_char *ramBase = priv->ramBase;
static int netwave_rx(struct net_device *dev)
{
netwave_private *priv = netdev_priv(dev);
u_char __iomem *ramBase = priv->ramBase;
ioaddr_t iobase = dev->base_addr;
u_char rxStatus;
struct sk_buff *skb = NULL;
......@@ -1659,7 +1663,7 @@ static int netwave_rx(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;
DEBUG(1, "netwave_open: starting.\n");
......@@ -1676,7 +1680,7 @@ static int netwave_open(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;
DEBUG(1, "netwave_close: finishing.\n");
......@@ -1721,7 +1725,8 @@ module_exit(exit_netwave_cs);
static void set_multicast_list(struct net_device *dev)
{
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;
#ifdef PCMCIA_DEBUG
......
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