lkml.org 
[lkml]   [2023]   [Mar]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRE: [PATCH net-next 3/4] fec: add FIXME to move 'mac_managed_pm' to probe
Date
> -----Original Message-----
> From: Wolfram Sang <wsa+renesas@sang-engineering.com>
> Sent: 2023年3月16日 16:02
> To: Wei Fang <wei.fang@nxp.com>; linux-renesas-soc@vger.kernel.org;
> kernel@pengutronix.de; Shenwei Wang <shenwei.wang@nxp.com>; Clark
> Wang <xiaoning.wang@nxp.com>; dl-linux-imx <linux-imx@nxp.com>; David S.
> Miller <davem@davemloft.net>; Eric Dumazet <edumazet@google.com>;
> Jakub Kicinski <kuba@kernel.org>; Paolo Abeni <pabeni@redhat.com>;
> linux-kernel@vger.kernel.org; netdev@vger.kernel.org
> Subject: Re: [PATCH net-next 3/4] fec: add FIXME to move 'mac_managed_pm'
> to probe
>
>
> > Yes, I will resend the series as RFC with more explanations.
>
> Because I was able to fix SMSC myself, I'll just describe the procedure
> here:
>
> 1) apply this debug patch:
>
> diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c index
> 1b2e253fce75..7b79c5979486 100644
> --- a/drivers/net/phy/phy_device.c
> +++ b/drivers/net/phy/phy_device.c
> @@ -310,6 +310,8 @@ static __maybe_unused int
> mdio_bus_phy_suspend(struct device *dev)
> if (phydev->mac_managed_pm)
> return 0;
>
> +printk(KERN_INFO "****** MDIO suspend\n");
> +
> /* Wakeup interrupts may occur during the system sleep transition when
> * the PHY is inaccessible. Set flag to postpone handling until the PHY
> * has resumed. Wait for concurrent interrupt handler to complete.
>
> 2) boot the device without bringing the interface (and thus the PHY) up.
> Bringing it down after it was up is not the same! It is important
> that it was never up before.
>
> 3) do a suspend-to-ram/resume cycle
>
> 4) your log should show the above debug message. If not, I was wrong
>
> 5) If yes, apply a similar fix to the one I did for the Renesas drivers
> in this series
>
> 6) suspend/resume should not show the debug message anymore
>
> 7) test for regressions and send out :)
>
> I hope this was understandable. If not, feel free to ask.
>
> Happy hacking,
>

Thank you Wolfram. But I'm not sure whether it's really an issue. The flag
" mac_managed_pm" indicates that the MAC driver will take care of
suspending/resuming the PHY, that is to say the MAC driver calls
phy_stop()/phy_start() in its PM callbacks. If a ethernet interface never
brings up, the MAC PM callbacks do nothing and just return 0 directly. So I
think it's fine for the MDIO PM to do suspend/resume the PHY unless the MDIO
bus can't be accessed.



\
 
 \ /
  Last update: 2023-03-27 01:03    [W:0.075 / U:0.320 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site