armbian-build/patch/kernel/archive/rockchip64-6.19/rk3308-fix-10mbit-ethernet.patch
2026-01-06 21:47:54 +01:00

48 lines
1.9 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: chillymattster <106633144+chillymattster@users.noreply.github.com>
Date: Wed, 3 Sep 2025 18:29:16 +0200
Subject: rk3308: Fix 10Mbit Ethernet
Origin: https://github.com/armbian/build/pull/6117
Bug-armbian: https://github.com/armbian/build/pull/8575
Bug-armbian: https://armbian.atlassian.net/browse/AR-1904
Bug-armbian: https://forum.armbian.com/topic/30235-rockpi-s-ethernet-10mbps-not-working/
Signed-off-by: chillymattster <106633144+chillymattster@users.noreply.github.com>
Last-Update: 2025-09-06
---
drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c | 11 ++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
index 111111111111..222222222222 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
@@ -503,8 +503,8 @@ static const struct rk_gmac_ops rk3288_ops = {
/* RK3308_GRF_MAC_CON0 */
#define RK3308_GMAC_PHY_INTF_SEL_RMII (GRF_CLR_BIT(2) | GRF_CLR_BIT(3) | \
GRF_BIT(4))
-#define RK3308_GMAC_FLOW_CTRL GRF_BIT(3)
-#define RK3308_GMAC_FLOW_CTRL_CLR GRF_CLR_BIT(3)
+#define RK3308_GMAC_FLOW_CTRL GRF_BIT(1)
+#define RK3308_GMAC_FLOW_CTRL_CLR GRF_CLR_BIT(1)
#define RK3308_GMAC_SPEED_10M GRF_CLR_BIT(0)
#define RK3308_GMAC_SPEED_100M GRF_BIT(0)
@@ -522,6 +522,13 @@ static const struct rk_reg_speed_data rk3308_reg_speed_data = {
static int rk3308_set_speed(struct rk_priv_data *bsp_priv,
phy_interface_t interface, int speed)
{
+
+ int ret = clk_set_rate(bsp_priv->clks[RK_CLK_MAC_SPEED].clk, 250000 * speed);
+ if (ret) {
+ dev_err(bsp_priv->dev, "%s: clk_set_rate for %dMbps returned: %d\n",
+ __func__, speed, ret);
+ }
+
return rk_set_reg_speed(bsp_priv, &rk3308_reg_speed_data,
RK3308_GRF_MAC_CON0, interface, speed);
}
--
Armbian