Re: [PATCH net] net: phy: skip disabling interrupt when WOL is enabled in shutdown

From: Andrew Lunn
Date: Tue Jul 06 2021 - 20:57:34 EST


On Wed, Jul 07, 2021 at 12:36:30AM +0000, Ismail, Mohammad Athari wrote:
>
>
> > -----Original Message-----
> > From: Andrew Lunn <andrew@xxxxxxx>
> > Sent: Tuesday, July 6, 2021 9:14 PM
> > To: Ling, Pei Lee <pei.lee.ling@xxxxxxxxx>
> > Cc: Heiner Kallweit <hkallweit1@xxxxxxxxx>; Russell King
> > <linux@xxxxxxxxxxxxxxx>; davem@xxxxxxxxxxxxx; Jakub Kicinski
> > <kuba@xxxxxxxxxx>; Ioana Ciornei <ioana.ciornei@xxxxxxx>;
> > netdev@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Voon, Weifeng
> > <weifeng.voon@xxxxxxxxx>; vee.khee.wong@xxxxxxxxxxxxxxx; Wong, Vee Khee
> > <vee.khee.wong@xxxxxxxxx>; Ismail, Mohammad Athari
> > <mohammad.athari.ismail@xxxxxxxxx>
> > Subject: Re: [PATCH net] net: phy: skip disabling interrupt when WOL is enabled
> > in shutdown
> >
> > On Tue, Jul 06, 2021 at 05:02:09PM +0800, Ling Pei Lee wrote:
> > > From: Mohammad Athari Bin Ismail <mohammad.athari.ismail@xxxxxxxxx>
> > >
> > > PHY WOL requires WOL interrupt event to trigger the WOL signal in
> > > order to wake up the system. Hence, the PHY driver should not disable
> > > the interrupt during shutdown if PHY WOL is enabled.
> >
> > If the device is being used to wake the system up, why is it being shutdown?
> >
>
> Hi Andrew,
>

> When the platform goes to S5 state (ex: shutdown -h now), regardless
> PHY WOL is enabled or not, phy_shutdown() is called. So, for the
> platform that support WOL from S5, we need to make sure the PHY
> still can trigger WOL event. Disabling the interrupt through
> phy_disable_interrupts() in phy_shutdown() will disable WOL
> interrupt as well and cause the PHY WOL not able to trigger.

This sounds like a firmware problem. If linux is shutdown, linux is
not controlling the hardware, the firmware is. So the firmware should
probably be configuring the PHY after Linux powers off.

If Linux is suspended, then Linux is still controlling the hardware,
and it will not shutdown the PHY.

Andrew