Message ID | 20231012064626.977466-1-danishanwar@ti.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 2c0d808f36cc6e0617f9dda055a6651c777a9d64 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [v2] net: ti: icssg-prueth: Fix tx_total_bytes count | expand |
Hello: This patch was applied to netdev/net.git (main) by Jakub Kicinski <kuba@kernel.org>: On Thu, 12 Oct 2023 12:16:26 +0530 you wrote: > ICSSG HW stats on TX side considers 8 preamble bytes as data bytes. Due > to this the tx_bytes of ICSSG interface doesn't match the rx_bytes of the > link partner. There is no public errata available yet. > > As a workaround to fix this, decrease tx_bytes by 8 bytes for every tx > frame. > > [...] Here is the summary with links: - [v2] net: ti: icssg-prueth: Fix tx_total_bytes count https://git.kernel.org/netdev/net/c/2c0d808f36cc You are awesome, thank you!
diff --git a/drivers/net/ethernet/ti/icssg/icssg_stats.c b/drivers/net/ethernet/ti/icssg/icssg_stats.c index bb0b33927e3b..3dbadddd7e35 100644 --- a/drivers/net/ethernet/ti/icssg/icssg_stats.c +++ b/drivers/net/ethernet/ti/icssg/icssg_stats.c @@ -9,6 +9,9 @@ #include "icssg_stats.h" #include <linux/regmap.h> +#define ICSSG_TX_PACKET_OFFSET 0xA0 +#define ICSSG_TX_BYTE_OFFSET 0xEC + static u32 stats_base[] = { 0x54c, /* Slice 0 stats start */ 0xb18, /* Slice 1 stats start */ }; @@ -18,6 +21,7 @@ void emac_update_hardware_stats(struct prueth_emac *emac) struct prueth *prueth = emac->prueth; int slice = prueth_emac_slice(emac); u32 base = stats_base[slice]; + u32 tx_pkt_cnt = 0; u32 val; int i; @@ -29,7 +33,12 @@ void emac_update_hardware_stats(struct prueth_emac *emac) base + icssg_all_stats[i].offset, val); + if (icssg_all_stats[i].offset == ICSSG_TX_PACKET_OFFSET) + tx_pkt_cnt = val; + emac->stats[i] += val; + if (icssg_all_stats[i].offset == ICSSG_TX_BYTE_OFFSET) + emac->stats[i] -= tx_pkt_cnt * 8; } }
ICSSG HW stats on TX side considers 8 preamble bytes as data bytes. Due to this the tx_bytes of ICSSG interface doesn't match the rx_bytes of the link partner. There is no public errata available yet. As a workaround to fix this, decrease tx_bytes by 8 bytes for every tx frame. Fixes: c1e10d5dc7a1 ("net: ti: icssg-prueth: Add ICSSG Stats") Signed-off-by: MD Danish Anwar <danishanwar@ti.com> --- Cc: Andrew Lunn <andrew@lunn.ch> Cc: Ravi Gunasekaran <r-gunasekaran@ti.com> Changes from v1 to v2: *) Rebased on the latest net/main. *) Changed stats name comparison to stats offset comparison as asked by Andrew. *) Modified commit message as asked by Ravi. v1: https://lore.kernel.org/all/20231011063700.1824093-1-danishanwar@ti.com/ drivers/net/ethernet/ti/icssg/icssg_stats.c | 9 +++++++++ 1 file changed, 9 insertions(+) base-commit: 71c299c711d1f44f0bf04f1fea66baad565240f1