* [PATCHv2 net-next] net: mvneta: implement .set_wol and .get_wol
@ 2017-01-23 2:44 Jingju Hou
2017-01-23 2:52 ` Jisheng Zhang
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Jingju Hou @ 2017-01-23 2:44 UTC (permalink / raw)
To: davem; +Cc: jszhang, thomas.petazzoni, netdev, Jingju Hou
The mvneta itself does not support WOL, but the PHY might.
So pass the calls to the PHY
Signed-off-by: Jingju Hou <houjingj@marvell.com>
---
Since v1:
- using phy_dev member in struct net_device
drivers/net/ethernet/marvell/mvneta.c | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c
index e05e227..78869fa 100644
--- a/drivers/net/ethernet/marvell/mvneta.c
+++ b/drivers/net/ethernet/marvell/mvneta.c
@@ -3908,6 +3908,25 @@ static int mvneta_ethtool_get_rxfh(struct net_device *dev, u32 *indir, u8 *key,
return 0;
}
+static void
+mvneta_ethtool_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
+{
+ wol->supported = 0;
+ wol->wolopts = 0;
+
+ if (dev->phy_dev)
+ return phy_ethtool_get_wol(dev->phy_dev, wol);
+}
+
+static int
+mvneta_ethtool_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
+{
+ if (!dev->phy_dev)
+ return -EOPNOTSUPP;
+
+ return phy_ethtool_set_wol(dev->phy_dev, wol);
+}
+
static const struct net_device_ops mvneta_netdev_ops = {
.ndo_open = mvneta_open,
.ndo_stop = mvneta_stop,
@@ -3937,6 +3956,8 @@ static int mvneta_ethtool_get_rxfh(struct net_device *dev, u32 *indir, u8 *key,
.set_rxfh = mvneta_ethtool_set_rxfh,
.get_link_ksettings = phy_ethtool_get_link_ksettings,
.set_link_ksettings = mvneta_ethtool_set_link_ksettings,
+ .get_wol = mvneta_ethtool_get_wol,
+ .set_wol = mvneta_ethtool_set_wol,
};
/* Initialize hw */
--
1.9.1
^ permalink raw reply related [flat|nested] 5+ messages in thread* Re: [PATCHv2 net-next] net: mvneta: implement .set_wol and .get_wol
2017-01-23 2:44 [PATCHv2 net-next] net: mvneta: implement .set_wol and .get_wol Jingju Hou
@ 2017-01-23 2:52 ` Jisheng Zhang
2017-01-23 4:02 ` kbuild test robot
2017-01-23 4:04 ` kbuild test robot
2 siblings, 0 replies; 5+ messages in thread
From: Jisheng Zhang @ 2017-01-23 2:52 UTC (permalink / raw)
To: Jingju Hou; +Cc: davem, thomas.petazzoni, netdev
On Mon, 23 Jan 2017 10:44:07 +0800
Jingju Hou <houjingj@marvell.com> wrote:
> The mvneta itself does not support WOL, but the PHY might.
> So pass the calls to the PHY
>
> Signed-off-by: Jingju Hou <houjingj@marvell.com>
Reviewed-by: Jisheng Zhang <jszhang@marvell.com>
> ---
> Since v1:
> - using phy_dev member in struct net_device
>
> drivers/net/ethernet/marvell/mvneta.c | 21 +++++++++++++++++++++
> 1 file changed, 21 insertions(+)
>
> diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c
> index e05e227..78869fa 100644
> --- a/drivers/net/ethernet/marvell/mvneta.c
> +++ b/drivers/net/ethernet/marvell/mvneta.c
> @@ -3908,6 +3908,25 @@ static int mvneta_ethtool_get_rxfh(struct net_device *dev, u32 *indir, u8 *key,
> return 0;
> }
>
> +static void
> +mvneta_ethtool_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
> +{
> + wol->supported = 0;
> + wol->wolopts = 0;
> +
> + if (dev->phy_dev)
> + return phy_ethtool_get_wol(dev->phy_dev, wol);
> +}
> +
> +static int
> +mvneta_ethtool_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
> +{
> + if (!dev->phy_dev)
> + return -EOPNOTSUPP;
> +
> + return phy_ethtool_set_wol(dev->phy_dev, wol);
> +}
> +
> static const struct net_device_ops mvneta_netdev_ops = {
> .ndo_open = mvneta_open,
> .ndo_stop = mvneta_stop,
> @@ -3937,6 +3956,8 @@ static int mvneta_ethtool_get_rxfh(struct net_device *dev, u32 *indir, u8 *key,
> .set_rxfh = mvneta_ethtool_set_rxfh,
> .get_link_ksettings = phy_ethtool_get_link_ksettings,
> .set_link_ksettings = mvneta_ethtool_set_link_ksettings,
> + .get_wol = mvneta_ethtool_get_wol,
> + .set_wol = mvneta_ethtool_set_wol,
> };
>
> /* Initialize hw */
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCHv2 net-next] net: mvneta: implement .set_wol and .get_wol
2017-01-23 2:44 [PATCHv2 net-next] net: mvneta: implement .set_wol and .get_wol Jingju Hou
2017-01-23 2:52 ` Jisheng Zhang
@ 2017-01-23 4:02 ` kbuild test robot
2017-01-23 4:04 ` kbuild test robot
2 siblings, 0 replies; 5+ messages in thread
From: kbuild test robot @ 2017-01-23 4:02 UTC (permalink / raw)
To: Jingju Hou
Cc: kbuild-all, davem, jszhang, thomas.petazzoni, netdev, Jingju Hou
[-- Attachment #1: Type: text/plain, Size: 2471 bytes --]
Hi Jingju,
[auto build test ERROR on net-next/master]
url: https://github.com/0day-ci/linux/commits/Jingju-Hou/net-mvneta-implement-set_wol-and-get_wol/20170123-105218
config: ia64-allmodconfig (attached as .config)
compiler: ia64-linux-gcc (GCC) 6.2.0
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=ia64
All errors (new ones prefixed by >>):
drivers/net/ethernet/marvell/mvneta.c: In function 'mvneta_ethtool_get_wol':
>> drivers/net/ethernet/marvell/mvneta.c:3938:9: error: 'struct net_device' has no member named 'phy_dev'; did you mean 'phydev'?
if (dev->phy_dev)
^~
drivers/net/ethernet/marvell/mvneta.c:3939:33: error: 'struct net_device' has no member named 'phy_dev'; did you mean 'phydev'?
return phy_ethtool_get_wol(dev->phy_dev, wol);
^~
drivers/net/ethernet/marvell/mvneta.c:3939:10: warning: 'return' with a value, in function returning void
return phy_ethtool_get_wol(dev->phy_dev, wol);
^~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/marvell/mvneta.c:3933:1: note: declared here
mvneta_ethtool_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
^~~~~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/marvell/mvneta.c: In function 'mvneta_ethtool_set_wol':
drivers/net/ethernet/marvell/mvneta.c:3945:10: error: 'struct net_device' has no member named 'phy_dev'; did you mean 'phydev'?
if (!dev->phy_dev)
^~
drivers/net/ethernet/marvell/mvneta.c:3948:32: error: 'struct net_device' has no member named 'phy_dev'; did you mean 'phydev'?
return phy_ethtool_set_wol(dev->phy_dev, wol);
^~
drivers/net/ethernet/marvell/mvneta.c:3949:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
vim +3938 drivers/net/ethernet/marvell/mvneta.c
3932 static void
3933 mvneta_ethtool_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
3934 {
3935 wol->supported = 0;
3936 wol->wolopts = 0;
3937
> 3938 if (dev->phy_dev)
3939 return phy_ethtool_get_wol(dev->phy_dev, wol);
3940 }
3941
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 45821 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCHv2 net-next] net: mvneta: implement .set_wol and .get_wol
2017-01-23 2:44 [PATCHv2 net-next] net: mvneta: implement .set_wol and .get_wol Jingju Hou
2017-01-23 2:52 ` Jisheng Zhang
2017-01-23 4:02 ` kbuild test robot
@ 2017-01-23 4:04 ` kbuild test robot
2017-01-23 4:27 ` David Miller
2 siblings, 1 reply; 5+ messages in thread
From: kbuild test robot @ 2017-01-23 4:04 UTC (permalink / raw)
To: Jingju Hou
Cc: kbuild-all, davem, jszhang, thomas.petazzoni, netdev, Jingju Hou
[-- Attachment #1: Type: text/plain, Size: 2169 bytes --]
Hi Jingju,
[auto build test ERROR on net-next/master]
url: https://github.com/0day-ci/linux/commits/Jingju-Hou/net-mvneta-implement-set_wol-and-get_wol/20170123-105218
config: m68k-allyesconfig (attached as .config)
compiler: m68k-linux-gcc (GCC) 4.9.0
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=m68k
All errors (new ones prefixed by >>):
drivers/net/ethernet/marvell/mvneta.c: In function 'mvneta_ethtool_get_wol':
>> drivers/net/ethernet/marvell/mvneta.c:3938:9: error: 'struct net_device' has no member named 'phy_dev'
if (dev->phy_dev)
^
drivers/net/ethernet/marvell/mvneta.c:3939:33: error: 'struct net_device' has no member named 'phy_dev'
return phy_ethtool_get_wol(dev->phy_dev, wol);
^
drivers/net/ethernet/marvell/mvneta.c:3939:3: warning: 'return' with a value, in function returning void
return phy_ethtool_get_wol(dev->phy_dev, wol);
^
drivers/net/ethernet/marvell/mvneta.c: In function 'mvneta_ethtool_set_wol':
drivers/net/ethernet/marvell/mvneta.c:3945:10: error: 'struct net_device' has no member named 'phy_dev'
if (!dev->phy_dev)
^
drivers/net/ethernet/marvell/mvneta.c:3948:32: error: 'struct net_device' has no member named 'phy_dev'
return phy_ethtool_set_wol(dev->phy_dev, wol);
^
drivers/net/ethernet/marvell/mvneta.c:3949:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
vim +3938 drivers/net/ethernet/marvell/mvneta.c
3932 static void
3933 mvneta_ethtool_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
3934 {
3935 wol->supported = 0;
3936 wol->wolopts = 0;
3937
> 3938 if (dev->phy_dev)
3939 return phy_ethtool_get_wol(dev->phy_dev, wol);
3940 }
3941
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 39187 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2017-01-23 4:27 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-01-23 2:44 [PATCHv2 net-next] net: mvneta: implement .set_wol and .get_wol Jingju Hou
2017-01-23 2:52 ` Jisheng Zhang
2017-01-23 4:02 ` kbuild test robot
2017-01-23 4:04 ` kbuild test robot
2017-01-23 4:27 ` David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).