Message ID | 20241124-upstream_s32cc_gmac-v6-9-dc5718ccf001@oss.nxp.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Add support for Synopsis DWMAC IP on NXP Automotive SoCs S32G2xx/S32G3xx/S32R45 | expand |
Jan Petrous via B4 Relay wrote: > From: "Jan Petrous (OSS)" <jan.petrous@oss.nxp.com> > > Utilize a new helper function rgmii_clock(). > Thanks! Reviewed-by: Emil Renner Berthing <emil.renner.berthing@canonical.com> > 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> > --- > drivers/net/ethernet/stmicro/stmmac/dwmac-starfive.c | 19 ++++--------------- > 1 file changed, 4 insertions(+), 15 deletions(-) > > diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-starfive.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-starfive.c > index 421666279dd3..0a0a363d3730 100644 > --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-starfive.c > +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-starfive.c > @@ -34,24 +34,13 @@ struct starfive_dwmac { > static void starfive_dwmac_fix_mac_speed(void *priv, unsigned int speed, unsigned int mode) > { > struct starfive_dwmac *dwmac = priv; > - unsigned long rate; > + long rate; > int err; > > - rate = clk_get_rate(dwmac->clk_tx); > - > - switch (speed) { > - case SPEED_1000: > - rate = 125000000; > - break; > - case SPEED_100: > - rate = 25000000; > - break; > - case SPEED_10: > - rate = 2500000; > - break; > - default: > + rate = rgmii_clock(speed); > + if (rate < 0) { > dev_err(dwmac->dev, "invalid speed %u\n", speed); > - break; > + return; > } > > err = clk_set_rate(dwmac->clk_tx, rate); > > -- > 2.47.0 > >
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-starfive.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-starfive.c index 421666279dd3..0a0a363d3730 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-starfive.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-starfive.c @@ -34,24 +34,13 @@ struct starfive_dwmac { static void starfive_dwmac_fix_mac_speed(void *priv, unsigned int speed, unsigned int mode) { struct starfive_dwmac *dwmac = priv; - unsigned long rate; + long rate; int err; - rate = clk_get_rate(dwmac->clk_tx); - - switch (speed) { - case SPEED_1000: - rate = 125000000; - break; - case SPEED_100: - rate = 25000000; - break; - case SPEED_10: - rate = 2500000; - break; - default: + rate = rgmii_clock(speed); + if (rate < 0) { dev_err(dwmac->dev, "invalid speed %u\n", speed); - break; + return; } err = clk_set_rate(dwmac->clk_tx, rate);