Refreshed automatically with `make target/linux/refresh V=s`. Signed-off-by: Kenneth Kasilag <kenneth@kasilag.me> Link: https://github.com/openwrt/openwrt/pull/21019 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
53 lines
2.1 KiB
Diff
53 lines
2.1 KiB
Diff
From bf3471e6e6c02137dc0d26caa783ac1849f9aab8 Mon Sep 17 00:00:00 2001
|
|
From: Lorenzo Bianconi <lorenzo@kernel.org>
|
|
Date: Fri, 6 Mar 2026 09:07:27 +0100
|
|
Subject: [PATCH] net: airoha: Make flow control source port mapping dependent
|
|
on nbq parameter
|
|
|
|
Flow control source port mapping for USB serdes needs to be configured
|
|
according to the GDM port nbq parameter. This is a preliminary patch
|
|
since nbq parameter is specific for the given port serdes and needs to
|
|
be read from the DTS (in the current codebase is assigned statically).
|
|
|
|
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
|
|
Link: https://patch.msgid.link/20260306-airoha-fix-loopback-for-usb-serdes-v2-1-319de9c96826@kernel.org
|
|
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
|
---
|
|
drivers/net/ethernet/airoha/airoha_eth.c | 10 ++++++----
|
|
drivers/net/ethernet/airoha/airoha_regs.h | 5 +----
|
|
2 files changed, 7 insertions(+), 8 deletions(-)
|
|
|
|
--- a/drivers/net/ethernet/airoha/airoha_eth.c
|
|
+++ b/drivers/net/ethernet/airoha/airoha_eth.c
|
|
@@ -1823,10 +1823,12 @@ static int airhoha_set_gdm2_loopback(str
|
|
SP_CPORT_MASK(val),
|
|
__field_prep(SP_CPORT_MASK(val), FE_PSE_PORT_CDM2));
|
|
|
|
- if (port->id != AIROHA_GDM3_IDX && airoha_is_7581(eth))
|
|
- airoha_fe_rmw(eth, REG_SRC_PORT_FC_MAP6,
|
|
- FC_ID_OF_SRC_PORT24_MASK,
|
|
- FIELD_PREP(FC_ID_OF_SRC_PORT24_MASK, 2));
|
|
+ if (port->id == AIROHA_GDM4_IDX && airoha_is_7581(eth)) {
|
|
+ u32 mask = FC_ID_OF_SRC_PORT_MASK(nbq);
|
|
+
|
|
+ airoha_fe_rmw(eth, REG_SRC_PORT_FC_MAP6, mask,
|
|
+ __field_prep(mask, AIROHA_GDM2_IDX));
|
|
+ }
|
|
|
|
return 0;
|
|
}
|
|
--- a/drivers/net/ethernet/airoha/airoha_regs.h
|
|
+++ b/drivers/net/ethernet/airoha/airoha_regs.h
|
|
@@ -376,10 +376,7 @@
|
|
#define SP_CPORT_MASK(_n) GENMASK(3 + ((_n) << 2), ((_n) << 2))
|
|
|
|
#define REG_SRC_PORT_FC_MAP6 0x2298
|
|
-#define FC_ID_OF_SRC_PORT27_MASK GENMASK(28, 24)
|
|
-#define FC_ID_OF_SRC_PORT26_MASK GENMASK(20, 16)
|
|
-#define FC_ID_OF_SRC_PORT25_MASK GENMASK(12, 8)
|
|
-#define FC_ID_OF_SRC_PORT24_MASK GENMASK(4, 0)
|
|
+#define FC_ID_OF_SRC_PORT_MASK(_n) GENMASK(4 + ((_n) << 3), ((_n) << 3))
|
|
|
|
#define REG_CDM5_RX_OQ1_DROP_CNT 0x29d4
|
|
|