]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net: dwmac-sti: Use helper rgmii_clock
authorJan Petrous (OSS) <jan.petrous@oss.nxp.com>
Thu, 5 Dec 2024 16:43:09 +0000 (17:43 +0100)
committerJakub Kicinski <kuba@kernel.org>
Tue, 10 Dec 2024 02:36:03 +0000 (18:36 -0800)
Utilize a new helper function rgmii_clock().

Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: Jan Petrous (OSS) <jan.petrous@oss.nxp.com>
Link: https://patch.msgid.link/20241205-upstream_s32cc_gmac-v8-12-ec1d180df815@oss.nxp.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c

index a6ff02d905a99117f1ff982cf80358fa76268920..eabc4da9e1a985101643908d2efdb0b4acaa9d60 100644 (file)
 
 #include "stmmac_platform.h"
 
-#define DWMAC_125MHZ   125000000
 #define DWMAC_50MHZ    50000000
-#define DWMAC_25MHZ    25000000
-#define DWMAC_2_5MHZ   2500000
 
 #define IS_PHY_IF_MODE_RGMII(iface)    (iface == PHY_INTERFACE_MODE_RGMII || \
                        iface == PHY_INTERFACE_MODE_RGMII_ID || \
@@ -140,7 +137,7 @@ static void stih4xx_fix_retime_src(void *priv, u32 spd, unsigned int mode)
        struct sti_dwmac *dwmac = priv;
        u32 src = dwmac->tx_retime_src;
        u32 reg = dwmac->ctrl_reg;
-       u32 freq = 0;
+       long freq = 0;
 
        if (dwmac->interface == PHY_INTERFACE_MODE_MII) {
                src = TX_RETIME_SRC_TXCLK;
@@ -153,19 +150,14 @@ static void stih4xx_fix_retime_src(void *priv, u32 spd, unsigned int mode)
                }
        } else if (IS_PHY_IF_MODE_RGMII(dwmac->interface)) {
                /* On GiGa clk source can be either ext or from clkgen */
-               if (spd == SPEED_1000) {
-                       freq = DWMAC_125MHZ;
-               } else {
+               freq = rgmii_clock(spd);
+
+               if (spd != SPEED_1000 && freq > 0)
                        /* Switch to clkgen for these speeds */
                        src = TX_RETIME_SRC_CLKGEN;
-                       if (spd == SPEED_100)
-                               freq = DWMAC_25MHZ;
-                       else if (spd == SPEED_10)
-                               freq = DWMAC_2_5MHZ;
-               }
        }
 
-       if (src == TX_RETIME_SRC_CLKGEN && freq)
+       if (src == TX_RETIME_SRC_CLKGEN && freq > 0)
                clk_set_rate(dwmac->clk, freq);
 
        regmap_update_bits(dwmac->regmap, reg, STIH4XX_RETIME_SRC_MASK,