diff options
| author | Florian Fainelli <f.fainelli@gmail.com> | 2016-08-26 15:18:31 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2016-08-26 16:15:48 -0400 |
| commit | bde5d132c3fc50515e59119794945b0bda5a32bd (patch) | |
| tree | c8740c8fe098b5b8c23167ce7c84be157911ae54 /drivers/net/dsa | |
| parent | 130401d998a49da96d5ffc45a4f82a68426e588b (diff) | |
net: dsa: b53: Define SF2 MIB layout
The 58xx and 7445 chips use the Starfighter2 code, define its MIB layout
and introduce a helper function: is58xx() which checks for both of these
IDs for now.
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/dsa')
| -rw-r--r-- | drivers/net/dsa/b53/b53_common.c | 63 | ||||
| -rw-r--r-- | drivers/net/dsa/b53/b53_priv.h | 6 |
2 files changed, 69 insertions, 0 deletions
diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_common.c index d014c918ebfd..ca13ee134562 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c | |||
| @@ -167,6 +167,65 @@ static const struct b53_mib_desc b53_mibs[] = { | |||
| 167 | 167 | ||
| 168 | #define B53_MIBS_SIZE ARRAY_SIZE(b53_mibs) | 168 | #define B53_MIBS_SIZE ARRAY_SIZE(b53_mibs) |
| 169 | 169 | ||
| 170 | static const struct b53_mib_desc b53_mibs_58xx[] = { | ||
| 171 | { 8, 0x00, "TxOctets" }, | ||
| 172 | { 4, 0x08, "TxDropPkts" }, | ||
| 173 | { 4, 0x0c, "TxQPKTQ0" }, | ||
| 174 | { 4, 0x10, "TxBroadcastPkts" }, | ||
| 175 | { 4, 0x14, "TxMulticastPkts" }, | ||
| 176 | { 4, 0x18, "TxUnicastPKts" }, | ||
| 177 | { 4, 0x1c, "TxCollisions" }, | ||
| 178 | { 4, 0x20, "TxSingleCollision" }, | ||
| 179 | { 4, 0x24, "TxMultipleCollision" }, | ||
| 180 | { 4, 0x28, "TxDeferredCollision" }, | ||
| 181 | { 4, 0x2c, "TxLateCollision" }, | ||
| 182 | { 4, 0x30, "TxExcessiveCollision" }, | ||
| 183 | { 4, 0x34, "TxFrameInDisc" }, | ||
| 184 | { 4, 0x38, "TxPausePkts" }, | ||
| 185 | { 4, 0x3c, "TxQPKTQ1" }, | ||
| 186 | { 4, 0x40, "TxQPKTQ2" }, | ||
| 187 | { 4, 0x44, "TxQPKTQ3" }, | ||
| 188 | { 4, 0x48, "TxQPKTQ4" }, | ||
| 189 | { 4, 0x4c, "TxQPKTQ5" }, | ||
| 190 | { 8, 0x50, "RxOctets" }, | ||
| 191 | { 4, 0x58, "RxUndersizePkts" }, | ||
| 192 | { 4, 0x5c, "RxPausePkts" }, | ||
| 193 | { 4, 0x60, "RxPkts64Octets" }, | ||
| 194 | { 4, 0x64, "RxPkts65to127Octets" }, | ||
| 195 | { 4, 0x68, "RxPkts128to255Octets" }, | ||
| 196 | { 4, 0x6c, "RxPkts256to511Octets" }, | ||
| 197 | { 4, 0x70, "RxPkts512to1023Octets" }, | ||
| 198 | { 4, 0x74, "RxPkts1024toMaxPktsOctets" }, | ||
| 199 | { 4, 0x78, "RxOversizePkts" }, | ||
| 200 | { 4, 0x7c, "RxJabbers" }, | ||
| 201 | { 4, 0x80, "RxAlignmentErrors" }, | ||
| 202 | { 4, 0x84, "RxFCSErrors" }, | ||
| 203 | { 8, 0x88, "RxGoodOctets" }, | ||
| 204 | { 4, 0x90, "RxDropPkts" }, | ||
| 205 | { 4, 0x94, "RxUnicastPkts" }, | ||
| 206 | { 4, 0x98, "RxMulticastPkts" }, | ||
| 207 | { 4, 0x9c, "RxBroadcastPkts" }, | ||
| 208 | { 4, 0xa0, "RxSAChanges" }, | ||
| 209 | { 4, 0xa4, "RxFragments" }, | ||
| 210 | { 4, 0xa8, "RxJumboPkt" }, | ||
| 211 | { 4, 0xac, "RxSymblErr" }, | ||
| 212 | { 4, 0xb0, "InRangeErrCount" }, | ||
| 213 | { 4, 0xb4, "OutRangeErrCount" }, | ||
| 214 | { 4, 0xb8, "EEELpiEvent" }, | ||
| 215 | { 4, 0xbc, "EEELpiDuration" }, | ||
| 216 | { 4, 0xc0, "RxDiscard" }, | ||
| 217 | { 4, 0xc8, "TxQPKTQ6" }, | ||
| 218 | { 4, 0xcc, "TxQPKTQ7" }, | ||
| 219 | { 4, 0xd0, "TxPkts64Octets" }, | ||
| 220 | { 4, 0xd4, "TxPkts65to127Octets" }, | ||
| 221 | { 4, 0xd8, "TxPkts128to255Octets" }, | ||
| 222 | { 4, 0xdc, "TxPkts256to511Ocets" }, | ||
| 223 | { 4, 0xe0, "TxPkts512to1023Ocets" }, | ||
| 224 | { 4, 0xe4, "TxPkts1024toMaxPktOcets" }, | ||
| 225 | }; | ||
| 226 | |||
| 227 | #define B53_MIBS_58XX_SIZE ARRAY_SIZE(b53_mibs_58xx) | ||
| 228 | |||
| 170 | static int b53_do_vlan_op(struct b53_device *dev, u8 op) | 229 | static int b53_do_vlan_op(struct b53_device *dev, u8 op) |
| 171 | { | 230 | { |
| 172 | unsigned int i; | 231 | unsigned int i; |
| @@ -635,6 +694,8 @@ static const struct b53_mib_desc *b53_get_mib(struct b53_device *dev) | |||
| 635 | return b53_mibs_65; | 694 | return b53_mibs_65; |
| 636 | else if (is63xx(dev)) | 695 | else if (is63xx(dev)) |
| 637 | return b53_mibs_63xx; | 696 | return b53_mibs_63xx; |
| 697 | else if (is58xx(dev)) | ||
| 698 | return b53_mibs_58xx; | ||
| 638 | else | 699 | else |
| 639 | return b53_mibs; | 700 | return b53_mibs; |
| 640 | } | 701 | } |
| @@ -645,6 +706,8 @@ static unsigned int b53_get_mib_size(struct b53_device *dev) | |||
| 645 | return B53_MIBS_65_SIZE; | 706 | return B53_MIBS_65_SIZE; |
| 646 | else if (is63xx(dev)) | 707 | else if (is63xx(dev)) |
| 647 | return B53_MIBS_63XX_SIZE; | 708 | return B53_MIBS_63XX_SIZE; |
| 709 | else if (is58xx(dev)) | ||
| 710 | return B53_MIBS_58XX_SIZE; | ||
| 648 | else | 711 | else |
| 649 | return B53_MIBS_SIZE; | 712 | return B53_MIBS_SIZE; |
| 650 | } | 713 | } |
diff --git a/drivers/net/dsa/b53/b53_priv.h b/drivers/net/dsa/b53/b53_priv.h index cf2ff2cbc8ab..76672dae412d 100644 --- a/drivers/net/dsa/b53/b53_priv.h +++ b/drivers/net/dsa/b53/b53_priv.h | |||
| @@ -175,6 +175,12 @@ static inline int is5301x(struct b53_device *dev) | |||
| 175 | dev->chip_id == BCM53019_DEVICE_ID; | 175 | dev->chip_id == BCM53019_DEVICE_ID; |
| 176 | } | 176 | } |
| 177 | 177 | ||
| 178 | static inline int is58xx(struct b53_device *dev) | ||
| 179 | { | ||
| 180 | return dev->chip_id == BCM58XX_DEVICE_ID || | ||
| 181 | dev->chip_id == BCM7445_DEVICE_ID; | ||
| 182 | } | ||
| 183 | |||
| 178 | #define B53_CPU_PORT_25 5 | 184 | #define B53_CPU_PORT_25 5 |
| 179 | #define B53_CPU_PORT 8 | 185 | #define B53_CPU_PORT 8 |
| 180 | 186 | ||
