generic: copy backport, hack, pending patch and config from 6.1 to 6.6
[openwrt/openwrt.git] / target / linux / generic / backport-6.6 / 733-v6.2-13-net-mediatek-sgmii-fix-duplex-configuration.patch
1 From 9d32637122de88f1ef614c29703f0e050cad342e Mon Sep 17 00:00:00 2001
2 From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= <bjorn@mork.no>
3 Date: Wed, 1 Feb 2023 19:23:30 +0100
4 Subject: [PATCH 12/13] net: mediatek: sgmii: fix duplex configuration
5 MIME-Version: 1.0
6 Content-Type: text/plain; charset=UTF-8
7 Content-Transfer-Encoding: 8bit
8
9 The logic of the duplex bit is inverted. Setting it means half
10 duplex, not full duplex.
11
12 Fix and rename macro to avoid confusion.
13
14 Fixes: 7e538372694b ("net: ethernet: mediatek: Re-add support SGMII")
15 Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
16 Signed-off-by: Bjørn Mork <bjorn@mork.no>
17 Acked-by: Daniel Golle <daniel@makrotopia.org>
18 Tested-by: Daniel Golle <daniel@makrotopia.org>
19 Signed-off-by: Jakub Kicinski <kuba@kernel.org>
20 ---
21 drivers/net/ethernet/mediatek/mtk_eth_soc.h | 2 +-
22 drivers/net/ethernet/mediatek/mtk_sgmii.c | 6 +++---
23 2 files changed, 4 insertions(+), 4 deletions(-)
24
25 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
26 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
27 @@ -534,7 +534,7 @@
28 #define SGMII_SPEED_10 FIELD_PREP(SGMII_SPEED_MASK, 0)
29 #define SGMII_SPEED_100 FIELD_PREP(SGMII_SPEED_MASK, 1)
30 #define SGMII_SPEED_1000 FIELD_PREP(SGMII_SPEED_MASK, 2)
31 -#define SGMII_DUPLEX_FULL BIT(4)
32 +#define SGMII_DUPLEX_HALF BIT(4)
33 #define SGMII_IF_MODE_BIT5 BIT(5)
34 #define SGMII_REMOTE_FAULT_DIS BIT(8)
35 #define SGMII_CODE_SYNC_SET_VAL BIT(9)
36 --- a/drivers/net/ethernet/mediatek/mtk_sgmii.c
37 +++ b/drivers/net/ethernet/mediatek/mtk_sgmii.c
38 @@ -154,11 +154,11 @@ static void mtk_pcs_link_up(struct phyli
39 else
40 sgm_mode = SGMII_SPEED_1000;
41
42 - if (duplex == DUPLEX_FULL)
43 - sgm_mode |= SGMII_DUPLEX_FULL;
44 + if (duplex != DUPLEX_FULL)
45 + sgm_mode |= SGMII_DUPLEX_HALF;
46
47 regmap_update_bits(mpcs->regmap, SGMSYS_SGMII_MODE,
48 - SGMII_DUPLEX_FULL | SGMII_SPEED_MASK,
49 + SGMII_DUPLEX_HALF | SGMII_SPEED_MASK,
50 sgm_mode);
51 }
52 }