Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6
[pandora-kernel.git] / drivers / net / arm / ether3.c
index 32da2eb..67e96ae 100644 (file)
@@ -51,7 +51,6 @@
 #include <linux/types.h>
 #include <linux/fcntl.h>
 #include <linux/interrupt.h>
-#include <linux/ptrace.h>
 #include <linux/ioport.h>
 #include <linux/in.h>
 #include <linux/slab.h>
@@ -69,7 +68,7 @@
 #include <asm/ecard.h>
 #include <asm/io.h>
 
-static char version[] __initdata = "ether3 ethernet driver (c) 1995-2000 R.M.King v1.17\n";
+static char version[] __devinitdata = "ether3 ethernet driver (c) 1995-2000 R.M.King v1.17\n";
 
 #include "ether3.h"
 
@@ -464,7 +463,7 @@ static void ether3_setmulticastlist(struct net_device *dev)
        if (dev->flags & IFF_PROMISC) {
                /* promiscuous mode */
                priv(dev)->regs.config1 |= CFG1_RECVPROMISC;
-       } else if (dev->flags & IFF_ALLMULTI) {
+       } else if (dev->flags & IFF_ALLMULTI || dev->mc_count) {
                priv(dev)->regs.config1 |= CFG1_RECVSPECBRMULTI;
        } else
                priv(dev)->regs.config1 |= CFG1_RECVSPECBROAD;
@@ -776,7 +775,8 @@ ether3_probe(struct expansion_card *ec, const struct ecard_id *id)
 {
        const struct ether3_data *data = id->data;
        struct net_device *dev;
-       int i, bus_type, ret;
+       int bus_type, ret;
+       DECLARE_MAC_BUF(mac);
 
        ether3_banner();
 
@@ -790,11 +790,9 @@ ether3_probe(struct expansion_card *ec, const struct ecard_id *id)
                goto release;
        }
 
-       SET_MODULE_OWNER(dev);
        SET_NETDEV_DEV(dev, &ec->dev);
 
-       priv(dev)->base = ioremap(ecard_resource_start(ec, ECARD_RES_MEMC),
-                                 ecard_resource_len(ec, ECARD_RES_MEMC));
+       priv(dev)->base = ecardm_iomap(ec, ECARD_RES_MEMC, 0, 0);
        if (!priv(dev)->base) {
                ret = -ENOMEM;
                goto free;
@@ -861,16 +859,13 @@ ether3_probe(struct expansion_card *ec, const struct ecard_id *id)
        if (ret)
                goto free;
 
-       printk("%s: %s in slot %d, ", dev->name, data->name, ec->slot_no);
-       for (i = 0; i < 6; i++)
-               printk("%2.2x%c", dev->dev_addr[i], i == 5 ? '\n' : ':');
+       printk("%s: %s in slot %d, %s\n",
+              dev->name, data->name, ec->slot_no, print_mac(mac, dev->dev_addr));
 
        ecard_set_drvdata(ec, dev);
        return 0;
 
  free:
-       if (priv(dev)->base)
-               iounmap(priv(dev)->base);
        free_netdev(dev);
  release:
        ecard_release_resources(ec);
@@ -885,7 +880,6 @@ static void __devexit ether3_remove(struct expansion_card *ec)
        ecard_set_drvdata(ec, NULL);
 
        unregister_netdev(dev);
-       iounmap(priv(dev)->base);
        free_netdev(dev);
        ecard_release_resources(ec);
 }