lkml.org 
[lkml]   [2016]   [Mar]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 2/2] net/forcedeth: add wol p support
one note though:

I am not _really_ sure it is the right flag. I've contacted somebody at nvidia
and asked for documentation regarding this mmio reg.

I still get some random wakeups and I don't know where they are comming from.

> Karol Herbst <git@karolherbst.de> hat am 10. März 2016 um 15:58 geschrieben:
>
>
> REd on my mac mini. No idea if that also works on other ethernet cards
> supported by forcedeth, but I doubt anybody cares at all, otherwise somebody
> else would have REd it already.
>
> Signed-off-by: Karol Herbst <nouveau@karolherbst.de>
> ---
> drivers/net/ethernet/nvidia/forcedeth.c | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/nvidia/forcedeth.c
> b/drivers/net/ethernet/nvidia/forcedeth.c
> index bdce33b..8e4e894 100644
> --- a/drivers/net/ethernet/nvidia/forcedeth.c
> +++ b/drivers/net/ethernet/nvidia/forcedeth.c
> @@ -291,6 +291,7 @@ enum {
> #define NVREG_WAKEUPFLAGS_ACCEPT_WAKEUPPAT 0x02
> #define NVREG_WAKEUPFLAGS_ACCEPT_LINKCHANGE 0x04
> #define NVREG_WAKEUPFLAGS_ENABLE_G 0x01111
> +#define NVREG_WAKEUPFLAGS_ENABLE_P 0x12000
>
> NvRegMgmtUnitGetVersion = 0x204,
> #define NVREG_MGMTUNITGETVERSION 0x01
> @@ -4216,12 +4217,14 @@ static void nv_get_drvinfo(struct net_device *dev,
> struct ethtool_drvinfo *info)
> static void nv_get_wol(struct net_device *dev, struct ethtool_wolinfo
> *wolinfo)
> {
> struct fe_priv *np = netdev_priv(dev);
> - wolinfo->supported = WAKE_MAGIC;
> + wolinfo->supported = WAKE_MAGIC | WAKE_PHY;
>
> spin_lock_irq(&np->lock);
> wolinfo->wolopts = 0;
> if (np->wolenabled & WAKE_MAGIC)
> wolinfo->wolopts |= WAKE_MAGIC;
> + if (np->wolenabled & WAKE_PHY)
> + wolinfo->wolopts |= WAKE_PHY;
> spin_unlock_irq(&np->lock);
> }
>
> @@ -4236,6 +4239,10 @@ static int nv_set_wol(struct net_device *dev, struct
> ethtool_wolinfo *wolinfo)
> np->wolenabled |= WAKE_MAGIC;
> np->wol_flags |= NVREG_WAKEUPFLAGS_ENABLE_G;
> }
> + if (wolinfo->wolopts & WAKE_PHY) {
> + np->wolenabled |= WAKE_PHY;
> + np->wol_flags |= NVREG_WAKEUPFLAGS_ENABLE_P;
> + }
> if (netif_running(dev)) {
> spin_lock_irq(&np->lock);
> writel(np->wol_flags, base + NvRegWakeUpFlags);
> --
> 2.7.2
>

\
 
 \ /
  Last update: 2016-03-10 17:41    [W:0.135 / U:1.652 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site