From: <Claudiu.Beznea@microchip.com>
To: <linux@armlinux.org.uk>
Cc: <Nicolas.Ferre@microchip.com>, <davem@davemloft.net>,
<edumazet@google.com>, <kuba@kernel.org>, <pabeni@redhat.com>,
<andrew@lunn.ch>, <hkallweit1@gmail.com>,
<Sergiu.Moga@microchip.com>, <netdev@vger.kernel.org>,
<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v2 1/2] net: phylink: init phydev on phylink_resume()
Date: Mon, 12 Dec 2022 14:46:03 +0000 [thread overview]
Message-ID: <887723a9-7a8d-9190-3f15-e9a07c4ba65f@microchip.com> (raw)
In-Reply-To: <Y5c5uzpee1jrwWgz@shell.armlinux.org.uk>
On 12.12.2022 16:24, Russell King (Oracle) wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>
> On Mon, Dec 12, 2022 at 01:26:54PM +0000, Claudiu.Beznea@microchip.com wrote:
>> On 12.12.2022 14:47, Russell King (Oracle) wrote:
>>> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>>>
>>> On Mon, Dec 12, 2022 at 01:28:44PM +0200, Claudiu Beznea wrote:
>>>> There are scenarios where PHY power is cut off on system suspend.
>>>> There are also MAC drivers which handles themselves the PHY on
>>>> suspend/resume path. For such drivers the
>>>> struct phy_device::mac_managed_phy is set to true and thus the
>>>> mdio_bus_phy_suspend()/mdio_bus_phy_resume() wouldn't do the
>>>> proper PHY suspend/resume. For such scenarios call phy_init_hw()
>>>> from phylink_resume().
>>>>
>>>> Suggested-by: Russell King (Oracle) <linux@armlinux.org.uk>
>>>> Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
>>>> ---
>>>>
>>>> Hi, Russel,
>>>>
>>>> I let phy_init_hw() to execute for all devices. I can restrict it only
>>>> for PHYs that has struct phy_device::mac_managed_phy = true.
>>>>
>>>> Please let me know what you think.
>>>
>>> I think it would be better to only do this in the path where we call
>>> phy_start() - if we do it in the WoL path (where the PHY remains
>>> running), then there is no phy_start() call, so phy_init_hw() could
>>> result in the PHY not working after a suspend/resume event.
>>
>> This will not work all the time for MACB usage on AT91 devices.
>>
>> As explained here [1] the scenario where:
>> - MACB is configured to handle WoL
>> - the system goes to a suspend mode (named backup and self-refresh (BSR) in
>> our case) with power cut off on PHY and limited wake-up source (few pins
>> and RTC alarms)
>>
>> is still valid. In this case MAC IP and MAC PHY are not powered. And in
>> those cases phylink_resume() will not hit phy_start().
>
> If the MAC is handling WoL, how does the MAC receive the packet to
> wake up if the PHY has lost power?
Yes, this can't happen.
>
> If the PHY loses power, the MAC won't be able to receive the magic
> packet, and so WoL will be non-functional, and therefore will be
> completely pointless to support in such a configuration.
>
> What am I missing?
As explained in the previous version [1], we currently don't impose any
restriction like this in arch specific PM code (the only place where we can
decide if going to BSR and device_may_wakeup()). I had in mind to do it at
some point but though that user will have to re-do all the wakeup sources
reconfiguration when switching b/w suspend modes that cut or not PHY power.
To be consistent this will have to be done for all devices registered as
wakeup sources (except the few pins and RTC in case). And this may be a
pain for users.
[1]
https://lore.kernel.org/all/4375d733-ed49-869c-635f-0f0ba7304283@microchip.com/
>
> --
> RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
> FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!
next prev parent reply other threads:[~2022-12-12 14:46 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-12 11:28 [PATCH v2 0/2] net: macb: fix connectivity after resume Claudiu Beznea
2022-12-12 11:28 ` [PATCH v2 1/2] net: phylink: init phydev on phylink_resume() Claudiu Beznea
2022-12-12 12:47 ` Russell King (Oracle)
2022-12-12 13:26 ` Claudiu.Beznea
2022-12-12 14:24 ` Russell King (Oracle)
2022-12-12 14:46 ` Claudiu.Beznea [this message]
2022-12-12 13:54 ` Vladimir Oltean
2022-12-12 15:20 ` Claudiu.Beznea
2022-12-12 11:28 ` [PATCH v2 2/2] net: macb: use phylink_suspend()/phylink_resume() Claudiu Beznea
2022-12-14 1:39 ` [PATCH v2 0/2] net: macb: fix connectivity after resume Jakub Kicinski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=887723a9-7a8d-9190-3f15-e9a07c4ba65f@microchip.com \
--to=claudiu.beznea@microchip.com \
--cc=Nicolas.Ferre@microchip.com \
--cc=Sergiu.Moga@microchip.com \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=hkallweit1@gmail.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®