Commit fa907895 authored by Matheos Worku's avatar Matheos Worku Committed by David S. Miller

[NIU]: More BMAC alt MAC address fixes.

From: Matheos Worku <Matheos.Worku@Sun.COM>

1) niu_enable_alt_mac() needs to be adjusted so that the mask
   is computed properly for the BMAC case.

2) BMAC has 6 alt MAC addresses available, not 7.
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 7b33ed22
...@@ -1616,12 +1616,13 @@ static int niu_enable_alt_mac(struct niu *np, int index, int on) ...@@ -1616,12 +1616,13 @@ static int niu_enable_alt_mac(struct niu *np, int index, int on)
if (index >= niu_num_alt_addr(np)) if (index >= niu_num_alt_addr(np))
return -EINVAL; return -EINVAL;
if (np->flags & NIU_FLAGS_XMAC) if (np->flags & NIU_FLAGS_XMAC) {
reg = XMAC_ADDR_CMPEN; reg = XMAC_ADDR_CMPEN;
else mask = 1 << index;
} else {
reg = BMAC_ADDR_CMPEN; reg = BMAC_ADDR_CMPEN;
mask = 1 << (index + 1);
mask = 1 << index; }
val = nr64_mac(reg); val = nr64_mac(reg);
if (on) if (on)
......
...@@ -499,7 +499,7 @@ ...@@ -499,7 +499,7 @@
#define BMAC_ADDR2 0x00110UL #define BMAC_ADDR2 0x00110UL
#define BMAC_ADDR2_ADDR2 0x000000000000ffffULL #define BMAC_ADDR2_ADDR2 0x000000000000ffffULL
#define BMAC_NUM_ALT_ADDR 7 #define BMAC_NUM_ALT_ADDR 6
#define BMAC_ALT_ADDR0(NUM) (0x00118UL + (NUM)*0x18UL) #define BMAC_ALT_ADDR0(NUM) (0x00118UL + (NUM)*0x18UL)
#define BMAC_ALT_ADDR0_ADDR0 0x000000000000ffffULL #define BMAC_ALT_ADDR0_ADDR0 0x000000000000ffffULL
......
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