From: P.Wassi <p.wa...@gmx.at>

Add get_port_stats function to mt7530 swconfig driver.
Signed-off-by: P.Wassi <p.wa...@gmx.at>
---
If one uses "switch" as a trigger for the LEDs, in order to have
the LEDs blinking when there's traffic, swconfig_leds.c needs to
have a get_port_stats function from the swconfig driver.
The function added here is tested on MT7620A, implemented (register
offsets) according to "MT7620 Programming Guide", page 334, 335.

linux/ramips/patches-4.4/0513-net-mediatek-add-swconfig-driver-for-gsw_mt762x.patch
 |   21 +++++++++-
1 file changed, 19 insertions(+), 2 deletions(-)

diff -rupN 
a/target/linux/ramips/patches-4.4/0513-net-mediatek-add-swconfig-driver-for-gsw_mt762x.patch
 
b/target/linux/ramips/patches-4.4/0513-net-mediatek-add-swconfig-driver-for-gsw_mt762x.patch
--- 
a/target/linux/ramips/patches-4.4/0513-net-mediatek-add-swconfig-driver-for-gsw_mt762x.patch
+++ 
b/target/linux/ramips/patches-4.4/0513-net-mediatek-add-swconfig-driver-for-gsw_mt762x.patch
@@ -6,7 +6,7 @@ Subject: [PATCH 513/513] net: mediatek:
 Signed-off-by: John Crispin <blo...@openwrt.org>
 ---
  drivers/net/ethernet/mediatek/Makefile      |    4 +-
- drivers/net/ethernet/mediatek/mt7530.c      |  804 +++++++++++++++++++++++++++
+ drivers/net/ethernet/mediatek/mt7530.c      |  821 +++++++++++++++++++++++++++
  drivers/net/ethernet/mediatek/mt7530.h      |   20 +
  drivers/net/ethernet/mediatek/mtk_eth_soc.c |    9 +-
  drivers/net/ethernet/mediatek/mtk_eth_soc.h |    1 +
@@ -28,7 +28,7 @@ Signed-off-by: John Crispin <blogic@open
  obj-$(CONFIG_NET_MEDIATEK_SOC)                        += mtk-eth-soc.o
 --- /dev/null
 +++ b/drivers/net/ethernet/mediatek/mt7530.c
-@@ -0,0 +1,804 @@
+@@ -0,0 +1,821 @@
 +/*
 + * This program is free software; you can redistribute it and/or
 + * modify it under the terms of the GNU General Public License
@@ -650,6 +650,21 @@ Signed-off-by: John Crispin <blogic@open
 +      return 0;
 +}
 +
++static int
++mt7530_get_port_stats(struct switch_dev *dev,  int port,
++                      struct switch_port_stats *stats)
++{
++struct mt7530_priv *priv = container_of(dev, struct mt7530_priv, swdev);
++
++      if (port < 0 || port >= MT7530_NUM_PORTS)
++              return -EINVAL;
++
++      stats->rx_bytes = mt7530_r32(priv, 0x4028 + (0x100 * port));
++      stats->tx_bytes = mt7530_r32(priv, 0x4018 + (0x100 * port));
++
++      return 0;
++}
++
 +static const struct switch_attr mt7530_global[] = {
 +      {
 +              .type = SWITCH_TYPE_INT,
@@ -751,6 +766,7 @@ Signed-off-by: John Crispin <blogic@open
 +      .get_port_pvid = mt7530_get_port_pvid,
 +      .set_port_pvid = mt7530_set_port_pvid,
 +      .get_port_link = mt7530_get_port_link,
++      .get_port_stats = mt7530_get_port_stats,
 +      .apply_config = mt7530_apply_config,
 +      .reset_switch = mt7530_reset_switch,
 +};
@@ -773,6 +789,7 @@ Signed-off-by: John Crispin <blogic@open
 +      .get_port_pvid = mt7530_get_port_pvid,
 +      .set_port_pvid = mt7530_set_port_pvid,
 +      .get_port_link = mt7530_get_port_link,
++      .get_port_stats = mt7530_get_port_stats,
 +      .apply_config = mt7530_apply_config,
 +      .reset_switch = mt7530_reset_switch,
 +};

_______________________________________________
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev

Reply via email to