[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <DB8PR04MB6795B8393BD4ACB99D8F3F15E6739@DB8PR04MB6795.eurprd04.prod.outlook.com>
Date: Fri, 9 Apr 2021 08:19:33 +0000
From: Joakim Zhang <qiangqing.zhang@....com>
To: Andrew Lunn <andrew@...n.ch>
CC: "peppe.cavallaro@...com" <peppe.cavallaro@...com>,
"alexandre.torgue@...com" <alexandre.torgue@...com>,
"joabreu@...opsys.com" <joabreu@...opsys.com>,
"davem@...emloft.net" <davem@...emloft.net>,
"kuba@...nel.org" <kuba@...nel.org>,
"f.fainelli@...il.com" <f.fainelli@...il.com>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
dl-linux-imx <linux-imx@....com>,
"Jisheng.Zhang@...aptics.com" <Jisheng.Zhang@...aptics.com>
Subject: RE: [PATCH net] net: stmmac: fix MAC WoL unwork if PHY doesn't
support WoL
Hi Andrew,
> -----Original Message-----
> From: Andrew Lunn <andrew@...n.ch>
> Sent: 2021年4月7日 20:35
> To: Joakim Zhang <qiangqing.zhang@....com>
> Cc: peppe.cavallaro@...com; alexandre.torgue@...com;
> joabreu@...opsys.com; davem@...emloft.net; kuba@...nel.org;
> f.fainelli@...il.com; netdev@...r.kernel.org; dl-linux-imx
> <linux-imx@....com>; Jisheng.Zhang@...aptics.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.zhang@....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
Powered by blists - more mailing lists