diff mbox series

arm64: dts: sun50i: h5: NanoPI Neo 2: phy-mode rgmii-id

Message ID 20210830151645.18018-1-u@pkh.me (mailing list archive)
State New, archived
Headers show
Series arm64: dts: sun50i: h5: NanoPI Neo 2: phy-mode rgmii-id | expand

Commit Message

Clément Bœsch Aug. 30, 2021, 3:16 p.m. UTC
Since commit bbc4d71d6354 ("net: phy: realtek: fix rtl8211e rx/tx delay
config") network is broken on the NanoPi Neo 2.

This patch changes the phy-mode to use internal delays both for RX and
TX as has been done for other boards affected by the same commit.

Fixes: bbc4d71d6354 ("net: phy: realtek: fix rtl8211e rx/tx delay config")
Signed-off-by: Clément Bœsch <u@pkh.me>
---
 arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2.dts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Jernej Škrabec Aug. 30, 2021, 8:49 p.m. UTC | #1
Hi!

Dne ponedeljek, 30. avgust 2021 ob 17:16:45 CEST je Clément Bœsch napisal(a):
> Since commit bbc4d71d6354 ("net: phy: realtek: fix rtl8211e rx/tx delay
> config") network is broken on the NanoPi Neo 2.
> 
> This patch changes the phy-mode to use internal delays both for RX and
> TX as has been done for other boards affected by the same commit.
> 
> Fixes: bbc4d71d6354 ("net: phy: realtek: fix rtl8211e rx/tx delay config")

This commit fixes DT issue, so "fixes" tag should be:
Fixes: 44a94c7ef989 ("arm64: dts: allwinner: H5: Restore EMAC changes")

Here, a node with wrong phy-mode property was added to NanoPi Neo 2 board DT.  

Other than that, this patch is fine and once fixes tag is fixed, you can add:
Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com>

For next version, you should:
- change fixed tag
- add my review-by tag right above your signed-off-by tag
- mark patch as v2 (add "-v2" parameter to git format-patch)
- describe change right under "---" line

Note, if you borked something when sending, you should mark patch or patch 
series as "RESEND", so recipients don't look for changes in two subsequent e-
mails (--subject-prefix="RESEND PATCH").

Thanks for the fix!

Best regards,
Jernej

> Signed-off-by: Clément Bœsch <u@pkh.me>
> ---
>  arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2.dts | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2.dts
> b/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2.dts index
> 02f8e72f0cad..05486cccee1c 100644
> --- a/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2.dts
> +++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2.dts
> @@ -75,7 +75,7 @@ &emac {
>  	pinctrl-0 = <&emac_rgmii_pins>;
>  	phy-supply = <&reg_gmac_3v3>;
>  	phy-handle = <&ext_rgmii_phy>;
> -	phy-mode = "rgmii";
> +	phy-mode = "rgmii-id";
>  	status = "okay";
>  };
Clément Bœsch Aug. 30, 2021, 9:25 p.m. UTC | #2
On Mon, Aug 30, 2021 at 10:49:37PM +0200, Jernej Škrabec wrote:
> Hi!
> 

Hi,

> Dne ponedeljek, 30. avgust 2021 ob 17:16:45 CEST je Clément Bœsch napisal(a):
> > Since commit bbc4d71d6354 ("net: phy: realtek: fix rtl8211e rx/tx delay
> > config") network is broken on the NanoPi Neo 2.
> > 
> > This patch changes the phy-mode to use internal delays both for RX and
> > TX as has been done for other boards affected by the same commit.
> > 
> > Fixes: bbc4d71d6354 ("net: phy: realtek: fix rtl8211e rx/tx delay config")
> 
> This commit fixes DT issue, so "fixes" tag should be:
> Fixes: 44a94c7ef989 ("arm64: dts: allwinner: H5: Restore EMAC changes")
> 
> Here, a node with wrong phy-mode property was added to NanoPi Neo 2 board DT.  

Shouldn't I add it instead of replacing? I followed what I observed in
`git log --grep bbc4d71d63` where all the commits pretty much follow this
pattern: that commit is the one causing the actual observed regression,
while 44a94c7ef989 is much older, and while it's wrong, it wasn't causing
an issue in practice.

Or did I misunderstand something?

> Other than that, this patch is fine and once fixes tag is fixed, you can add:
> Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com>
> 
> For next version, you should:
> - change fixed tag
> - add my review-by tag right above your signed-off-by tag
> - mark patch as v2 (add "-v2" parameter to git format-patch)
> - describe change right under "---" line
> 

Will do.

> Note, if you borked something when sending, you should mark patch or patch 
> series as "RESEND", so recipients don't look for changes in two subsequent e-
> mails (--subject-prefix="RESEND PATCH").

Not sure I follow you so before I disturb everyone with more noise I'd
just like to confirm: you mean a git send-email in-reply-to=[broken patch
attempt] (the one where I borked the --cc), right? But with what patch?
I'm a bit confused here.

> Thanks for the fix!

No problem; I really think a scan of all the other boards would be
meaningful though, it looks like a lot of them got fixed but there are
many other candidates and the issue feels pretty critical to me
(regression, and no network at all).
Andrew Lunn Aug. 30, 2021, 9:50 p.m. UTC | #3
On Mon, Aug 30, 2021 at 10:49:37PM +0200, Jernej Škrabec wrote:
> Hi!
> 
> Dne ponedeljek, 30. avgust 2021 ob 17:16:45 CEST je Clément Bœsch napisal(a):
> > Since commit bbc4d71d6354 ("net: phy: realtek: fix rtl8211e rx/tx delay
> > config") network is broken on the NanoPi Neo 2.
> > 
> > This patch changes the phy-mode to use internal delays both for RX and
> > TX as has been done for other boards affected by the same commit.
> > 
> > Fixes: bbc4d71d6354 ("net: phy: realtek: fix rtl8211e rx/tx delay config")
> 
> This commit fixes DT issue, so "fixes" tag should be:
> Fixes: 44a94c7ef989 ("arm64: dts: allwinner: H5: Restore EMAC changes")
> 
> Here, a node with wrong phy-mode property was added to NanoPi Neo 2 board DT.  

Hi Jernej

I would say, it is debatable. The board broke when the driver started
acting on the value, which is commit bbc4d71d6354. It could be argued
it was always technically broken, since it has the wrong value, but
practically, it was not broken. One of the rules for stable is:

 - It must fix a real bug that bothers people (not a, "This could be a
   problem..." type thing).

So i would argue, anything before bbc4d71d6354 does not fulfil stable
requirements, since it does not bother anybody.

      Andrew
Andrew Lunn Aug. 30, 2021, 9:52 p.m. UTC | #4
On Mon, Aug 30, 2021 at 05:16:45PM +0200, Clément Bœsch wrote:
> Since commit bbc4d71d6354 ("net: phy: realtek: fix rtl8211e rx/tx delay
> config") network is broken on the NanoPi Neo 2.
> 
> This patch changes the phy-mode to use internal delays both for RX and
> TX as has been done for other boards affected by the same commit.
> 
> Fixes: bbc4d71d6354 ("net: phy: realtek: fix rtl8211e rx/tx delay config")
> Signed-off-by: Clément Bœsch <u@pkh.me>

Cc: stable@vger.kernel.org
Reviewed-by: Andrew Lunn <andrew@lunn.ch>

    Andrew
Jernej Škrabec Aug. 31, 2021, 7:53 p.m. UTC | #5
Hi Andrew!

Dne ponedeljek, 30. avgust 2021 ob 23:50:42 CEST je Andrew Lunn napisal(a):
> On Mon, Aug 30, 2021 at 10:49:37PM +0200, Jernej Škrabec wrote:
> > Hi!
> > 
> > Dne ponedeljek, 30. avgust 2021 ob 17:16:45 CEST je Clément Bœsch 
napisal(a):
> > > Since commit bbc4d71d6354 ("net: phy: realtek: fix rtl8211e rx/tx delay
> > > config") network is broken on the NanoPi Neo 2.
> > > 
> > > This patch changes the phy-mode to use internal delays both for RX and
> > > TX as has been done for other boards affected by the same commit.
> > > 
> > > Fixes: bbc4d71d6354 ("net: phy: realtek: fix rtl8211e rx/tx delay config")
> > 
> > This commit fixes DT issue, so "fixes" tag should be:
> > Fixes: 44a94c7ef989 ("arm64: dts: allwinner: H5: Restore EMAC changes")
> > 
> > Here, a node with wrong phy-mode property was added to NanoPi Neo 2 board 
DT.  
> 
> Hi Jernej
> 
> I would say, it is debatable. The board broke when the driver started
> acting on the value, which is commit bbc4d71d6354. It could be argued
> it was always technically broken, since it has the wrong value, but
> practically, it was not broken. One of the rules for stable is:
> 
>  - It must fix a real bug that bothers people (not a, "This could be a
>    problem..." type thing).
> 
> So i would argue, anything before bbc4d71d6354 does not fulfil stable
> requirements, since it does not bother anybody.

True, but then again, DT is a bit special, since it's not used only by Linux. 
It's shared at least with BSDs and U-Boot, which most likely have independent 
driver implementation. That's why it's good to have DT fixes referencing DT 
related commits. As you said, DT described HW wrong.

Looking at past Allwinner related DT commits regarding this issue, we were not 
totally consistent. Most of them reference commit where emac node was 
introduced in DT. But I also found a couple of commits which indeed have fixes 
tag for bbc4d71d6354.

Best regards,
Jernej

> 
>       Andrew
>
Jernej Škrabec Aug. 31, 2021, 8:17 p.m. UTC | #6
Hi!

Dne ponedeljek, 30. avgust 2021 ob 23:25:23 CEST je Clément Bœsch napisal(a):
> On Mon, Aug 30, 2021 at 10:49:37PM +0200, Jernej Škrabec wrote:
> > Hi!
> > 
> 
> Hi,
> 
> > Dne ponedeljek, 30. avgust 2021 ob 17:16:45 CEST je Clément Bœsch 
napisal(a):
> > > Since commit bbc4d71d6354 ("net: phy: realtek: fix rtl8211e rx/tx delay
> > > config") network is broken on the NanoPi Neo 2.
> > > 
> > > This patch changes the phy-mode to use internal delays both for RX and
> > > TX as has been done for other boards affected by the same commit.
> > > 
> > > Fixes: bbc4d71d6354 ("net: phy: realtek: fix rtl8211e rx/tx delay config")
> > 
> > This commit fixes DT issue, so "fixes" tag should be:
> > Fixes: 44a94c7ef989 ("arm64: dts: allwinner: H5: Restore EMAC changes")
> > 
> > Here, a node with wrong phy-mode property was added to NanoPi Neo 2 board 
DT.  
> 
> Shouldn't I add it instead of replacing? I followed what I observed in
> `git log --grep bbc4d71d63` where all the commits pretty much follow this
> pattern: that commit is the one causing the actual observed regression,
> while 44a94c7ef989 is much older, and while it's wrong, it wasn't causing
> an issue in practice.
> 
> Or did I misunderstand something?

With that grep command you limited yourself only to those commits which 
reference this particular commit. There are others, which also change "rgmii" 
to "rgmii-id" and reference other commits, like:
544cc3f8573b ("arm64: dts: allwinner: h6: orangepi-one-plus: Fix ethernet")
97a38c1c213b ("arm64: dts: allwinner: beelink-gs1: Enable both RGMII RX/TX 
delay")
(there are more).

Anyway, let's continue this discussion in Andrew's thread.

> 
> > Other than that, this patch is fine and once fixes tag is fixed, you can add:
> > Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com>
> > 
> > For next version, you should:
> > - change fixed tag
> > - add my review-by tag right above your signed-off-by tag
> > - mark patch as v2 (add "-v2" parameter to git format-patch)
> > - describe change right under "---" line
> > 
> 
> Will do.

Please wait until discussion reaches a conclusion.

> 
> > Note, if you borked something when sending, you should mark patch or patch 
> > series as "RESEND", so recipients don't look for changes in two subsequent 
e-
> > mails (--subject-prefix="RESEND PATCH").
> 
> Not sure I follow you so before I disturb everyone with more noise I'd
> just like to confirm: you mean a git send-email in-reply-to=[broken patch
> attempt] (the one where I borked the --cc), right? But with what patch?
> I'm a bit confused here.

That's just for the future reference. No need to do anything now for this 
patch. If you bork any send attempt in the future, recreate same patch(es) 
with this additional tag ("RESEND") and send them again.

> 
> > Thanks for the fix!
> 
> No problem; I really think a scan of all the other boards would be
> meaningful though, it looks like a lot of them got fixed but there are
> many other candidates and the issue feels pretty critical to me
> (regression, and no network at all).

I guess you speak for all boards, not just those with Allwinner SoC? I fixed as 
many boards as I have - testing is very desired. On some boards rgmii was 
changed to rgmii-txid, so it's not as straightforward as search and replace. 
It could be also deducted from schematics, but at least one Allwinner board 
has this configured in HW wrong (SW fix was needed for that board) and other 
boards might not have schematics publicy available.

In short, I wouldn't start mass generating patches for this.

Best regards,
Jernej

> 
> -- 
> Clément B.
>
Andrew Lunn Aug. 31, 2021, 8:53 p.m. UTC | #7
> True, but then again, DT is a bit special, since it's not used only by Linux. 
> It's shared at least with BSDs and U-Boot, which most likely have independent 
> driver implementation. That's why it's good to have DT fixes referencing DT 
> related commits. As you said, DT described HW wrong.
> 
> Looking at past Allwinner related DT commits regarding this issue, we were not 
> totally consistent. Most of them reference commit where emac node was 
> introduced in DT. But I also found a couple of commits which indeed have fixes 
> tag for bbc4d71d6354.

All true, and it is not a big deal if it does go back further. I don't
care, we can let the Allwinner Maintainer decide. Ah, that is you :-)

I just want to try to keep it simple for somebody who is contributing
their first Linux kernel patch. If it is good enough, i say accept it,
and we can do a bit more education on the second contribution.

    Andre
Jernej Škrabec Sept. 1, 2021, 3:31 p.m. UTC | #8
Dne torek, 31. avgust 2021 ob 22:53:24 CEST je Andrew Lunn napisal(a):
> > True, but then again, DT is a bit special, since it's not used only by 
Linux. 
> > It's shared at least with BSDs and U-Boot, which most likely have 
independent 
> > driver implementation. That's why it's good to have DT fixes referencing DT 
> > related commits. As you said, DT described HW wrong.
> > 
> > Looking at past Allwinner related DT commits regarding this issue, we were 
not 
> > totally consistent. Most of them reference commit where emac node was 
> > introduced in DT. But I also found a couple of commits which indeed have 
fixes 
> > tag for bbc4d71d6354.
> 
> All true, and it is not a big deal if it does go back further. I don't
> care, we can let the Allwinner Maintainer decide. Ah, that is you :-)
> 
> I just want to try to keep it simple for somebody who is contributing
> their first Linux kernel patch. If it is good enough, i say accept it,
> and we can do a bit more education on the second contribution.

Maxime, Chen-Yu, thoughts?

Since there are both approaches for fixes tag already in, I guess this is also 
fine.

Best regards,
Jernej
Maxime Ripard Sept. 3, 2021, 9:21 a.m. UTC | #9
On Wed, Sep 01, 2021 at 05:31:32PM +0200, Jernej Škrabec wrote:
> Dne torek, 31. avgust 2021 ob 22:53:24 CEST je Andrew Lunn napisal(a):
> > > True, but then again, DT is a bit special, since it's not used only by 
> Linux. 
> > > It's shared at least with BSDs and U-Boot, which most likely have 
> independent 
> > > driver implementation. That's why it's good to have DT fixes referencing DT 
> > > related commits. As you said, DT described HW wrong.
> > > 
> > > Looking at past Allwinner related DT commits regarding this issue, we were 
> not 
> > > totally consistent. Most of them reference commit where emac node was 
> > > introduced in DT. But I also found a couple of commits which indeed have 
> fixes 
> > > tag for bbc4d71d6354.
> > 
> > All true, and it is not a big deal if it does go back further. I don't
> > care, we can let the Allwinner Maintainer decide. Ah, that is you :-)
> > 
> > I just want to try to keep it simple for somebody who is contributing
> > their first Linux kernel patch. If it is good enough, i say accept it,
> > and we can do a bit more education on the second contribution.
> 
> Maxime, Chen-Yu, thoughts?
> 
> Since there are both approaches for fixes tag already in, I guess this is also 
> fine.

I agree with you, the fixes should point at the initial Device Tree
issue. Our DT are used by other projects and even if in Linux it wasn't
causing any issue before another commit showed up, it might affect those
projects differently.

Maxime
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2.dts
index 02f8e72f0cad..05486cccee1c 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2.dts
@@ -75,7 +75,7 @@  &emac {
 	pinctrl-0 = <&emac_rgmii_pins>;
 	phy-supply = <&reg_gmac_3v3>;
 	phy-handle = <&ext_rgmii_phy>;
-	phy-mode = "rgmii";
+	phy-mode = "rgmii-id";
 	status = "okay";
 };