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