aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/dsa
diff options
context:
space:
mode:
authorFlorian Fainelli <f.fainelli@gmail.com>2016-08-26 15:18:31 -0400
committerDavid S. Miller <davem@davemloft.net>2016-08-26 16:15:48 -0400
commitbde5d132c3fc50515e59119794945b0bda5a32bd (patch)
treec8740c8fe098b5b8c23167ce7c84be157911ae54 /drivers/net/dsa
parent130401d998a49da96d5ffc45a4f82a68426e588b (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.c63
-rw-r--r--drivers/net/dsa/b53/b53_priv.h6
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
170static 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
170static int b53_do_vlan_op(struct b53_device *dev, u8 op) 229static 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
178static 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