>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]] -=-=-=-=-=-=-=-=-=-=-=-
