]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/net/niu.c
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux...
[linux-2.6-omap-h63xx.git] / drivers / net / niu.c
index 2fe14b0c5c67956e05f01b69d54ebb7d7a194509..d11ba61baa4f1611a3de3afdf6513ca7b29ad10f 100644 (file)
@@ -33,8 +33,8 @@
 
 #define DRV_MODULE_NAME                "niu"
 #define PFX DRV_MODULE_NAME    ": "
-#define DRV_MODULE_VERSION     "0.6"
-#define DRV_MODULE_RELDATE     "January 5, 2008"
+#define DRV_MODULE_VERSION     "0.7"
+#define DRV_MODULE_RELDATE     "February 18, 2008"
 
 static char version[] __devinitdata =
        DRV_MODULE_NAME ".c:v" DRV_MODULE_VERSION " (" DRV_MODULE_RELDATE ")\n";
@@ -1616,12 +1616,13 @@ static int niu_enable_alt_mac(struct niu *np, int index, int on)
        if (index >= niu_num_alt_addr(np))
                return -EINVAL;
 
-       if (np->flags & NIU_FLAGS_XMAC)
+       if (np->flags & NIU_FLAGS_XMAC) {
                reg = XMAC_ADDR_CMPEN;
-       else
+               mask = 1 << index;
+       } else {
                reg = BMAC_ADDR_CMPEN;
-
-       mask = 1 << index;
+               mask = 1 << (index + 1);
+       }
 
        val = nr64_mac(reg);
        if (on)
@@ -5147,7 +5148,12 @@ static void niu_set_rx_mode(struct net_device *dev)
                        index++;
                }
        } else {
-               for (i = 0; i < niu_num_alt_addr(np); i++) {
+               int alt_start;
+               if (np->flags & NIU_FLAGS_XMAC)
+                       alt_start = 0;
+               else
+                       alt_start = 1;
+               for (i = alt_start; i < niu_num_alt_addr(np); i++) {
                        err = niu_enable_alt_mac(np, i, 0);
                        if (err)
                                printk(KERN_WARNING PFX "%s: Error %d "