* [PATCH] arm64: dts: renesas: r8a779f0: Set UFS lane count
@ 2026-09-11 7:30 Koichiro Den
2026-09-11 8:44 ` Geert Uytterhoeven
0 siblings, 1 reply; 3+ messages in thread
From: Koichiro Den @ 2026-09-11 7:30 UTC (permalink / raw)
To: Geert Uytterhoeven, Magnus Damm, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Marek Vasut
Cc: linux-renesas-soc, devicetree, linux-kernel
Since commit e72323f3b09f ("scsi: ufs: core: Configure only active lanes
during link"), the following error is observed on R-Car S4:
ufshcd-renesas e6860000.ufs: Tx lane mismatch [config,reported] [2,1]
ufshcd-renesas e6860000.ufs: link startup failed -67
ufshcd-renesas e6860000.ufs: error -ENOLINK: Initialization failed with error -67
ufshcd-renesas e6860000.ufs: probe with driver ufshcd-renesas failed with error -67
R-Car S4 has one UFS lane per direction, as described in section 152.1
of its hardware manual. Without lanes-per-direction, the UFS platform
driver defaults to two lanes.
Previously, the core used PA_CONNECTEDRXDATALANES and
PA_CONNECTEDTXDATALANES to configure the link without checking them
against lanes-per-direction, so the missing property did not prevent
initialization.
Explicitly set lanes-per-direction to 1, now that the validation is in
place.
Fixes: 5235d551779d ("arm64: dts: renesas: r8a779f0: Add UFS node")
Cc: stable@vger.kernel.org # 7.2+
Signed-off-by: Koichiro Den <den@valinux.co.jp>
---
arch/arm64/boot/dts/renesas/r8a779f0.dtsi | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm64/boot/dts/renesas/r8a779f0.dtsi b/arch/arm64/boot/dts/renesas/r8a779f0.dtsi
index 69c247b7f0e2..1aeafa1b96e2 100644
--- a/arch/arm64/boot/dts/renesas/r8a779f0.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a779f0.dtsi
@@ -901,6 +901,7 @@ ufs: ufs@e6860000 {
clocks = <&cpg CPG_MOD 1514>, <&ufs30_clk>;
clock-names = "fck", "ref_clk";
freq-table-hz = <200000000 200000000>, <38400000 38400000>;
+ lanes-per-direction = <1>;
power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>;
resets = <&cpg 1514>;
status = "disabled";
base-commit: eb3aaa2249eb2f4224bc27874f5d685471653142
--
2.51.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] arm64: dts: renesas: r8a779f0: Set UFS lane count
2026-09-11 7:30 [PATCH] arm64: dts: renesas: r8a779f0: Set UFS lane count Koichiro Den
@ 2026-09-11 8:44 ` Geert Uytterhoeven
2026-09-11 15:47 ` Koichiro Den
0 siblings, 1 reply; 3+ messages in thread
From: Geert Uytterhoeven @ 2026-09-11 8:44 UTC (permalink / raw)
To: Koichiro Den
Cc: Magnus Damm, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Marek Vasut, linux-renesas-soc, devicetree, linux-kernel,
Palash Kambar, Bart Van Assche, Shawn Lin, Manivannan Sadhasivam,
James E.J. Bottomley, Martin K. Petersen, scsi, Yoshihiro Shimoda
Hi Den-san,
CC ufs
Thanks for your patch!
On Fri, 11 Sept 2026 at 09:31, Koichiro Den <den@valinux.co.jp> wrote:
> Since commit e72323f3b09f ("scsi: ufs: core: Configure only active lanes
> during link"), the following error is observed on R-Car S4:
>
> ufshcd-renesas e6860000.ufs: Tx lane mismatch [config,reported] [2,1]
> ufshcd-renesas e6860000.ufs: link startup failed -67
> ufshcd-renesas e6860000.ufs: error -ENOLINK: Initialization failed with error -67
> ufshcd-renesas e6860000.ufs: probe with driver ufshcd-renesas failed with error -67
This is very unfortunate...
> R-Car S4 has one UFS lane per direction, as described in section 152.1
> of its hardware manual. Without lanes-per-direction, the UFS platform
> driver defaults to two lanes.
>
> Previously, the core used PA_CONNECTEDRXDATALANES and
> PA_CONNECTEDTXDATALANES to configure the link without checking them
> against lanes-per-direction, so the missing property did not prevent
> initialization.
>
> Explicitly set lanes-per-direction to 1, now that the validation is in
> place.
Given this breaks backwards compatibility with existing DTBs, I think
this new check should be relaxed iff the DT property "lanes-per-direction" is
not present. Are any other platforms affected?
Possible solutions I see are:
1. Skip the check completely, like commit 06a34d9c1f47b923 ("scsi:
ufs: core: Skip link param validation when lanes_per_direction is
unset") does for ufshcd-pci?
2. Correct hba->lanes_per_direction based on the actual values of
PA_CONNECTED[RT]XDATALANES?
Alternatively, ufshcd_init_lanes_per_dir() could override
hba->lanes_per_direction to one if "lanes-per-direction" is missing
and the device is compatible with renesas,r8a779f0-ufs. Or perhaps
hba->lanes_per_direction could be preset in ufs-renesas.c, and not
overwritten by UFSHCD_DEFAULT_LANES_PER_DIRECTION when non-zero?
> Fixes: 5235d551779d ("arm64: dts: renesas: r8a779f0: Add UFS node")
> Cc: stable@vger.kernel.org # 7.2+
> Signed-off-by: Koichiro Den <den@valinux.co.jp>
> --- a/arch/arm64/boot/dts/renesas/r8a779f0.dtsi
> +++ b/arch/arm64/boot/dts/renesas/r8a779f0.dtsi
> @@ -901,6 +901,7 @@ ufs: ufs@e6860000 {
> clocks = <&cpg CPG_MOD 1514>, <&ufs30_clk>;
> clock-names = "fck", "ref_clk";
> freq-table-hz = <200000000 200000000>, <38400000 38400000>;
> + lanes-per-direction = <1>;
> power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>;
> resets = <&cpg 1514>;
> status = "disabled";
>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Works fine on S4SK, so
Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
Will queue in renesas-fixes for v7.3.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] arm64: dts: renesas: r8a779f0: Set UFS lane count
2026-09-11 8:44 ` Geert Uytterhoeven
@ 2026-09-11 15:47 ` Koichiro Den
0 siblings, 0 replies; 3+ messages in thread
From: Koichiro Den @ 2026-09-11 15:47 UTC (permalink / raw)
To: Geert Uytterhoeven
Cc: Magnus Damm, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Marek Vasut, linux-renesas-soc, devicetree, linux-kernel,
Palash Kambar, Bart Van Assche, Shawn Lin, Manivannan Sadhasivam,
James E.J. Bottomley, Martin K. Petersen, scsi, Yoshihiro Shimoda
On Fri, Sep 11, 2026 at 10:44:56AM +0200, Geert Uytterhoeven wrote:
> Hi Den-san,
>
> CC ufs
>
> Thanks for your patch!
>
> On Fri, 11 Sept 2026 at 09:31, Koichiro Den <den@valinux.co.jp> wrote:
> > Since commit e72323f3b09f ("scsi: ufs: core: Configure only active lanes
> > during link"), the following error is observed on R-Car S4:
> >
> > ufshcd-renesas e6860000.ufs: Tx lane mismatch [config,reported] [2,1]
> > ufshcd-renesas e6860000.ufs: link startup failed -67
> > ufshcd-renesas e6860000.ufs: error -ENOLINK: Initialization failed with error -67
> > ufshcd-renesas e6860000.ufs: probe with driver ufshcd-renesas failed with error -67
>
> This is very unfortunate...
>
> > R-Car S4 has one UFS lane per direction, as described in section 152.1
> > of its hardware manual. Without lanes-per-direction, the UFS platform
> > driver defaults to two lanes.
> >
> > Previously, the core used PA_CONNECTEDRXDATALANES and
> > PA_CONNECTEDTXDATALANES to configure the link without checking them
> > against lanes-per-direction, so the missing property did not prevent
> > initialization.
> >
> > Explicitly set lanes-per-direction to 1, now that the validation is in
> > place.
>
> Given this breaks backwards compatibility with existing DTBs, I think
> this new check should be relaxed iff the DT property "lanes-per-direction" is
> not present. Are any other platforms affected?
I don't know yet. I see some other platforms omit the property, for which I'm
not sure whether they report two connected lanes. I haven't seen any other
reports so far unless I'm missing something.
> Possible solutions I see are:
> 1. Skip the check completely, like commit 06a34d9c1f47b923 ("scsi:
> ufs: core: Skip link param validation when lanes_per_direction is
> unset") does for ufshcd-pci?
> 2. Correct hba->lanes_per_direction based on the actual values of
> PA_CONNECTED[RT]XDATALANES?
>
> Alternatively, ufshcd_init_lanes_per_dir() could override
> hba->lanes_per_direction to one if "lanes-per-direction" is missing
> and the device is compatible with renesas,r8a779f0-ufs. Or perhaps
> hba->lanes_per_direction could be preset in ufs-renesas.c, and not
> overwritten by UFSHCD_DEFAULT_LANES_PER_DIRECTION when non-zero?
The binding has stated from the beginning that "If not specified, default is 2
lanes per direction". That is why I thought it made sense to explicitly specify
one lane in the DT. For compatibility with existing DTBs, handling the missing
property in ufs_renesas_init() sounds reasonable, in addition to this DT patch,
as you suggested.
I'm not very familiar with this area, though, so just my two cents. Sorry.
>
> > Fixes: 5235d551779d ("arm64: dts: renesas: r8a779f0: Add UFS node")
> > Cc: stable@vger.kernel.org # 7.2+
> > Signed-off-by: Koichiro Den <den@valinux.co.jp>
>
> > --- a/arch/arm64/boot/dts/renesas/r8a779f0.dtsi
> > +++ b/arch/arm64/boot/dts/renesas/r8a779f0.dtsi
> > @@ -901,6 +901,7 @@ ufs: ufs@e6860000 {
> > clocks = <&cpg CPG_MOD 1514>, <&ufs30_clk>;
> > clock-names = "fck", "ref_clk";
> > freq-table-hz = <200000000 200000000>, <38400000 38400000>;
> > + lanes-per-direction = <1>;
> > power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>;
> > resets = <&cpg 1514>;
> > status = "disabled";
> >
>
> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
> Works fine on S4SK, so
> Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
> Will queue in renesas-fixes for v7.3.
Thanks for the review and testing!
Best regards,
Koichiro
>
> Gr{oetje,eeting}s,
>
> Geert
>
>
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
>
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like that.
> -- Linus Torvalds
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-09-11 15:47 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-11 7:30 [PATCH] arm64: dts: renesas: r8a779f0: Set UFS lane count Koichiro Den
2026-09-11 8:44 ` Geert Uytterhoeven
2026-09-11 15:47 ` Koichiro Den
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox