Source: linux Version: 6.12.8-1 Severity: important Tags: upstream patch X-Debbugs-Cc: debian-arm@lists.debian.org User: debian-arm@lists.debian.org Usertags: arm64
https://lore.kernel.org/linux-rockchip/df8e0ff8-355b-4c18-9349-0f04ae16e...@kwiboo.se/: Upstream commit fbcbffbac994 ("phy: rockchip: naneng-combphy: fix phy reset") broke backwards compatibly with old DTs and has already been backported breaking i.e. PCIe and USB on Rockchip RK356x boards on stable and longterm kernels. That thread is about a patch which fixes that backward compatibility. Further down in that thread mentioned the following: Trying to boot into Linux v6.1.123+, v6.6.69+ and v6.12.8+ using the U-Boot bundled DT for RK356x boards now result in broken PCIe, SATA and USB This issue results in the following kernel errors: [ 6.075822] rockchip-naneng-combphy fe830000.phy: error -ENOENT: failed to get phy reset [ 6.076599] rockchip-naneng-combphy fe830000.phy: probe with driver rockchip-naneng-combphy failed with error -2 [ 6.078649] rockchip-naneng-combphy fe840000.phy: error -ENOENT: failed to get phy reset [ 6.079420] rockchip-naneng-combphy fe840000.phy: probe with driver rockchip-naneng-combphy failed with error -2 It doesn't affect kernel 6.13 (and higher) though. The patch has been accepted by the upstream maintainer and can be found here: https://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy.git/log/?h=fixes But it hasn't been sent 'further up the chain' just yet (right now). This means that currently USB and PCIe is broken for rk356x devices for both Stable/Bookworm and Testing/Trixie (and Sid). Attached you'll find the commit from the linux-phy git repo. I haven't added the 'fixed-upstream' tag as I wasn't sure if it needed to be accepted 'further up the chain' for that. HTH, Diederik -- System Information: Debian Release: trixie/sid APT prefers testing APT policy: (990, 'testing'), (500, 'unstable'), (1, 'experimental') Architecture: arm64 (aarch64) Kernel: Linux 6.12.8-arm64 (SMP w/4 CPU threads) Locale: LANG=C.UTF-8, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled
From: Chukun Pan <amad...@jmu.edu.cn> Date: Mon, 6 Jan 2025 18:00:01 +0800 Subject: phy: rockchip: naneng-combphy: compatible reset with old DT Origin: https://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy.git/commit?id=3126ea9be66b53e607f87f067641ba724be24181 The device tree of RK3568 did not specify reset-names before. So add fallback to old behaviour to be compatible with old DT. Fixes: fbcbffbac994 ("phy: rockchip: naneng-combphy: fix phy reset") Cc: Jianfeng Liu <liujianfeng1...@gmail.com> Signed-off-by: Chukun Pan <amad...@jmu.edu.cn> Reviewed-by: Jonas Karlman <jo...@kwiboo.se> Link: https://lore.kernel.org/r/20250106100001.1344418-2-amad...@jmu.edu.cn Signed-off-by: Vinod Koul <vk...@kernel.org> --- drivers/phy/rockchip/phy-rockchip-naneng-combphy.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c b/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c index a1532ef8bbe9..8c3ce57f8915 100644 --- a/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c +++ b/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c @@ -324,7 +324,10 @@ static int rockchip_combphy_parse_dt(struct device *dev, struct rockchip_combphy priv->ext_refclk = device_property_present(dev, "rockchip,ext-refclk"); - priv->phy_rst = devm_reset_control_get(dev, "phy"); + priv->phy_rst = devm_reset_control_get_exclusive(dev, "phy"); + /* fallback to old behaviour */ + if (PTR_ERR(priv->phy_rst) == -ENOENT) + priv->phy_rst = devm_reset_control_array_get_exclusive(dev); if (IS_ERR(priv->phy_rst)) return dev_err_probe(dev, PTR_ERR(priv->phy_rst), "failed to get phy reset\n"); -- 2.47.2