2013-08-19 10:13:39

by Matus Ujhelyi

[permalink] [raw]
Subject: [PATCH] net: cpsw: Add support for wake-on-lan for cpsw

From: Matus Ujhelyi <[email protected]>

Signed-off-by: Matus Ujhelyi <[email protected]>
---
drivers/net/ethernet/ti/cpsw.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c
index 22a7a43..f59302e 100644
--- a/drivers/net/ethernet/ti/cpsw.c
+++ b/drivers/net/ethernet/ti/cpsw.c
@@ -1416,6 +1416,29 @@ static int cpsw_set_settings(struct net_device *ndev, struct ethtool_cmd *ecmd)
return -EOPNOTSUPP;
}

+static void
+cpsw_get_wol(struct net_device *ndev, struct ethtool_wolinfo *wol)
+{
+ struct cpsw_priv *priv = netdev_priv(ndev);
+ int slave_no = cpsw_slave_index(priv);
+ wol->supported = 0;
+ wol->wolopts = 0;
+ if (priv->slaves[slave_no].phy)
+ phy_ethtool_get_wol(priv->slaves[slave_no].phy, wol);
+
+}
+
+static int
+cpsw_set_wol(struct net_device *ndev, struct ethtool_wolinfo *wol)
+{
+ struct cpsw_priv *priv = netdev_priv(ndev);
+ int slave_no = cpsw_slave_index(priv);
+ if (priv->slaves[slave_no].phy)
+ return phy_ethtool_set_wol(priv->slaves[slave_no].phy, wol);
+ else
+ return -EOPNOTSUPP;
+}
+
static const struct ethtool_ops cpsw_ethtool_ops = {
.get_drvinfo = cpsw_get_drvinfo,
.get_msglevel = cpsw_get_msglevel,
@@ -1426,6 +1449,8 @@ static const struct ethtool_ops cpsw_ethtool_ops = {
.set_settings = cpsw_set_settings,
.get_coalesce = cpsw_get_coalesce,
.set_coalesce = cpsw_set_coalesce,
+ .get_wol = cpsw_get_wol,
+ .set_wol = cpsw_set_wol,
};

static void cpsw_slave_init(struct cpsw_slave *slave, struct cpsw_priv *priv,
--
1.7.9.5


2013-08-19 10:25:55

by Mugunthan V N

[permalink] [raw]
Subject: Re: [PATCH] net: cpsw: Add support for wake-on-lan for cpsw

On Monday 19 August 2013 03:43 PM, [email protected] wrote:
> From: Matus Ujhelyi <[email protected]>
>
> Signed-off-by: Matus Ujhelyi <[email protected]>
> ---
Please add some commit description.

Regards
Mugunthan V N

2013-08-19 18:56:52

by Sergei Shtylyov

[permalink] [raw]
Subject: Re: [PATCH] net: cpsw: Add support for wake-on-lan for cpsw

Hello.

On 08/19/2013 02:13 PM, [email protected] wrote:

> From: Matus Ujhelyi <[email protected]>

> Signed-off-by: Matus Ujhelyi <[email protected]>
> ---
> drivers/net/ethernet/ti/cpsw.c | 25 +++++++++++++++++++++++++
> 1 file changed, 25 insertions(+)

> diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c
> index 22a7a43..f59302e 100644
> --- a/drivers/net/ethernet/ti/cpsw.c
> +++ b/drivers/net/ethernet/ti/cpsw.c
> @@ -1416,6 +1416,29 @@ static int cpsw_set_settings(struct net_device *ndev, struct ethtool_cmd *ecmd)
> return -EOPNOTSUPP;
> }
>
> +static void
> +cpsw_get_wol(struct net_device *ndev, struct ethtool_wolinfo *wol)
> +{
> + struct cpsw_priv *priv = netdev_priv(ndev);
> + int slave_no = cpsw_slave_index(priv);

Empty line wouldn't hurt here, after declaration.

> + wol->supported = 0;
> + wol->wolopts = 0;
> + if (priv->slaves[slave_no].phy)
> + phy_ethtool_get_wol(priv->slaves[slave_no].phy, wol);
> +
> +}
> +
> +static int
> +cpsw_set_wol(struct net_device *ndev, struct ethtool_wolinfo *wol)
> +{
> + struct cpsw_priv *priv = netdev_priv(ndev);
> + int slave_no = cpsw_slave_index(priv);

Here too...

> + if (priv->slaves[slave_no].phy)
> + return phy_ethtool_set_wol(priv->slaves[slave_no].phy, wol);
> + else
> + return -EOPNOTSUPP;
> +}
> +
> static const struct ethtool_ops cpsw_ethtool_ops = {
> .get_drvinfo = cpsw_get_drvinfo,
> .get_msglevel = cpsw_get_msglevel,

WBR, Sergei