| From 274904ecd58aab3112fb64740aa8eb5938c7be19 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Fri, 10 Jul 2020 14:46:41 +0200 |
| Subject: net: macb: fix wakeup test in runtime suspend/resume routines |
| |
| From: Nicolas Ferre <nicolas.ferre@microchip.com> |
| |
| [ Upstream commit 515a10a701d570e26dfbe6ee373f77c8bf11053f ] |
| |
| 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: d54f89af6cc4 ("net: macb: Add pm runtime support") |
| Cc: Claudiu Beznea <claudiu.beznea@microchip.com> |
| Cc: Harini Katakam <harini.katakam@xilinx.com> |
| Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> |
| Signed-off-by: Nicolas Ferre <nicolas.ferre@microchip.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| 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 1ec19d9fab00c..16f5c62ba6dfe 100644 |
| --- a/drivers/net/ethernet/cadence/macb_main.c |
| +++ b/drivers/net/ethernet/cadence/macb_main.c |
| @@ -4507,7 +4507,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); |
| @@ -4523,7 +4523,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); |
| -- |
| 2.25.1 |
| |