Re: [PATCHv2] net: cpsw: Add support for wake-on-lan for cpsw

From: Francois Romieu
Date: Mon Aug 19 2013 - 16:16:31 EST


ujhelyi.m@xxxxxxxxx <ujhelyi.m@xxxxxxxxx> :
[...]
> Some phy's can be configured to enable wake on lan (e.g. at803x or marvell 88E1318S).
> There is no way how to enable wol on CPSW with such connected phys. This patch
> adds this support. It is provided by calling the phy's related code.
>
> Tested on board with at8030x connected phy. Wol interrupt line is
> connected to GPIO0 on am335x.

This patch adds a feature. It isn't a bugfix. It should thus target
'net-next', not 'net' (it does not apply to net-next as of 2ff1cf12c9 btw).

>
> Signed-off-by: Matus Ujhelyi <ujhelyi.m@xxxxxxxxx>
> ---
> drivers/net/ethernet/ti/cpsw.c | 23 +++++++++++++++++++++++
> 1 file changed, 23 insertions(+)
>
> diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c
> index 22a7a43..fe8d973 100644
> --- a/drivers/net/ethernet/ti/cpsw.c
> +++ b/drivers/net/ethernet/ti/cpsw.c
> @@ -1416,6 +1416,27 @@ 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;

Variable declarations and code should be separated: please add an empty
line.

> + wol->wolopts = 0;
> + if (priv->slaves[slave_no].phy)
> + phy_ethtool_get_wol(priv->slaves[slave_no].phy, wol);
> +
> +}

Useless empty line.

> +
> +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)

Variable declarations and code should be separated: please add an empty
line.

> + 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 +1447,8 @@ static const struct ethtool_ops cpsw_ethtool_ops = {
> .set_settings = cpsw_set_settings,
> .get_coalesce = cpsw_get_coalesce,
^^^ tab
> .set_coalesce = cpsw_set_coalesce,
^^^ tab
> + .get_wol = cpsw_get_wol,
^^^^^^^^ spaces, please use tabs.
> + .set_wol = cpsw_set_wol,
^^^^^^^^ spaces, please use tabs.

--
Ueimor
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/