12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- From 88a0fd5927b7c2c7aecd6dc747d898eb38043d2b Mon Sep 17 00:00:00 2001
- From: Felix Fietkau <[email protected]>
- Date: Thu, 20 Apr 2023 22:06:42 +0100
- Subject: [PATCH 093/250] net: mtk_eth_soc: mediatek: fix ppe flow accounting
- for v1 hardware
- Older chips (like MT7622) use a different bit in ib2 to enable hardware
- counter support. Add macros for both and select the appropriate bit.
- Fixes: 3fbe4d8c0e53 ("net: ethernet: mtk_eth_soc: ppe: add support for flow accounting")
- Signed-off-by: Felix Fietkau <[email protected]>
- Signed-off-by: Daniel Golle <[email protected]>
- Signed-off-by: David S. Miller <[email protected]>
- ---
- drivers/net/ethernet/mediatek/mtk_ppe.c | 10 ++++++++--
- drivers/net/ethernet/mediatek/mtk_ppe.h | 3 ++-
- 2 files changed, 10 insertions(+), 3 deletions(-)
- --- a/drivers/net/ethernet/mediatek/mtk_ppe.c
- +++ b/drivers/net/ethernet/mediatek/mtk_ppe.c
- @@ -599,6 +599,7 @@ __mtk_foe_entry_commit(struct mtk_ppe *p
- struct mtk_eth *eth = ppe->eth;
- u16 timestamp = mtk_eth_timestamp(eth);
- struct mtk_foe_entry *hwe;
- + u32 val;
-
- if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) {
- entry->ib1 &= ~MTK_FOE_IB1_BIND_TIMESTAMP_V2;
- @@ -615,8 +616,13 @@ __mtk_foe_entry_commit(struct mtk_ppe *p
- wmb();
- hwe->ib1 = entry->ib1;
-
- - if (ppe->accounting)
- - *mtk_foe_entry_ib2(eth, hwe) |= MTK_FOE_IB2_MIB_CNT;
- + if (ppe->accounting) {
- + if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2))
- + val = MTK_FOE_IB2_MIB_CNT_V2;
- + else
- + val = MTK_FOE_IB2_MIB_CNT;
- + *mtk_foe_entry_ib2(eth, hwe) |= val;
- + }
-
- dma_wmb();
-
- --- a/drivers/net/ethernet/mediatek/mtk_ppe.h
- +++ b/drivers/net/ethernet/mediatek/mtk_ppe.h
- @@ -55,9 +55,10 @@ enum {
- #define MTK_FOE_IB2_PSE_QOS BIT(4)
- #define MTK_FOE_IB2_DEST_PORT GENMASK(7, 5)
- #define MTK_FOE_IB2_MULTICAST BIT(8)
- +#define MTK_FOE_IB2_MIB_CNT BIT(10)
-
- #define MTK_FOE_IB2_WDMA_QID2 GENMASK(13, 12)
- -#define MTK_FOE_IB2_MIB_CNT BIT(15)
- +#define MTK_FOE_IB2_MIB_CNT_V2 BIT(15)
- #define MTK_FOE_IB2_WDMA_DEVIDX BIT(16)
- #define MTK_FOE_IB2_WDMA_WINFO BIT(17)
-
|