]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net: stmmac: qcom-ethqos: move two more RGMII_IO_MACRO_CONFIG2 out
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Fri, 27 Mar 2026 08:43:58 +0000 (08:43 +0000)
committerJakub Kicinski <kuba@kernel.org>
Tue, 31 Mar 2026 00:36:45 +0000 (17:36 -0700)
RGMII_CONFIG2_DATA_DIVIDE_CLK_SEL is always cleared, and
RGMII_CONFIG2_TX_CLK_PHASE_SHIFT_EN is always updated with the phase
shift in each path through the switch, so these are independent of
the speed. Move them out.

Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Tested-by: Mohd Ayaan Anwar <mohd.anwar@oss.qualcomm.com>
Link: https://patch.msgid.link/E1w62nO-0000000E3CR-445p@rmk-PC.armlinux.org.uk
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c

index e9d8c8a7146a81f8e7df2f6f3fe20d30525ed43c..ab6554f5821488658799ff06efca7ab41810098b 100644 (file)
@@ -420,13 +420,13 @@ static int ethqos_rgmii_macro_init(struct qcom_ethqos *ethqos, int speed)
                              RGMII_IO_MACRO_CONFIG);
        }
 
+       rgmii_clrmask(ethqos, RGMII_CONFIG2_DATA_DIVIDE_CLK_SEL,
+                     RGMII_IO_MACRO_CONFIG2);
+       rgmii_updatel(ethqos, RGMII_CONFIG2_TX_CLK_PHASE_SHIFT_EN, phase_shift,
+                     RGMII_IO_MACRO_CONFIG2);
+
        switch (speed) {
        case SPEED_1000:
-               rgmii_clrmask(ethqos, RGMII_CONFIG2_DATA_DIVIDE_CLK_SEL,
-                             RGMII_IO_MACRO_CONFIG2);
-
-               rgmii_updatel(ethqos, RGMII_CONFIG2_TX_CLK_PHASE_SHIFT_EN,
-                             phase_shift, RGMII_IO_MACRO_CONFIG2);
                rgmii_clrmask(ethqos, RGMII_CONFIG2_RSVD_CONFIG15,
                              RGMII_IO_MACRO_CONFIG2);
                rgmii_setmask(ethqos, RGMII_CONFIG2_RX_PROG_SWAP,
@@ -453,10 +453,6 @@ static int ethqos_rgmii_macro_init(struct qcom_ethqos *ethqos, int speed)
                break;
 
        case SPEED_100:
-               rgmii_clrmask(ethqos, RGMII_CONFIG2_DATA_DIVIDE_CLK_SEL,
-                             RGMII_IO_MACRO_CONFIG2);
-               rgmii_updatel(ethqos, RGMII_CONFIG2_TX_CLK_PHASE_SHIFT_EN,
-                             phase_shift, RGMII_IO_MACRO_CONFIG2);
                rgmii_updatel(ethqos, RGMII_CONFIG_MAX_SPD_PRG_2,
                              FIELD_PREP(RGMII_CONFIG_MAX_SPD_PRG_2, 1),
                              RGMII_IO_MACRO_CONFIG);
@@ -483,10 +479,6 @@ static int ethqos_rgmii_macro_init(struct qcom_ethqos *ethqos, int speed)
                break;
 
        case SPEED_10:
-               rgmii_clrmask(ethqos, RGMII_CONFIG2_DATA_DIVIDE_CLK_SEL,
-                             RGMII_IO_MACRO_CONFIG2);
-               rgmii_updatel(ethqos, RGMII_CONFIG2_TX_CLK_PHASE_SHIFT_EN,
-                             phase_shift, RGMII_IO_MACRO_CONFIG2);
                rgmii_updatel(ethqos, RGMII_CONFIG_MAX_SPD_PRG_9,
                              FIELD_PREP(RGMII_CONFIG_MAX_SPD_PRG_9, 19),
                              RGMII_IO_MACRO_CONFIG);