generic: backport some phylink helper functions
[openwrt/staging/dedeckeh.git] / target / linux / generic / pending-5.15 / 727-net-mtk_sgmii-mtk_pcs_setup_mode_an-don-t-rely-on-re.patch
1 From e4dca7affb8c03438b63bdb5fddefd6ad2431cfd Mon Sep 17 00:00:00 2001
2 From: Alexander Couzens <lynxis@fe80.eu>
3 Date: Mon, 15 Aug 2022 14:59:29 +0200
4 Subject: [PATCH 07/10] net: mtk_sgmii: mtk_pcs_setup_mode_an: don't rely on
5 register defaults
6
7 Ensure autonegotiation is enabled.
8
9 Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
10 ---
11 drivers/net/ethernet/mediatek/mtk_sgmii.c | 5 +++--
12 1 file changed, 3 insertions(+), 2 deletions(-)
13
14 --- a/drivers/net/ethernet/mediatek/mtk_sgmii.c
15 +++ b/drivers/net/ethernet/mediatek/mtk_sgmii.c
16 @@ -32,12 +32,13 @@ static int mtk_pcs_setup_mode_an(struct
17 regmap_write(mpcs->regmap, SGMSYS_PCS_LINK_TIMER,
18 SGMII_LINK_TIMER_DEFAULT);
19
20 + /* disable remote fault & enable auto neg */
21 regmap_read(mpcs->regmap, SGMSYS_SGMII_MODE, &val);
22 - val |= SGMII_REMOTE_FAULT_DIS;
23 + val |= SGMII_REMOTE_FAULT_DIS | SGMII_SPEED_DUPLEX_AN;
24 regmap_write(mpcs->regmap, SGMSYS_SGMII_MODE, val);
25
26 regmap_read(mpcs->regmap, SGMSYS_PCS_CONTROL_1, &val);
27 - val |= SGMII_AN_RESTART;
28 + val |= SGMII_AN_RESTART | SGMII_AN_ENABLE;
29 regmap_write(mpcs->regmap, SGMSYS_PCS_CONTROL_1, val);
30
31