>From Linux kernel v5.14 to v5.14.11 (both included), the Ethernet MAC
controller found on RK3399 is not working.

A fix is available in v5.14.12 and later (available also in v5.15)
which is provided here and applied to linux-yocto source tree if
linux-yocto version is of the impacted ones.

The conditional patching is unfortunately required because Honister 3.4
has linux-yocto v5.14.9 and Honister 3.4.1 will have at least
linux-yocto v5.14.14.

Cc: Quentin Schulz <[email protected]>
Signed-off-by: Quentin Schulz <[email protected]>
---
 ...-rk-Fix-ethernet-on-rk3399-based-dev.patch | 63 +++++++++++++++++++
 .../linux/linux-yocto/5.14-rk3399-mac-fix.scc |  1 +
 .../linux/linux-yocto_5.14.bbappend           | 11 ++++
 3 files changed, 75 insertions(+)
 create mode 100644 
recipes-kernel/linux/linux-yocto/0001-net-stmmac-dwmac-rk-Fix-ethernet-on-rk3399-based-dev.patch
 create mode 100644 recipes-kernel/linux/linux-yocto/5.14-rk3399-mac-fix.scc
 create mode 100644 recipes-kernel/linux/linux-yocto_5.14.bbappend

diff --git 
a/recipes-kernel/linux/linux-yocto/0001-net-stmmac-dwmac-rk-Fix-ethernet-on-rk3399-based-dev.patch
 
b/recipes-kernel/linux/linux-yocto/0001-net-stmmac-dwmac-rk-Fix-ethernet-on-rk3399-based-dev.patch
new file mode 100644
index 0000000..b2ce7e8
--- /dev/null
+++ 
b/recipes-kernel/linux/linux-yocto/0001-net-stmmac-dwmac-rk-Fix-ethernet-on-rk3399-based-dev.patch
@@ -0,0 +1,63 @@
+From 8efe947ea1eace444d78398a31469b30e47ae585 Mon Sep 17 00:00:00 2001
+From: Punit Agrawal <[email protected]>
+Date: Wed, 29 Sep 2021 22:50:49 +0900
+Subject: [PATCH] net: stmmac: dwmac-rk: Fix ethernet on rk3399 based devices
+
+[ Upstream commit aec3f415f7244b7747a7952596971adb0df2f568 ]
+
+Commit 2d26f6e39afb ("net: stmmac: dwmac-rk: fix unbalanced pm_runtime_enable 
warnings")
+while getting rid of a runtime PM warning ended up breaking ethernet
+on rk3399 based devices. By dropping an extra reference to the device,
+the commit ends up enabling suspend / resume of the ethernet device -
+which appears to be broken.
+
+While the issue with runtime pm is being investigated, partially
+revert commit 2d26f6e39afb to restore the network on rk3399.
+
+Fixes: 2d26f6e39afb ("net: stmmac: dwmac-rk: fix unbalanced pm_runtime_enable 
warnings")
+Suggested-by: Heiko Stuebner <[email protected]>
+Signed-off-by: Punit Agrawal <[email protected]>
+Cc: Michael Riesch <[email protected]>
+Tested-by: Heiko Stuebner <[email protected]>
+Link: https://lore.kernel.org/r/[email protected]
+Signed-off-by: Jakub Kicinski <[email protected]>
+Signed-off-by: Sasha Levin <[email protected]>
+
+Upstream-Status: Backport [8efe947ea1eace444d78398a31469b30e47ae585]
+---
+ drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c 
b/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
+index ed817011a94a..6924a6aacbd5 100644
+--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
++++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
+@@ -21,6 +21,7 @@
+ #include <linux/delay.h>
+ #include <linux/mfd/syscon.h>
+ #include <linux/regmap.h>
++#include <linux/pm_runtime.h>
+ 
+ #include "stmmac_platform.h"
+ 
+@@ -1528,6 +1529,8 @@ static int rk_gmac_powerup(struct rk_priv_data *bsp_priv)
+               return ret;
+       }
+ 
++      pm_runtime_get_sync(dev);
++
+       if (bsp_priv->integrated_phy)
+               rk_gmac_integrated_phy_powerup(bsp_priv);
+ 
+@@ -1539,6 +1542,8 @@ static void rk_gmac_powerdown(struct rk_priv_data *gmac)
+       if (gmac->integrated_phy)
+               rk_gmac_integrated_phy_powerdown(gmac);
+ 
++      pm_runtime_put_sync(&gmac->pdev->dev);
++
+       phy_power_on(gmac, false);
+       gmac_clk_enable(gmac, false);
+ }
+-- 
+2.33.1
+
diff --git a/recipes-kernel/linux/linux-yocto/5.14-rk3399-mac-fix.scc 
b/recipes-kernel/linux/linux-yocto/5.14-rk3399-mac-fix.scc
new file mode 100644
index 0000000..1ad2bde
--- /dev/null
+++ b/recipes-kernel/linux/linux-yocto/5.14-rk3399-mac-fix.scc
@@ -0,0 +1 @@
+patch 0001-net-stmmac-dwmac-rk-Fix-ethernet-on-rk3399-based-dev.patch
diff --git a/recipes-kernel/linux/linux-yocto_5.14.bbappend 
b/recipes-kernel/linux/linux-yocto_5.14.bbappend
new file mode 100644
index 0000000..5eaa604
--- /dev/null
+++ b/recipes-kernel/linux/linux-yocto_5.14.bbappend
@@ -0,0 +1,11 @@
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
+
+# Fix Ethernet on 5.14 until 5.14.11 (included) for RK3399 MAC controller
+# Conditional patching required because Honister 3.4 has linux-yocto
+# v5.14.9 and Honister 3.4.1 will have at least linux-yocto v5.14.14.
+python __anonymous() {
+    kver = d.getVar('LINUX_VERSION') or ''
+    if bb.utils.is_semver(kver) \
+      and bb.utils.vercmp_string(kver, '5.14.11') <= 0:
+        d.appendVar('SRC_URI', ' file://5.14-rk3399-mac-fix.scc')
+}
-- 
2.30.2

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#55345): https://lists.yoctoproject.org/g/yocto/message/55345
Mute This Topic: https://lists.yoctoproject.org/mt/87097671/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to