]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
net: stmmac: qcom-ethqos: move detection of invalid RGMII speed
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Fri, 27 Mar 2026 08:43:43 +0000 (08:43 +0000)
committerJakub Kicinski <kuba@kernel.org>
Tue, 31 Mar 2026 00:36:44 +0000 (17:36 -0700)
Move detection of invalid RGMII speeds (which will never be triggered)
before the switch() to allow register modifications that are common to
all speeds to be moved out of the switch.

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

index f7e3a2b8803fbcce2361e4ada9ba5c9339be29c7..d19331067459ec04fdd543e74031e993712643c2 100644 (file)
@@ -397,6 +397,11 @@ static int ethqos_rgmii_macro_init(struct qcom_ethqos *ethqos, int speed)
        /* Select RGMII, write 0 to interface select */
        rgmii_clrmask(ethqos, RGMII_CONFIG_INTF_SEL, RGMII_IO_MACRO_CONFIG);
 
+       if (speed != SPEED_1000 && speed != SPEED_100 && speed != SPEED_10) {
+               dev_err(dev, "Invalid speed %d\n", speed);
+               return -EINVAL;
+       }
+
        switch (speed) {
        case SPEED_1000:
                rgmii_setmask(ethqos, RGMII_CONFIG_DDR_MODE,
@@ -510,9 +515,6 @@ static int ethqos_rgmii_macro_init(struct qcom_ethqos *ethqos, int speed)
                rgmii_updatel(ethqos, RGMII_CONFIG_LOOPBACK_EN,
                              loopback, RGMII_IO_MACRO_CONFIG);
                break;
-       default:
-               dev_err(dev, "Invalid speed %d\n", speed);
-               return -EINVAL;
        }
 
        return 0;