diff options
| -rw-r--r-- | drivers/net/dsa/mv88e6xxx/global1_vtu.c | 7 | ||||
| -rw-r--r-- | drivers/net/dsa/mv88e6xxx/mv88e6xxx.h | 1 |
2 files changed, 8 insertions, 0 deletions
diff --git a/drivers/net/dsa/mv88e6xxx/global1_vtu.c b/drivers/net/dsa/mv88e6xxx/global1_vtu.c index 469056d0b421..8e77974fb2f8 100644 --- a/drivers/net/dsa/mv88e6xxx/global1_vtu.c +++ b/drivers/net/dsa/mv88e6xxx/global1_vtu.c | |||
| @@ -95,6 +95,10 @@ static int mv88e6xxx_g1_vtu_vid_read(struct mv88e6xxx_chip *chip, | |||
| 95 | return err; | 95 | return err; |
| 96 | 96 | ||
| 97 | entry->vid = val & 0xfff; | 97 | entry->vid = val & 0xfff; |
| 98 | |||
| 99 | if (val & GLOBAL_VTU_VID_PAGE) | ||
| 100 | entry->vid |= 0x1000; | ||
| 101 | |||
| 98 | entry->valid = !!(val & GLOBAL_VTU_VID_VALID); | 102 | entry->valid = !!(val & GLOBAL_VTU_VID_VALID); |
| 99 | 103 | ||
| 100 | return 0; | 104 | return 0; |
| @@ -105,6 +109,9 @@ static int mv88e6xxx_g1_vtu_vid_write(struct mv88e6xxx_chip *chip, | |||
| 105 | { | 109 | { |
| 106 | u16 val = entry->vid & 0xfff; | 110 | u16 val = entry->vid & 0xfff; |
| 107 | 111 | ||
| 112 | if (entry->vid & 0x1000) | ||
| 113 | val |= GLOBAL_VTU_VID_PAGE; | ||
| 114 | |||
| 108 | if (entry->valid) | 115 | if (entry->valid) |
| 109 | val |= GLOBAL_VTU_VID_VALID; | 116 | val |= GLOBAL_VTU_VID_VALID; |
| 110 | 117 | ||
diff --git a/drivers/net/dsa/mv88e6xxx/mv88e6xxx.h b/drivers/net/dsa/mv88e6xxx/mv88e6xxx.h index a0d57b10acfe..77236cd72df2 100644 --- a/drivers/net/dsa/mv88e6xxx/mv88e6xxx.h +++ b/drivers/net/dsa/mv88e6xxx/mv88e6xxx.h | |||
| @@ -249,6 +249,7 @@ | |||
| 249 | #define GLOBAL_VTU_OP_STU_GET_NEXT ((0x06 << 12) | GLOBAL_VTU_OP_BUSY) | 249 | #define GLOBAL_VTU_OP_STU_GET_NEXT ((0x06 << 12) | GLOBAL_VTU_OP_BUSY) |
| 250 | #define GLOBAL_VTU_VID 0x06 | 250 | #define GLOBAL_VTU_VID 0x06 |
| 251 | #define GLOBAL_VTU_VID_MASK 0xfff | 251 | #define GLOBAL_VTU_VID_MASK 0xfff |
| 252 | #define GLOBAL_VTU_VID_PAGE BIT(13) | ||
| 252 | #define GLOBAL_VTU_VID_VALID BIT(12) | 253 | #define GLOBAL_VTU_VID_VALID BIT(12) |
| 253 | #define GLOBAL_VTU_DATA_0_3 0x07 | 254 | #define GLOBAL_VTU_DATA_0_3 0x07 |
| 254 | #define GLOBAL_VTU_DATA_4_7 0x08 | 255 | #define GLOBAL_VTU_DATA_4_7 0x08 |
