Lines Matching full:wol
883 int bcm_phy_set_wol(struct phy_device *phydev, struct ethtool_wolinfo *wol) in bcm_phy_set_wol() argument
894 if (wol->wolopts & ~BCM54XX_WOL_SUPPORTED_MASK) in bcm_phy_set_wol()
900 BUILD_BUG_ON(sizeof(wol->sopass) != ETH_ALEN); in bcm_phy_set_wol()
913 if (!wol->wolopts) { in bcm_phy_set_wol()
950 if (wol->wolopts & WAKE_MCAST) { in bcm_phy_set_wol()
956 if (wol->wolopts & WAKE_UCAST) { in bcm_phy_set_wol()
958 } else if (wol->wolopts & WAKE_BCAST) { in bcm_phy_set_wol()
960 } else if (wol->wolopts & WAKE_MAGICSECURE) { in bcm_phy_set_wol()
961 ether_addr_copy(da, wol->sopass); in bcm_phy_set_wol()
962 } else if (wol->wolopts & WAKE_MAGIC) { in bcm_phy_set_wol()
969 if (wol->wolopts & (WAKE_MAGIC | WAKE_MAGICSECURE)) { in bcm_phy_set_wol()
989 if (wol->wolopts & WAKE_MAGICSECURE) { in bcm_phy_set_wol()
996 if (wol->wolopts & WAKE_MAGIC) in bcm_phy_set_wol()
1011 /* Enable WOL interrupt on LED4 */ in bcm_phy_set_wol()
1033 void bcm_phy_get_wol(struct phy_device *phydev, struct ethtool_wolinfo *wol) in bcm_phy_get_wol() argument
1041 wol->supported = BCM54XX_WOL_SUPPORTED_MASK; in bcm_phy_get_wol()
1042 wol->wolopts = 0; in bcm_phy_get_wol()
1065 wol->wolopts |= WAKE_BCAST; in bcm_phy_get_wol()
1067 wol->wolopts |= WAKE_MCAST; in bcm_phy_get_wol()
1069 wol->wolopts |= WAKE_UCAST; in bcm_phy_get_wol()
1074 wol->wolopts |= WAKE_MAGIC; in bcm_phy_get_wol()
1077 wol->wolopts |= WAKE_MAGICSECURE; in bcm_phy_get_wol()
1078 memcpy(wol->sopass, da, sizeof(da)); in bcm_phy_get_wol()