Hi Andrew,

> -----Original Message-----
> From: Andrew Lunn <and...@lunn.ch>
> Sent: 2021年4月7日 20:35
> To: Joakim Zhang <qiangqing.zh...@nxp.com>
> Cc: peppe.cavall...@st.com; alexandre.tor...@st.com;
> joab...@synopsys.com; da...@davemloft.net; k...@kernel.org;
> f.faine...@gmail.com; netdev@vger.kernel.org; dl-linux-imx
> <linux-...@nxp.com>; jisheng.zh...@synaptics.com
> Subject: Re: [PATCH net] net: stmmac: fix MAC WoL unwork if PHY doesn't
> support WoL
> 
> On Wed, Apr 07, 2021 at 06:44:04PM +0800, Joakim Zhang wrote:
> > Both get and set WoL will check device_can_wakeup(), if MAC supports
> > PMT, it will set device wakeup capability. After commit 1d8e5b0f3f2c ("net:
> > stmmac: Support WOL with phy"), device wakeup capability will be
> > overwrite in stmmac_init_phy() according to phy's Wol feature. If phy
> > doesn't support WoL, then MAC will lose wakeup capability. To fix this
> > issue, only overwrite device wakeup capability when MAC doesn't
> > support PMT.
> >
> > Fixes: commit 1d8e5b0f3f2c ("net: stmmac: Support WOL with phy")
> > Signed-off-by: Joakim Zhang <qiangqing.zh...@nxp.com>
> > ---
> >  drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 4 +++-
> >  1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> > b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> > index 208cae344ffa..f46d9c69168f 100644
> > --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> > +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> > @@ -1103,7 +1103,9 @@ static int stmmac_init_phy(struct net_device
> *dev)
> >     }
> >
> >     phylink_ethtool_get_wol(priv->phylink, &wol);
> > -   device_set_wakeup_capable(priv->device, !!wol.supported);
> > +
> > +   if (!priv->plat->pmt)
> > +           device_set_wakeup_capable(priv->device, !!wol.supported);
> 
> It seems like a better fix would be to call stmmac_get_wol(), That should set
> wol taking into account both pmt and phy.  But i would also say
> stmmac_get_wol() and stmmac_set_wol() are broken. They should combine
> capabilities, not be either pmt or phy.

Yes, they should combine MAC and PHY WoL capabilities, rather than check pmt or 
phy. I will improve and repost it.

Best Regards,
Joakim Zhang
>        Andrew

Reply via email to