[PATCH net-next 3/8] net: stmmac: mdio: simplify MDC clock divisor lookup
Russell King (Oracle)
rmk+kernel at armlinux.org.uk
Wed Mar 4 02:22:41 PST 2026
As each lookup now iterates over each table in the same way, simplfy
the code to select the table, and then walk that table.
Signed-off-by: Russell King (Oracle) <rmk+kernel at armlinux.org.uk>
---
.../net/ethernet/stmicro/stmmac/stmmac_mdio.c | 27 +++++++------------
1 file changed, 10 insertions(+), 17 deletions(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c
index 6292911fb54b..55dd3e07223d 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c
@@ -535,6 +535,7 @@ static const struct stmmac_clk_rate stmmac_xgmac_csr_to_mdc[] = {
*/
static u32 stmmac_clk_csr_set(struct stmmac_priv *priv)
{
+ const struct stmmac_clk_rate *rates;
unsigned long clk_rate;
u32 value = ~0;
int i;
@@ -548,26 +549,18 @@ static u32 stmmac_clk_csr_set(struct stmmac_priv *priv)
* the frequency of clk_csr_i. So we do not change the default
* divider.
*/
- for (i = 0; stmmac_std_csr_to_mdc[i].rate; i++)
- if (clk_rate > stmmac_std_csr_to_mdc[i].rate)
+ rates = stmmac_std_csr_to_mdc;
+ if (priv->plat->flags & STMMAC_FLAG_HAS_SUN8I)
+ rates = stmmac_sun8i_csr_to_mdc;
+ if (priv->plat->core_type == DWMAC_CORE_XGMAC)
+ rates = stmmac_xgmac_csr_to_mdc;
+
+ for (i = 0; rates[i].rate; i++)
+ if (clk_rate > rates[i].rate)
break;
- if (stmmac_std_csr_to_mdc[i].cr != (u8)~0)
+ if (rates[i].cr != (u8)~0)
value = stmmac_std_csr_to_mdc[i].cr;
- if (priv->plat->flags & STMMAC_FLAG_HAS_SUN8I) {
- for (i = 0; stmmac_sun8i_csr_to_mdc[i].rate; i++)
- if (clk_rate > stmmac_sun8i_csr_to_mdc[i].rate)
- break;
- value = stmmac_sun8i_csr_to_mdc[i].cr;
- }
-
- if (priv->plat->core_type == DWMAC_CORE_XGMAC) {
- for (i = 0; stmmac_xgmac_csr_to_mdc[i].rate; i++)
- if (clk_rate > stmmac_xgmac_csr_to_mdc[i].rate)
- break;
- value = stmmac_xgmac_csr_to_mdc[i].cr;
- }
-
return value;
}
--
2.47.3
More information about the linux-arm-kernel
mailing list