Lines Matching full:wol
4679 /* Wake-On-Lan (WoL) */
4698 struct al_eth_wol_params *wol) in al_eth_wol_enable() argument
4702 if (wol->int_mask & AL_ETH_WOL_INT_MAGIC_PSWD) { in al_eth_wol_enable()
4703 al_assert(wol->pswd != NULL); in al_eth_wol_enable()
4705 al_eth_byte_arr_to_reg(®, &wol->pswd[0], 4); in al_eth_wol_enable()
4706 al_reg_write32(&adapter->ec_regs_base->wol.magic_pswd_l, reg); in al_eth_wol_enable()
4708 al_eth_byte_arr_to_reg(®, &wol->pswd[4], 2); in al_eth_wol_enable()
4709 al_reg_write32(&adapter->ec_regs_base->wol.magic_pswd_h, reg); in al_eth_wol_enable()
4712 if (wol->int_mask & AL_ETH_WOL_INT_IPV4) { in al_eth_wol_enable()
4713 al_assert(wol->ipv4 != NULL); in al_eth_wol_enable()
4715 al_eth_byte_arr_to_reg(®, &wol->ipv4[0], 4); in al_eth_wol_enable()
4716 al_reg_write32(&adapter->ec_regs_base->wol.ipv4_dip, reg); in al_eth_wol_enable()
4719 if (wol->int_mask & AL_ETH_WOL_INT_IPV6) { in al_eth_wol_enable()
4720 al_assert(wol->ipv6 != NULL); in al_eth_wol_enable()
4722 al_eth_byte_arr_to_reg(®, &wol->ipv6[0], 4); in al_eth_wol_enable()
4723 al_reg_write32(&adapter->ec_regs_base->wol.ipv6_dip_word0, reg); in al_eth_wol_enable()
4725 al_eth_byte_arr_to_reg(®, &wol->ipv6[4], 4); in al_eth_wol_enable()
4726 al_reg_write32(&adapter->ec_regs_base->wol.ipv6_dip_word1, reg); in al_eth_wol_enable()
4728 al_eth_byte_arr_to_reg(®, &wol->ipv6[8], 4); in al_eth_wol_enable()
4729 al_reg_write32(&adapter->ec_regs_base->wol.ipv6_dip_word2, reg); in al_eth_wol_enable()
4731 al_eth_byte_arr_to_reg(®, &wol->ipv6[12], 4); in al_eth_wol_enable()
4732 al_reg_write32(&adapter->ec_regs_base->wol.ipv6_dip_word3, reg); in al_eth_wol_enable()
4735 if (wol->int_mask & in al_eth_wol_enable()
4738 reg = ((uint32_t)wol->ethr_type2 << 16); in al_eth_wol_enable()
4739 reg |= wol->ethr_type1; in al_eth_wol_enable()
4741 al_reg_write32(&adapter->ec_regs_base->wol.ethertype, reg); in al_eth_wol_enable()
4745 al_assert((wol->forward_mask | wol->int_mask) == wol->int_mask); in al_eth_wol_enable()
4747 reg = ((uint32_t)wol->forward_mask << 16); in al_eth_wol_enable()
4748 reg |= wol->int_mask; in al_eth_wol_enable()
4749 al_reg_write32(&adapter->ec_regs_base->wol.wol_en, reg); in al_eth_wol_enable()
4757 al_reg_write32(&adapter->ec_regs_base->wol.wol_en, 0); in al_eth_wol_disable()