]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
net: stmmac: qcom-ethqos: move 1G vs 100M/10M RGMII settings
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Fri, 27 Mar 2026 08:43:53 +0000 (08:43 +0000)
committerJakub Kicinski <kuba@kernel.org>
Tue, 31 Mar 2026 00:36:45 +0000 (17:36 -0700)
Move RGMII_CONFIG_BYPASS_TX_ID_EN, RGMII_CONFIG_POS_NEG_DATA_SEL and
RGMII_CONFIG_PROG_SWAP. There are two states for these: one group for
1G, and the logical inversion for 100M and 10M. Move this out of the
switch into an if-else clause.

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/E1w62nJ-0000000E3CL-3YSr@rmk-PC.armlinux.org.uk
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c

index 34d9a6b2d023f263393b923eb9ab67ddecb2082a..e9d8c8a7146a81f8e7df2f6f3fe20d30525ed43c 100644 (file)
@@ -404,14 +404,24 @@ static int ethqos_rgmii_macro_init(struct qcom_ethqos *ethqos, int speed)
 
        rgmii_setmask(ethqos, RGMII_CONFIG_DDR_MODE, RGMII_IO_MACRO_CONFIG);
 
-       switch (speed) {
-       case SPEED_1000:
+       if (speed == SPEED_1000) {
                rgmii_clrmask(ethqos, RGMII_CONFIG_BYPASS_TX_ID_EN,
                              RGMII_IO_MACRO_CONFIG);
                rgmii_setmask(ethqos, RGMII_CONFIG_POS_NEG_DATA_SEL,
                              RGMII_IO_MACRO_CONFIG);
                rgmii_setmask(ethqos, RGMII_CONFIG_PROG_SWAP,
                              RGMII_IO_MACRO_CONFIG);
+       } else {
+               rgmii_setmask(ethqos, RGMII_CONFIG_BYPASS_TX_ID_EN,
+                             RGMII_IO_MACRO_CONFIG);
+               rgmii_clrmask(ethqos, RGMII_CONFIG_POS_NEG_DATA_SEL,
+                             RGMII_IO_MACRO_CONFIG);
+               rgmii_clrmask(ethqos, RGMII_CONFIG_PROG_SWAP,
+                             RGMII_IO_MACRO_CONFIG);
+       }
+
+       switch (speed) {
+       case SPEED_1000:
                rgmii_clrmask(ethqos, RGMII_CONFIG2_DATA_DIVIDE_CLK_SEL,
                              RGMII_IO_MACRO_CONFIG2);
 
@@ -443,12 +453,6 @@ static int ethqos_rgmii_macro_init(struct qcom_ethqos *ethqos, int speed)
                break;
 
        case SPEED_100:
-               rgmii_setmask(ethqos, RGMII_CONFIG_BYPASS_TX_ID_EN,
-                             RGMII_IO_MACRO_CONFIG);
-               rgmii_clrmask(ethqos, RGMII_CONFIG_POS_NEG_DATA_SEL,
-                             RGMII_IO_MACRO_CONFIG);
-               rgmii_clrmask(ethqos, RGMII_CONFIG_PROG_SWAP,
-                             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,
@@ -479,12 +483,6 @@ static int ethqos_rgmii_macro_init(struct qcom_ethqos *ethqos, int speed)
                break;
 
        case SPEED_10:
-               rgmii_setmask(ethqos, RGMII_CONFIG_BYPASS_TX_ID_EN,
-                             RGMII_IO_MACRO_CONFIG);
-               rgmii_clrmask(ethqos, RGMII_CONFIG_POS_NEG_DATA_SEL,
-                             RGMII_IO_MACRO_CONFIG);
-               rgmii_clrmask(ethqos, RGMII_CONFIG_PROG_SWAP,
-                             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,