From fac06107246daffdcfe68c32bfc9bb7678415ac8 Mon Sep 17 00:00:00 2001 From: Igor Pecovnik Date: Sat, 14 Sep 2024 19:23:47 +0200 Subject: [PATCH] Odroid M1: resolve low network speed --- ...:_dwmac4:_fix_PCS_duplex_mode_decode.patch | 52 +++++++++++++++++++ ...:_dwmac4:_fix_PCS_duplex_mode_decode.patch | 52 +++++++++++++++++++ 2 files changed, 104 insertions(+) create mode 100644 patch/kernel/archive/rockchip64-6.10/net:_stmmac:_dwmac4:_fix_PCS_duplex_mode_decode.patch create mode 100644 patch/kernel/archive/rockchip64-6.6/net:_stmmac:_dwmac4:_fix_PCS_duplex_mode_decode.patch diff --git a/patch/kernel/archive/rockchip64-6.10/net:_stmmac:_dwmac4:_fix_PCS_duplex_mode_decode.patch b/patch/kernel/archive/rockchip64-6.10/net:_stmmac:_dwmac4:_fix_PCS_duplex_mode_decode.patch new file mode 100644 index 000000000000..251ac3836fb2 --- /dev/null +++ b/patch/kernel/archive/rockchip64-6.10/net:_stmmac:_dwmac4:_fix_PCS_duplex_mode_decode.patch @@ -0,0 +1,52 @@ +From 85ba108a529d99c82e814eaf782a9443acf5eaed Mon Sep 17 00:00:00 2001 +From: "Russell King (Oracle)" +Date: Tue, 6 Aug 2024 14:08:41 +0100 +Subject: net: stmmac: dwmac4: fix PCS duplex mode decode + +dwmac4 was decoding the duplex mode from the GMAC_PHYIF_CONTROL_STATUS +register incorrectly, using GMAC_PHYIF_CTRLSTATUS_LNKMOD_MASK (value 1) +rather than GMAC_PHYIF_CTRLSTATUS_LNKMOD (bit 16). Fix this. + +Fixes: 70523e639bf8c ("drivers: net: stmmac: reworking the PCS code.") +Reviewed-by: Andrew Halaney +Reviewed-by: Andrew Lunn +Reviewed-by: Serge Semin +Signed-off-by: Russell King (Oracle) +Link: https://patch.msgid.link/E1sbJvd-001rGD-E3@rmk-PC.armlinux.org.uk +Signed-off-by: Jakub Kicinski +--- + drivers/net/ethernet/stmicro/stmmac/dwmac4.h | 2 -- + drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c | 2 +- + 2 files changed, 1 insertion(+), 3 deletions(-) + +(limited to 'drivers/net/ethernet/stmicro/stmmac') + +diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac4.h b/drivers/net/ethernet/stmicro/stmmac/dwmac4.h +index d3c5306f1c41f7..93a78fd0737b6c 100644 +--- a/drivers/net/ethernet/stmicro/stmmac/dwmac4.h ++++ b/drivers/net/ethernet/stmicro/stmmac/dwmac4.h +@@ -573,8 +573,6 @@ static inline u32 mtl_low_credx_base_addr(const struct dwmac4_addrs *addrs, + #define GMAC_PHYIF_CTRLSTATUS_LNKSTS BIT(19) + #define GMAC_PHYIF_CTRLSTATUS_JABTO BIT(20) + #define GMAC_PHYIF_CTRLSTATUS_FALSECARDET BIT(21) +-/* LNKMOD */ +-#define GMAC_PHYIF_CTRLSTATUS_LNKMOD_MASK 0x1 + /* LNKSPEED */ + #define GMAC_PHYIF_CTRLSTATUS_SPEED_125 0x2 + #define GMAC_PHYIF_CTRLSTATUS_SPEED_25 0x1 +diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c b/drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c +index f98741d2607ec4..31c387cc5f269d 100644 +--- a/drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c ++++ b/drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c +@@ -786,7 +786,7 @@ static void dwmac4_phystatus(void __iomem *ioaddr, struct stmmac_extra_stats *x) + else + x->pcs_speed = SPEED_10; + +- x->pcs_duplex = (status & GMAC_PHYIF_CTRLSTATUS_LNKMOD_MASK); ++ x->pcs_duplex = (status & GMAC_PHYIF_CTRLSTATUS_LNKMOD); + + pr_info("Link is Up - %d/%s\n", (int)x->pcs_speed, + x->pcs_duplex ? "Full" : "Half"); +-- +cgit 1.2.3-korg + diff --git a/patch/kernel/archive/rockchip64-6.6/net:_stmmac:_dwmac4:_fix_PCS_duplex_mode_decode.patch b/patch/kernel/archive/rockchip64-6.6/net:_stmmac:_dwmac4:_fix_PCS_duplex_mode_decode.patch new file mode 100644 index 000000000000..251ac3836fb2 --- /dev/null +++ b/patch/kernel/archive/rockchip64-6.6/net:_stmmac:_dwmac4:_fix_PCS_duplex_mode_decode.patch @@ -0,0 +1,52 @@ +From 85ba108a529d99c82e814eaf782a9443acf5eaed Mon Sep 17 00:00:00 2001 +From: "Russell King (Oracle)" +Date: Tue, 6 Aug 2024 14:08:41 +0100 +Subject: net: stmmac: dwmac4: fix PCS duplex mode decode + +dwmac4 was decoding the duplex mode from the GMAC_PHYIF_CONTROL_STATUS +register incorrectly, using GMAC_PHYIF_CTRLSTATUS_LNKMOD_MASK (value 1) +rather than GMAC_PHYIF_CTRLSTATUS_LNKMOD (bit 16). Fix this. + +Fixes: 70523e639bf8c ("drivers: net: stmmac: reworking the PCS code.") +Reviewed-by: Andrew Halaney +Reviewed-by: Andrew Lunn +Reviewed-by: Serge Semin +Signed-off-by: Russell King (Oracle) +Link: https://patch.msgid.link/E1sbJvd-001rGD-E3@rmk-PC.armlinux.org.uk +Signed-off-by: Jakub Kicinski +--- + drivers/net/ethernet/stmicro/stmmac/dwmac4.h | 2 -- + drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c | 2 +- + 2 files changed, 1 insertion(+), 3 deletions(-) + +(limited to 'drivers/net/ethernet/stmicro/stmmac') + +diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac4.h b/drivers/net/ethernet/stmicro/stmmac/dwmac4.h +index d3c5306f1c41f7..93a78fd0737b6c 100644 +--- a/drivers/net/ethernet/stmicro/stmmac/dwmac4.h ++++ b/drivers/net/ethernet/stmicro/stmmac/dwmac4.h +@@ -573,8 +573,6 @@ static inline u32 mtl_low_credx_base_addr(const struct dwmac4_addrs *addrs, + #define GMAC_PHYIF_CTRLSTATUS_LNKSTS BIT(19) + #define GMAC_PHYIF_CTRLSTATUS_JABTO BIT(20) + #define GMAC_PHYIF_CTRLSTATUS_FALSECARDET BIT(21) +-/* LNKMOD */ +-#define GMAC_PHYIF_CTRLSTATUS_LNKMOD_MASK 0x1 + /* LNKSPEED */ + #define GMAC_PHYIF_CTRLSTATUS_SPEED_125 0x2 + #define GMAC_PHYIF_CTRLSTATUS_SPEED_25 0x1 +diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c b/drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c +index f98741d2607ec4..31c387cc5f269d 100644 +--- a/drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c ++++ b/drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c +@@ -786,7 +786,7 @@ static void dwmac4_phystatus(void __iomem *ioaddr, struct stmmac_extra_stats *x) + else + x->pcs_speed = SPEED_10; + +- x->pcs_duplex = (status & GMAC_PHYIF_CTRLSTATUS_LNKMOD_MASK); ++ x->pcs_duplex = (status & GMAC_PHYIF_CTRLSTATUS_LNKMOD); + + pr_info("Link is Up - %d/%s\n", (int)x->pcs_speed, + x->pcs_duplex ? "Full" : "Half"); +-- +cgit 1.2.3-korg +