diff options
author | David Woodhouse <dwmw2@infradead.org> | 2006-09-24 22:05:59 +0100 |
---|---|---|
committer | David Woodhouse <dwmw2@infradead.org> | 2006-09-24 22:05:59 +0100 |
commit | 02b25fcff676125a88169c8a78d4c6dd647574ed (patch) | |
tree | 372fc8e885be41ba1819b2767c8889ecd97ff948 /drivers/net/3c509.c | |
parent | 1694176a210189312e31b083bac1e1688981219a (diff) | |
parent | a68aa1cc6f3203b8a332683ebde67a00f39eec43 (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
Diffstat (limited to 'drivers/net/3c509.c')
-rw-r--r-- | drivers/net/3c509.c | 53 |
1 files changed, 22 insertions, 31 deletions
diff --git a/drivers/net/3c509.c b/drivers/net/3c509.c index cbdae54f715..59c33925be6 100644 --- a/drivers/net/3c509.c +++ b/drivers/net/3c509.c @@ -28,7 +28,7 @@ FIXES: Alan Cox: Removed the 'Unexpected interrupt' bug. Michael Meskes: Upgraded to Donald Becker's version 1.07. - Alan Cox: Increased the eeprom delay. Regardless of + Alan Cox: Increased the eeprom delay. Regardless of what the docs say some people definitely get problems with lower (but in card spec) delays @@ -162,7 +162,7 @@ enum RxFilter { #define WN4_MEDIA 0x0A /* Window 4: Various transcvr/media bits. */ #define MEDIA_TP 0x00C0 /* Enable link beat and jabber for 10baseT. */ #define WN4_NETDIAG 0x06 /* Window 4: Net diagnostic */ -#define FD_ENABLE 0x8000 /* Enable full-duplex ("external loopback") */ +#define FD_ENABLE 0x8000 /* Enable full-duplex ("external loopback") */ /* * Must be a power of two (we use a binary and in the @@ -200,7 +200,7 @@ static void set_multicast_list(struct net_device *dev); static void el3_tx_timeout (struct net_device *dev); static void el3_down(struct net_device *dev); static void el3_up(struct net_device *dev); -static struct ethtool_ops ethtool_ops; +static const struct ethtool_ops ethtool_ops; #ifdef EL3_SUSPEND static int el3_suspend(struct device *, pm_message_t); static int el3_resume(struct device *); @@ -350,7 +350,7 @@ static int __init el3_common_init(struct net_device *dev) { const char *if_names[] = {"10baseT", "AUI", "undefined", "BNC"}; printk("%s: 3c5x9 found at %#3.3lx, %s port, address ", - dev->name, dev->base_addr, + dev->name, dev->base_addr, if_names[(dev->if_port & 0x03)]); } @@ -528,7 +528,7 @@ no_pnp: SET_MODULE_OWNER(dev); netdev_boot_setup_check(dev); - + /* Set passed-in IRQ or I/O Addr. */ if (dev->irq > 1 && dev->irq < 16) irq = dev->irq; @@ -630,7 +630,7 @@ static int __init el3_mca_probe(struct device *device) if_port = pos4 & 0x03; irq = mca_device_transform_irq(mdev, irq); - ioaddr = mca_device_transform_ioport(mdev, ioaddr); + ioaddr = mca_device_transform_ioport(mdev, ioaddr); if (el3_debug > 2) { printk("3c529: irq %d ioaddr 0x%x ifport %d\n", irq, ioaddr, if_port); } @@ -667,7 +667,7 @@ static int __init el3_mca_probe(struct device *device) el3_cards++; return 0; } - + #endif /* CONFIG_MCA */ #ifdef CONFIG_EISA @@ -684,7 +684,7 @@ static int __init el3_eisa_probe (struct device *device) /* Yeepee, The driver framework is calling us ! */ edev = to_eisa_device (device); ioaddr = edev->base_addr; - + if (!request_region(ioaddr, EL3_IO_EXTENT, "3c509")) return -EBUSY; @@ -751,7 +751,7 @@ static int __devexit el3_device_remove (struct device *device) static ushort read_eeprom(int ioaddr, int index) { outw(EEPROM_READ + index, ioaddr + 10); - /* Pause for at least 162 us. for the read to take place. + /* Pause for at least 162 us. for the read to take place. Some chips seem to require much longer */ mdelay(2); return inw(ioaddr + 12); @@ -769,7 +769,7 @@ static ushort __init id_read_eeprom(int index) /* Pause for at least 162 us. for the read to take place. */ /* Some chips seem to require much longer */ mdelay(4); - + for (bit = 15; bit >= 0; bit--) word = (word << 1) + (inb(id_port) & 0x01); @@ -838,7 +838,7 @@ el3_start_xmit(struct sk_buff *skb, struct net_device *dev) netif_stop_queue (dev); lp->stats.tx_bytes += skb->len; - + if (el3_debug > 4) { printk("%s: el3_start_xmit(length = %u) called, status %4.4x.\n", dev->name, skb->len, inw(ioaddr + EL3_STATUS)); @@ -879,11 +879,7 @@ el3_start_xmit(struct sk_buff *skb, struct net_device *dev) outw(skb->len, ioaddr + TX_FIFO); outw(0x00, ioaddr + TX_FIFO); /* ... and the packet rounded to a doubleword. */ -#ifdef __powerpc__ - outsl_ns(ioaddr + TX_FIFO, skb->data, (skb->len + 3) >> 2); -#else outsl(ioaddr + TX_FIFO, skb->data, (skb->len + 3) >> 2); -#endif dev->trans_start = jiffies; if (inw(ioaddr + TX_FREE) > 1536) @@ -1024,7 +1020,7 @@ el3_get_stats(struct net_device *dev) * This is fast enough not to bother with disable IRQ * stuff. */ - + spin_lock_irqsave(&lp->lock, flags); update_stats(dev); spin_unlock_irqrestore(&lp->lock, flags); @@ -1103,13 +1099,8 @@ el3_rx(struct net_device *dev) skb_reserve(skb, 2); /* Align IP on 16 byte */ /* 'skb->data' points to the start of sk_buff data area. */ -#ifdef __powerpc__ - insl_ns(ioaddr+RX_FIFO, skb_put(skb,pkt_len), - (pkt_len + 3) >> 2); -#else insl(ioaddr + RX_FIFO, skb_put(skb,pkt_len), (pkt_len + 3) >> 2); -#endif outw(RxDiscard, ioaddr + EL3_CMD); /* Pop top Rx packet. */ skb->protocol = eth_type_trans(skb,dev); @@ -1168,7 +1159,7 @@ el3_close(struct net_device *dev) { int ioaddr = dev->base_addr; struct el3_private *lp = netdev_priv(dev); - + if (el3_debug > 2) printk("%s: Shutting down ethercard.\n", dev->name); @@ -1187,7 +1178,7 @@ el3_close(struct net_device *dev) return 0; } -static int +static int el3_link_ok(struct net_device *dev) { int ioaddr = dev->base_addr; @@ -1204,9 +1195,9 @@ el3_netdev_get_ecmd(struct net_device *dev, struct ethtool_cmd *ecmd) { u16 tmp; int ioaddr = dev->base_addr; - + EL3WINDOW(0); - /* obtain current transceiver via WN4_MEDIA? */ + /* obtain current transceiver via WN4_MEDIA? */ tmp = inw(ioaddr + WN0_ADDR_CONF); ecmd->transceiver = XCVR_INTERNAL; switch (tmp >> 14) { @@ -1349,7 +1340,7 @@ static void el3_set_msglevel(struct net_device *dev, u32 v) el3_debug = v; } -static struct ethtool_ops ethtool_ops = { +static const struct ethtool_ops ethtool_ops = { .get_drvinfo = el3_get_drvinfo, .get_settings = el3_get_settings, .set_settings = el3_set_settings, @@ -1391,7 +1382,7 @@ el3_up(struct net_device *dev) { int i, sw_info, net_diag; int ioaddr = dev->base_addr; - + /* Activating the board required and does no harm otherwise */ outw(0x0001, ioaddr + 4); @@ -1411,7 +1402,7 @@ el3_up(struct net_device *dev) /* Combine secondary sw_info word (the adapter level) and primary sw_info word (duplex setting plus other useless bits) */ EL3WINDOW(0); - sw_info = (read_eeprom(ioaddr, 0x14) & 0x400f) | + sw_info = (read_eeprom(ioaddr, 0x14) & 0x400f) | (read_eeprom(ioaddr, 0x0d) & 0xBff0); EL3WINDOW(4); @@ -1483,7 +1474,7 @@ el3_suspend(struct device *pdev, pm_message_t state) struct net_device *dev; struct el3_private *lp; int ioaddr; - + dev = pdev->driver_data; lp = netdev_priv(dev); ioaddr = dev->base_addr; @@ -1507,7 +1498,7 @@ el3_resume(struct device *pdev) struct net_device *dev; struct el3_private *lp; int ioaddr; - + dev = pdev->driver_data; lp = netdev_priv(dev); ioaddr = dev->base_addr; @@ -1519,7 +1510,7 @@ el3_resume(struct device *pdev) if (netif_running(dev)) netif_device_attach(dev); - + spin_unlock_irqrestore(&lp->lock, flags); return 0; } |