netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [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

* Re: [PATCHv2 net-next] net: mvneta: implement .set_wol and .get_wol
  2017-01-23  4:04 ` kbuild test robot
@ 2017-01-23  4:27   ` David Miller
  0 siblings, 0 replies; 5+ messages in thread
From: David Miller @ 2017-01-23  4:27 UTC (permalink / raw)
  To: lkp; +Cc: houjingj, kbuild-all, jszhang, thomas.petazzoni, netdev


The same build error exists in all submissions of your patch.

At this point you must absolutely reproduce this build failure
yourself, and stop submitting this patch until you can test that the
build failure is fixed.

^ 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).