This is an automatically generated commit which aids following Kernel patch history, as git will see the move and copy as a rename thus defeating the purpose. For the original discussion see: https://lists.openwrt.org/pipermail/openwrt-devel/2023-October/041673.html Signed-off-by: Thomas Richard <thomas.richard@bootlin.com> Link: https://github.com/openwrt/openwrt/pull/18740 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
71 lines
2.2 KiB
Diff
71 lines
2.2 KiB
Diff
From bb7ab910631ee0ade0758a3c4aa8dadc3b6934b6 Mon Sep 17 00:00:00 2001
|
|
From: Marek Vasut <marex@denx.de>
|
|
Date: Tue, 11 Jun 2024 10:36:02 +0200
|
|
Subject: [PATCH 5/8] net: stmmac: dwmac-stm32: Extract PMCR configuration
|
|
|
|
Pull the PMCR clock mux configuration into a separate function. This is
|
|
the final change of three, which moves external clock rate validation,
|
|
external clock selector decoding, and clock mux configuration into
|
|
separate functions. This should make the code easier to understand.
|
|
No functional change intended.
|
|
|
|
Signed-off-by: Marek Vasut <marex@denx.de>
|
|
Signed-off-by: Christophe Roullier <christophe.roullier@foss.st.com>
|
|
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
|
---
|
|
.../net/ethernet/stmicro/stmmac/dwmac-stm32.c | 27 ++++++++++++-------
|
|
1 file changed, 17 insertions(+), 10 deletions(-)
|
|
|
|
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
|
|
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
|
|
@@ -219,15 +219,11 @@ static int stm32mp1_validate_ethck_rate(
|
|
return -EINVAL;
|
|
}
|
|
|
|
-static int stm32mp1_set_mode(struct plat_stmmacenet_data *plat_dat)
|
|
+static int stm32mp1_configure_pmcr(struct plat_stmmacenet_data *plat_dat)
|
|
{
|
|
struct stm32_dwmac *dwmac = plat_dat->bsp_priv;
|
|
u32 reg = dwmac->mode_reg;
|
|
- int val, ret;
|
|
-
|
|
- ret = stm32mp1_select_ethck_external(plat_dat);
|
|
- if (ret)
|
|
- return ret;
|
|
+ int val;
|
|
|
|
switch (plat_dat->mac_interface) {
|
|
case PHY_INTERFACE_MODE_MII:
|
|
@@ -262,10 +258,6 @@ static int stm32mp1_set_mode(struct plat
|
|
return -EINVAL;
|
|
}
|
|
|
|
- ret = stm32mp1_validate_ethck_rate(plat_dat);
|
|
- if (ret)
|
|
- return ret;
|
|
-
|
|
/* Need to update PMCCLRR (clear register) */
|
|
regmap_write(dwmac->regmap, reg + SYSCFG_PMCCLRR_OFFSET,
|
|
dwmac->ops->syscfg_eth_mask);
|
|
@@ -275,6 +267,21 @@ static int stm32mp1_set_mode(struct plat
|
|
dwmac->ops->syscfg_eth_mask, val);
|
|
}
|
|
|
|
+static int stm32mp1_set_mode(struct plat_stmmacenet_data *plat_dat)
|
|
+{
|
|
+ int ret;
|
|
+
|
|
+ ret = stm32mp1_select_ethck_external(plat_dat);
|
|
+ if (ret)
|
|
+ return ret;
|
|
+
|
|
+ ret = stm32mp1_validate_ethck_rate(plat_dat);
|
|
+ if (ret)
|
|
+ return ret;
|
|
+
|
|
+ return stm32mp1_configure_pmcr(plat_dat);
|
|
+}
|
|
+
|
|
static int stm32mcu_set_mode(struct plat_stmmacenet_data *plat_dat)
|
|
{
|
|
struct stm32_dwmac *dwmac = plat_dat->bsp_priv;
|