Re: [PATCH v4 1/5] net: macb: fix wakeup test in runtime suspend/resume routines

From: Nicolas Ferre
Date: Mon May 25 2020 - 04:18:27 EST


On 07/05/2020 at 12:03, Nicolas Ferre wrote:
On 06/05/2020 at 22:18, Jakub Kicinski wrote:
EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe

On Wed, 6 May 2020 13:37:37 +0200 nicolas.ferre@xxxxxxxxxxxxx wrote:
From: Nicolas Ferre <nicolas.ferre@xxxxxxxxxxxxx>

Use the proper struct device pointer to check if the wakeup flag
and wakeup source are positioned.
Use the one passed by function call which is equivalent to
&bp->dev->dev.parent.

It's preventing the trigger of a spurious interrupt in case the
Wake-on-Lan feature is used.

Fixes: bc1109d04c39 ("net: macb: Add pm runtime support")

Fixes tag: Fixes: bc1109d04c39 ("net: macb: Add pm runtime support")
Has these problem(s):
- Target SHA1 does not exist

Indeed, it's:
Fixes: d54f89af6cc4 ("net: macb: Add pm runtime support")

David: do I have to respin or you can modify it?

David, all, I'm about to resend this series (alternative to "ping"), however:

1/ Now that it's late in the cycle, I'd like that you tell me if I rebase on net-next because it isn't not sensible to queue such (non urgeent) changes at rc7

2/ I didn't get answers from Russell and can't tell if there's a better way of handling underlying phylink error of phylink_ethtool_set_wol() in patch 3/5

Best regards,
Nicolas

Signed-off-by: Nicolas Ferre <nicolas.ferre@xxxxxxxxxxxxx>
Reviewed-by: Florian Fainelli <f.fainelli@xxxxxxxxx>
Cc: Claudiu Beznea <claudiu.beznea@xxxxxxxxxxxxx>
Cc: Harini Katakam <harini.katakam@xxxxxxxxxx>
---
drivers/net/ethernet/cadence/macb_main.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c
index 36290a8e2a84..d11fae37d46b 100644
--- a/drivers/net/ethernet/cadence/macb_main.c
+++ b/drivers/net/ethernet/cadence/macb_main.c
@@ -4616,7 +4616,7 @@ static int __maybe_unused macb_runtime_suspend(struct device *dev)
struct net_device *netdev = dev_get_drvdata(dev);
struct macb *bp = netdev_priv(netdev);

- if (!(device_may_wakeup(&bp->dev->dev))) {
+ if (!(device_may_wakeup(dev))) {
clk_disable_unprepare(bp->tx_clk);
clk_disable_unprepare(bp->hclk);
clk_disable_unprepare(bp->pclk);
@@ -4632,7 +4632,7 @@ static int __maybe_unused macb_runtime_resume(struct device *dev)
struct net_device *netdev = dev_get_drvdata(dev);
struct macb *bp = netdev_priv(netdev);

- if (!(device_may_wakeup(&bp->dev->dev))) {
+ if (!(device_may_wakeup(dev))) {
clk_prepare_enable(bp->pclk);
clk_prepare_enable(bp->hclk);
clk_prepare_enable(bp->tx_clk);





--
Nicolas Ferre