[PATCH net-next 2/6] net: stmmac: imx: use dwmac_set_tx_clk_gmii()
Russell King (Oracle)
rmk+kernel at armlinux.org.uk
Mon Sep 11 08:28:45 PDT 2023
Signed-off-by: Russell King (Oracle) <rmk+kernel at armlinux.org.uk>
---
.../net/ethernet/stmicro/stmmac/dwmac-imx.c | 27 ++++++-------------
1 file changed, 8 insertions(+), 19 deletions(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-imx.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-imx.c
index df34e34cc14f..d2569faf7cc3 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-imx.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-imx.c
@@ -21,6 +21,7 @@
#include <linux/stmmac.h>
#include "stmmac_platform.h"
+#include "stmmac_plat_lib.h"
#define GPR_ENET_QOS_INTF_MODE_MASK GENMASK(21, 16)
#define GPR_ENET_QOS_INTF_SEL_MII (0x0 << 16)
@@ -186,7 +187,6 @@ static void imx_dwmac_fix_speed(void *priv, unsigned int speed, unsigned int mod
{
struct plat_stmmacenet_data *plat_dat;
struct imx_priv_data *dwmac = priv;
- unsigned long rate;
int err;
plat_dat = dwmac->plat_dat;
@@ -196,24 +196,13 @@ static void imx_dwmac_fix_speed(void *priv, unsigned int speed, unsigned int mod
(plat_dat->mac_interface == PHY_INTERFACE_MODE_MII))
return;
- switch (speed) {
- case SPEED_1000:
- rate = 125000000;
- break;
- case SPEED_100:
- rate = 25000000;
- break;
- case SPEED_10:
- rate = 2500000;
- break;
- default:
- dev_err(dwmac->dev, "invalid speed %u\n", speed);
- return;
- }
-
- err = clk_set_rate(dwmac->clk_tx, rate);
- if (err < 0)
- dev_err(dwmac->dev, "failed to set tx rate %lu\n", rate);
+ err = dwmac_set_tx_clk_gmii(dwmac->clk_tx, speed);
+ if (err == -ENOTSUPP)
+ dev_err(dwmac->dev, "invalid speed %dMbps\n", speed);
+ else if (err)
+ dev_err(dwmac->dev,
+ "failed to set tx rate for speed %dMbps: %pe\n",
+ speed, ERR_PTR(err));
}
static void imx93_dwmac_fix_speed(void *priv, unsigned int speed, unsigned int mode)
--
2.30.2
More information about the linux-arm-kernel
mailing list