On Tue, Nov 16, 2021 at 7:52 AM Quentin Schulz
<[email protected]> wrote:
>
> 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.

Patching piece below looks quite a bit.
lets just fix v5.14.14 and dont worry about 3.4

>
> 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 (#55348): https://lists.yoctoproject.org/g/yocto/message/55348
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