* [PATCH v3 1/2] net: fec: restore handling of PHY reset line as optional
@ 2023-02-01 21:53 Dmitry Torokhov
2023-02-01 21:53 ` [PATCH v3 2/2] net: fec: do not double-parse 'phy-reset-active-high' property Dmitry Torokhov
` (4 more replies)
0 siblings, 5 replies; 10+ messages in thread
From: Dmitry Torokhov @ 2023-02-01 21:53 UTC (permalink / raw)
To: Wei Fang, Jakub Kicinski, Andrew Lunn
Cc: Arnd Bergmann, Shenwei Wang, Clark Wang, NXP Linux Team,
David S. Miller, Eric Dumazet, Paolo Abeni, Marc Kleine-Budde,
netdev, linux-kernel
Conversion of the driver to gpiod API done in 468ba54bd616 ("fec:
convert to gpio descriptor") incorrectly made reset line mandatory and
resulted in aborting driver probe in cases where reset line was not
specified (note: this way of specifying PHY reset line is actually
deprecated).
Switch to using devm_gpiod_get_optional() and skip manipulating reset
line if it can not be located.
Fixes: 468ba54bd616 ("fec: convert to gpio descriptor")
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
---
v3: removed handling of 'phy-reset-active-high', it was moved to patch #2
v2: dropped conversion to generic device properties from the patch
drivers/net/ethernet/freescale/fec_main.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c
index 2716898e0b9b..00115b55d0ff 100644
--- a/drivers/net/ethernet/freescale/fec_main.c
+++ b/drivers/net/ethernet/freescale/fec_main.c
@@ -4056,12 +4056,15 @@ static int fec_reset_phy(struct platform_device *pdev)
active_high = of_property_read_bool(np, "phy-reset-active-high");
- phy_reset = devm_gpiod_get(&pdev->dev, "phy-reset",
+ phy_reset = devm_gpiod_get_optional(&pdev->dev, "phy-reset",
active_high ? GPIOD_OUT_HIGH : GPIOD_OUT_LOW);
if (IS_ERR(phy_reset))
return dev_err_probe(&pdev->dev, PTR_ERR(phy_reset),
"failed to get phy-reset-gpios\n");
+ if (!phy_reset)
+ return 0;
+
if (msec > 20)
msleep(msec);
else
--
2.39.1.456.gfc5497dd1b-goog
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v3 2/2] net: fec: do not double-parse 'phy-reset-active-high' property
2023-02-01 21:53 [PATCH v3 1/2] net: fec: restore handling of PHY reset line as optional Dmitry Torokhov
@ 2023-02-01 21:53 ` Dmitry Torokhov
2023-02-01 22:54 ` Andrew Lunn
2023-02-01 21:58 ` [PATCH v3 1/2] net: fec: restore handling of PHY reset line as optional Andrew Lunn
` (3 subsequent siblings)
4 siblings, 1 reply; 10+ messages in thread
From: Dmitry Torokhov @ 2023-02-01 21:53 UTC (permalink / raw)
To: Wei Fang, Jakub Kicinski, Andrew Lunn
Cc: Arnd Bergmann, Shenwei Wang, Clark Wang, NXP Linux Team,
David S. Miller, Eric Dumazet, Paolo Abeni, Marc Kleine-Budde,
netdev, linux-kernel
Conversion to gpiod API done in commit 468ba54bd616 ("fec: convert
to gpio descriptor") clashed with gpiolib applying the same quirk to the
reset GPIO polarity (introduced in commit b02c85c9458c). This results in
the reset line being left active/device being left in reset state when
reset line is "active low".
Remove handling of 'phy-reset-active-high' property from the driver and
rely on gpiolib to apply needed adjustments to avoid ending up with the
double inversion/flipped logic.
Fixes: 468ba54bd616 ("fec: convert to gpio descriptor")
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
---
v3: new patch, split from the original one
drivers/net/ethernet/freescale/fec_main.c | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c
index 00115b55d0ff..c73e25f8995e 100644
--- a/drivers/net/ethernet/freescale/fec_main.c
+++ b/drivers/net/ethernet/freescale/fec_main.c
@@ -4036,7 +4036,6 @@ static int fec_enet_init(struct net_device *ndev)
static int fec_reset_phy(struct platform_device *pdev)
{
struct gpio_desc *phy_reset;
- bool active_high = false;
int msec = 1, phy_post_delay = 0;
struct device_node *np = pdev->dev.of_node;
int err;
@@ -4054,10 +4053,8 @@ static int fec_reset_phy(struct platform_device *pdev)
if (!err && phy_post_delay > 1000)
return -EINVAL;
- active_high = of_property_read_bool(np, "phy-reset-active-high");
-
phy_reset = devm_gpiod_get_optional(&pdev->dev, "phy-reset",
- active_high ? GPIOD_OUT_HIGH : GPIOD_OUT_LOW);
+ GPIOD_OUT_HIGH);
if (IS_ERR(phy_reset))
return dev_err_probe(&pdev->dev, PTR_ERR(phy_reset),
"failed to get phy-reset-gpios\n");
@@ -4070,7 +4067,7 @@ static int fec_reset_phy(struct platform_device *pdev)
else
usleep_range(msec * 1000, msec * 1000 + 1000);
- gpiod_set_value_cansleep(phy_reset, !active_high);
+ gpiod_set_value_cansleep(phy_reset, 0);
if (!phy_post_delay)
return 0;
--
2.39.1.456.gfc5497dd1b-goog
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v3 1/2] net: fec: restore handling of PHY reset line as optional
2023-02-01 21:53 [PATCH v3 1/2] net: fec: restore handling of PHY reset line as optional Dmitry Torokhov
2023-02-01 21:53 ` [PATCH v3 2/2] net: fec: do not double-parse 'phy-reset-active-high' property Dmitry Torokhov
@ 2023-02-01 21:58 ` Andrew Lunn
2023-02-02 9:45 ` Marc Kleine-Budde
` (2 subsequent siblings)
4 siblings, 0 replies; 10+ messages in thread
From: Andrew Lunn @ 2023-02-01 21:58 UTC (permalink / raw)
To: Dmitry Torokhov
Cc: Wei Fang, Jakub Kicinski, Arnd Bergmann, Shenwei Wang,
Clark Wang, NXP Linux Team, David S. Miller, Eric Dumazet,
Paolo Abeni, Marc Kleine-Budde, netdev, linux-kernel
On Wed, Feb 01, 2023 at 01:53:19PM -0800, Dmitry Torokhov wrote:
> Conversion of the driver to gpiod API done in 468ba54bd616 ("fec:
> convert to gpio descriptor") incorrectly made reset line mandatory and
> resulted in aborting driver probe in cases where reset line was not
> specified (note: this way of specifying PHY reset line is actually
> deprecated).
>
> Switch to using devm_gpiod_get_optional() and skip manipulating reset
> line if it can not be located.
>
> Fixes: 468ba54bd616 ("fec: convert to gpio descriptor")
> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Andrew
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 2/2] net: fec: do not double-parse 'phy-reset-active-high' property
2023-02-01 21:53 ` [PATCH v3 2/2] net: fec: do not double-parse 'phy-reset-active-high' property Dmitry Torokhov
@ 2023-02-01 22:54 ` Andrew Lunn
2023-02-01 23:21 ` Dmitry Torokhov
0 siblings, 1 reply; 10+ messages in thread
From: Andrew Lunn @ 2023-02-01 22:54 UTC (permalink / raw)
To: Dmitry Torokhov
Cc: Wei Fang, Jakub Kicinski, Arnd Bergmann, Shenwei Wang,
Clark Wang, NXP Linux Team, David S. Miller, Eric Dumazet,
Paolo Abeni, Marc Kleine-Budde, netdev, linux-kernel
On Wed, Feb 01, 2023 at 01:53:20PM -0800, Dmitry Torokhov wrote:
> Conversion to gpiod API done in commit 468ba54bd616 ("fec: convert
> to gpio descriptor") clashed with gpiolib applying the same quirk to the
> reset GPIO polarity (introduced in commit b02c85c9458c). This results in
> the reset line being left active/device being left in reset state when
> reset line is "active low".
>
> Remove handling of 'phy-reset-active-high' property from the driver and
> rely on gpiolib to apply needed adjustments to avoid ending up with the
> double inversion/flipped logic.
I searched the in tree DT files from 4.7 to 6.0. None use
phy-reset-active-high. I'm don't think it has ever had an in tree
user.
This property was marked deprecated Jul 18 2019. So i suggest we
completely drop it.
Andrew
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 2/2] net: fec: do not double-parse 'phy-reset-active-high' property
2023-02-01 22:54 ` Andrew Lunn
@ 2023-02-01 23:21 ` Dmitry Torokhov
2023-02-02 1:08 ` Dmitry Torokhov
0 siblings, 1 reply; 10+ messages in thread
From: Dmitry Torokhov @ 2023-02-01 23:21 UTC (permalink / raw)
To: Andrew Lunn
Cc: Wei Fang, Jakub Kicinski, Arnd Bergmann, Shenwei Wang,
Clark Wang, NXP Linux Team, David S. Miller, Eric Dumazet,
Paolo Abeni, Marc Kleine-Budde, netdev, linux-kernel
On Wed, Feb 01, 2023 at 11:54:02PM +0100, Andrew Lunn wrote:
> On Wed, Feb 01, 2023 at 01:53:20PM -0800, Dmitry Torokhov wrote:
> > Conversion to gpiod API done in commit 468ba54bd616 ("fec: convert
> > to gpio descriptor") clashed with gpiolib applying the same quirk to the
> > reset GPIO polarity (introduced in commit b02c85c9458c). This results in
> > the reset line being left active/device being left in reset state when
> > reset line is "active low".
> >
> > Remove handling of 'phy-reset-active-high' property from the driver and
> > rely on gpiolib to apply needed adjustments to avoid ending up with the
> > double inversion/flipped logic.
>
> I searched the in tree DT files from 4.7 to 6.0. None use
> phy-reset-active-high. I'm don't think it has ever had an in tree
> user.
>
> This property was marked deprecated Jul 18 2019. So i suggest we
> completely drop it.
I'd be happy kill the quirk in gpiolibi-of.c if that is what we want to
do, although DT people sometimes are pretty touchy about keeping
backward compatibility.
I believe this should not stop us from merging this patch though, as the
code is currently broken when this deprecated property is not present.
Thanks.
--
Dmitry
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 2/2] net: fec: do not double-parse 'phy-reset-active-high' property
2023-02-01 23:21 ` Dmitry Torokhov
@ 2023-02-02 1:08 ` Dmitry Torokhov
2023-02-02 13:21 ` Andrew Lunn
0 siblings, 1 reply; 10+ messages in thread
From: Dmitry Torokhov @ 2023-02-02 1:08 UTC (permalink / raw)
To: Andrew Lunn, Bernhard Walle
Cc: Wei Fang, Jakub Kicinski, Arnd Bergmann, Shenwei Wang,
Clark Wang, NXP Linux Team, David S. Miller, Eric Dumazet,
Paolo Abeni, Marc Kleine-Budde, netdev, linux-kernel
On Wed, Feb 01, 2023 at 03:21:53PM -0800, Dmitry Torokhov wrote:
> On Wed, Feb 01, 2023 at 11:54:02PM +0100, Andrew Lunn wrote:
> > On Wed, Feb 01, 2023 at 01:53:20PM -0800, Dmitry Torokhov wrote:
> > > Conversion to gpiod API done in commit 468ba54bd616 ("fec: convert
> > > to gpio descriptor") clashed with gpiolib applying the same quirk to the
> > > reset GPIO polarity (introduced in commit b02c85c9458c). This results in
> > > the reset line being left active/device being left in reset state when
> > > reset line is "active low".
> > >
> > > Remove handling of 'phy-reset-active-high' property from the driver and
> > > rely on gpiolib to apply needed adjustments to avoid ending up with the
> > > double inversion/flipped logic.
> >
> > I searched the in tree DT files from 4.7 to 6.0. None use
> > phy-reset-active-high. I'm don't think it has ever had an in tree
> > user.
FTR I believe this was added in 4.6-rc1 (as 'phy-reset-active-low' in
first iteration by Bernhard Walle (CCed), so maybe he can tell us a bit
more about hardware and where it is still in service and whether this
quirk is still relevant.
> >
> > This property was marked deprecated Jul 18 2019. So i suggest we
> > completely drop it.
>
> I'd be happy kill the quirk in gpiolibi-of.c if that is what we want to
> do, although DT people sometimes are pretty touchy about keeping
> backward compatibility.
>
> I believe this should not stop us from merging this patch though, as the
> code is currently broken when this deprecated property is not present.
>
> Thanks.
>
> --
> Dmitry
--
Dmitry
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 1/2] net: fec: restore handling of PHY reset line as optional
2023-02-01 21:53 [PATCH v3 1/2] net: fec: restore handling of PHY reset line as optional Dmitry Torokhov
2023-02-01 21:53 ` [PATCH v3 2/2] net: fec: do not double-parse 'phy-reset-active-high' property Dmitry Torokhov
2023-02-01 21:58 ` [PATCH v3 1/2] net: fec: restore handling of PHY reset line as optional Andrew Lunn
@ 2023-02-02 9:45 ` Marc Kleine-Budde
2023-02-02 9:47 ` Arnd Bergmann
2023-02-03 5:30 ` patchwork-bot+netdevbpf
4 siblings, 0 replies; 10+ messages in thread
From: Marc Kleine-Budde @ 2023-02-02 9:45 UTC (permalink / raw)
To: Dmitry Torokhov
Cc: Wei Fang, Jakub Kicinski, Andrew Lunn, Arnd Bergmann,
Shenwei Wang, Clark Wang, NXP Linux Team, David S. Miller,
Eric Dumazet, Paolo Abeni, netdev, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 969 bytes --]
On 01.02.2023 13:53:19, Dmitry Torokhov wrote:
> Conversion of the driver to gpiod API done in 468ba54bd616 ("fec:
> convert to gpio descriptor") incorrectly made reset line mandatory and
> resulted in aborting driver probe in cases where reset line was not
> specified (note: this way of specifying PHY reset line is actually
> deprecated).
>
> Switch to using devm_gpiod_get_optional() and skip manipulating reset
> line if it can not be located.
>
> Fixes: 468ba54bd616 ("fec: convert to gpio descriptor")
> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Reported-by: Marc Kleine-Budde <mkl@pengutronix.de>
Tested-by: Marc Kleine-Budde <mkl@pengutronix.de>
Marc
--
Pengutronix e.K. | Marc Kleine-Budde |
Embedded Linux | https://www.pengutronix.de |
Vertretung West/Dortmund | Phone: +49-231-2826-924 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 1/2] net: fec: restore handling of PHY reset line as optional
2023-02-01 21:53 [PATCH v3 1/2] net: fec: restore handling of PHY reset line as optional Dmitry Torokhov
` (2 preceding siblings ...)
2023-02-02 9:45 ` Marc Kleine-Budde
@ 2023-02-02 9:47 ` Arnd Bergmann
2023-02-03 5:30 ` patchwork-bot+netdevbpf
4 siblings, 0 replies; 10+ messages in thread
From: Arnd Bergmann @ 2023-02-02 9:47 UTC (permalink / raw)
To: Dmitry Torokhov, Wei Fang, Jakub Kicinski, Andrew Lunn
Cc: Shenwei Wang, Clark Wang, NXP Linux Team, David S . Miller,
Eric Dumazet, Paolo Abeni, Marc Kleine-Budde, Netdev,
linux-kernel
On Wed, Feb 1, 2023, at 22:53, Dmitry Torokhov wrote:
> Conversion of the driver to gpiod API done in 468ba54bd616 ("fec:
> convert to gpio descriptor") incorrectly made reset line mandatory and
> resulted in aborting driver probe in cases where reset line was not
> specified (note: this way of specifying PHY reset line is actually
> deprecated).
>
> Switch to using devm_gpiod_get_optional() and skip manipulating reset
> line if it can not be located.
>
> Fixes: 468ba54bd616 ("fec: convert to gpio descriptor")
> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> ---
>
> v3: removed handling of 'phy-reset-active-high', it was moved to patch #2
> v2: dropped conversion to generic device properties from the patch
Thanks for fixing it,
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 2/2] net: fec: do not double-parse 'phy-reset-active-high' property
2023-02-02 1:08 ` Dmitry Torokhov
@ 2023-02-02 13:21 ` Andrew Lunn
0 siblings, 0 replies; 10+ messages in thread
From: Andrew Lunn @ 2023-02-02 13:21 UTC (permalink / raw)
To: Dmitry Torokhov
Cc: Bernhard Walle, Wei Fang, Jakub Kicinski, Arnd Bergmann,
Shenwei Wang, Clark Wang, NXP Linux Team, David S. Miller,
Eric Dumazet, Paolo Abeni, Marc Kleine-Budde, netdev,
linux-kernel
On Wed, Feb 01, 2023 at 05:08:05PM -0800, Dmitry Torokhov wrote:
> On Wed, Feb 01, 2023 at 03:21:53PM -0800, Dmitry Torokhov wrote:
> > On Wed, Feb 01, 2023 at 11:54:02PM +0100, Andrew Lunn wrote:
> > > On Wed, Feb 01, 2023 at 01:53:20PM -0800, Dmitry Torokhov wrote:
> > > > Conversion to gpiod API done in commit 468ba54bd616 ("fec: convert
> > > > to gpio descriptor") clashed with gpiolib applying the same quirk to the
> > > > reset GPIO polarity (introduced in commit b02c85c9458c). This results in
> > > > the reset line being left active/device being left in reset state when
> > > > reset line is "active low".
> > > >
> > > > Remove handling of 'phy-reset-active-high' property from the driver and
> > > > rely on gpiolib to apply needed adjustments to avoid ending up with the
> > > > double inversion/flipped logic.
> > >
> > > I searched the in tree DT files from 4.7 to 6.0. None use
> > > phy-reset-active-high. I'm don't think it has ever had an in tree
> > > user.
>
> FTR I believe this was added in 4.6-rc1 (as 'phy-reset-active-low' in
> first iteration by Bernhard Walle (CCed), so maybe he can tell us a bit
> more about hardware and where it is still in service and whether this
> quirk is still relevant.
>
> > >
> > > This property was marked deprecated Jul 18 2019. So i suggest we
> > > completely drop it.
> >
> > I'd be happy kill the quirk in gpiolibi-of.c if that is what we want to
> > do, although DT people sometimes are pretty touchy about keeping
> > backward compatibility.
Generally, that is for in kernel users. When a new feature is added,
you are also supposed to add an in kernel user. I could of missed it
in my search, but i didn't find an in-kernel user. If there is one,
then we should keep it. Otherwise, i would remove it.
> > I believe this should not stop us from merging this patch though, as the
> > code is currently broken when this deprecated property is not present.
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Andrew
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 1/2] net: fec: restore handling of PHY reset line as optional
2023-02-01 21:53 [PATCH v3 1/2] net: fec: restore handling of PHY reset line as optional Dmitry Torokhov
` (3 preceding siblings ...)
2023-02-02 9:47 ` Arnd Bergmann
@ 2023-02-03 5:30 ` patchwork-bot+netdevbpf
4 siblings, 0 replies; 10+ messages in thread
From: patchwork-bot+netdevbpf @ 2023-02-03 5:30 UTC (permalink / raw)
To: Dmitry Torokhov
Cc: wei.fang, kuba, andrew, arnd, shenwei.wang, xiaoning.wang,
linux-imx, davem, edumazet, pabeni, mkl, netdev, linux-kernel
Hello:
This series was applied to netdev/net-next.git (master)
by Jakub Kicinski <kuba@kernel.org>:
On Wed, 1 Feb 2023 13:53:19 -0800 you wrote:
> Conversion of the driver to gpiod API done in 468ba54bd616 ("fec:
> convert to gpio descriptor") incorrectly made reset line mandatory and
> resulted in aborting driver probe in cases where reset line was not
> specified (note: this way of specifying PHY reset line is actually
> deprecated).
>
> Switch to using devm_gpiod_get_optional() and skip manipulating reset
> line if it can not be located.
>
> [...]
Here is the summary with links:
- [v3,1/2] net: fec: restore handling of PHY reset line as optional
https://git.kernel.org/netdev/net-next/c/d7b5e5dd6694
- [v3,2/2] net: fec: do not double-parse 'phy-reset-active-high' property
https://git.kernel.org/netdev/net-next/c/0719bc3a5c77
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2023-02-03 5:30 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-01 21:53 [PATCH v3 1/2] net: fec: restore handling of PHY reset line as optional Dmitry Torokhov
2023-02-01 21:53 ` [PATCH v3 2/2] net: fec: do not double-parse 'phy-reset-active-high' property Dmitry Torokhov
2023-02-01 22:54 ` Andrew Lunn
2023-02-01 23:21 ` Dmitry Torokhov
2023-02-02 1:08 ` Dmitry Torokhov
2023-02-02 13:21 ` Andrew Lunn
2023-02-01 21:58 ` [PATCH v3 1/2] net: fec: restore handling of PHY reset line as optional Andrew Lunn
2023-02-02 9:45 ` Marc Kleine-Budde
2023-02-02 9:47 ` Arnd Bergmann
2023-02-03 5:30 ` patchwork-bot+netdevbpf
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.