net: stmmac: Remove WAKE_MAGIC if HW shows no pmt_magic_frame
authorJisheng Zhang <Jisheng.Zhang@synaptics.com>
Mon, 27 Jul 2020 11:01:48 +0000 (19:01 +0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 29 Jul 2020 00:48:19 +0000 (17:48 -0700)
Remove WAKE_MAGIC from supported modes if the HW capability register
shows no support for pmt_magic_frame.

Signed-off-by: Jisheng Zhang <Jisheng.Zhang@synaptics.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c

index eae11c5850251e39b33a9c577df1cd83e94d77a1..9e0af626a24ae500787f2ff7587c2694a660dab3 100644 (file)
@@ -603,6 +603,8 @@ static void stmmac_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
        mutex_lock(&priv->lock);
        if (device_can_wakeup(priv->device)) {
                wol->supported = WAKE_MAGIC | WAKE_UCAST;
+               if (priv->hw_cap_support && !priv->dma_cap.pmt_magic_frame)
+                       wol->supported &= ~WAKE_MAGIC;
                wol->wolopts = priv->wolopts;
        }
        mutex_unlock(&priv->lock);