Lines Matching +full:save +full:- +full:mac +full:- +full:address

28 	.n_patterns = MAX_NUM_PATTERN - 2,
38 if (wowlan->disconnect) in ath9k_wow_map_triggers()
41 if (wowlan->magic_pkt) in ath9k_wow_map_triggers()
44 if (wowlan->n_patterns) in ath9k_wow_map_triggers()
52 struct ath_hw *ah = sc->sc_ah; in ath9k_wow_add_disassoc_deauth_pattern()
66 * +--------------+----------+---------+--------+--------+---- in ath9k_wow_add_disassoc_deauth_pattern()
68 * +--------------+----------+---------+--------+--------+---- in ath9k_wow_add_disassoc_deauth_pattern()
76 * -------------------- in ath9k_wow_add_disassoc_deauth_pattern()
80 * | x:x:x:x:x:x -- 22 bytes in ath9k_wow_add_disassoc_deauth_pattern()
83 * ---------------------- in ath9k_wow_add_disassoc_deauth_pattern()
87 * | x:x:x:x:x:x -- 22 bytes in ath9k_wow_add_disassoc_deauth_pattern()
102 * need not match the destination mac address, it can be a broadcast in ath9k_wow_add_disassoc_deauth_pattern()
103 * mac address or an unicast to this station in ath9k_wow_add_disassoc_deauth_pattern()
107 /* copy the source mac address */ in ath9k_wow_add_disassoc_deauth_pattern()
108 memcpy((dis_deauth_pattern + byte_cnt), common->curbssid, ETH_ALEN); in ath9k_wow_add_disassoc_deauth_pattern()
112 /* copy the bssid, its same as the source mac address */ in ath9k_wow_add_disassoc_deauth_pattern()
113 memcpy((dis_deauth_pattern + byte_cnt), common->curbssid, ETH_ALEN); in ath9k_wow_add_disassoc_deauth_pattern()
127 * for de-authenticate pattern, only the first byte of the frame in ath9k_wow_add_disassoc_deauth_pattern()
141 struct ath_hw *ah = sc->sc_ah; in ath9k_wow_add_pattern()
142 struct cfg80211_pkt_pattern *patterns = wowlan->patterns; in ath9k_wow_add_pattern()
148 for (i = 0; i < wowlan->n_patterns; i++) { in ath9k_wow_add_pattern()
170 struct ath_softc *sc = hw->priv; in ath9k_suspend()
171 struct ath_hw *ah = sc->sc_ah; in ath9k_suspend()
178 mutex_lock(&sc->mutex); in ath9k_suspend()
180 if (test_bit(ATH_OP_INVALID, &common->op_flags)) { in ath9k_suspend()
182 ret = -ENODEV; in ath9k_suspend()
188 ret = -EINVAL; in ath9k_suspend()
192 if (sc->cur_chan->nvifs > 1) { in ath9k_suspend()
199 if (test_bit(ATH_OP_MULTI_CHANNEL, &common->op_flags)) { in ath9k_suspend()
201 "Multi-channel WOW is not supported\n"); in ath9k_suspend()
207 if (!test_bit(ATH_OP_PRIM_STA_VIF, &common->op_flags)) { in ath9k_suspend()
247 spin_lock_bh(&sc->sc_pcu_lock); in ath9k_suspend()
250 * when we go to sleep. We save the current interrupt mask in ath9k_suspend()
253 sc->wow_intr_before_sleep = ah->imask; in ath9k_suspend()
254 ah->imask &= ~ATH9K_INT_GLOBAL; in ath9k_suspend()
256 ah->imask = ATH9K_INT_BMISS | ATH9K_INT_GLOBAL; in ath9k_suspend()
260 spin_unlock_bh(&sc->sc_pcu_lock); in ath9k_suspend()
266 synchronize_irq(sc->irq); in ath9k_suspend()
267 tasklet_kill(&sc->intr_tq); in ath9k_suspend()
274 set_bit(ATH_OP_WOW_ENABLED, &common->op_flags); in ath9k_suspend()
276 mutex_unlock(&sc->mutex); in ath9k_suspend()
282 struct ath_softc *sc = hw->priv; in ath9k_resume()
283 struct ath_hw *ah = sc->sc_ah; in ath9k_resume()
287 mutex_lock(&sc->mutex); in ath9k_resume()
291 spin_lock_bh(&sc->sc_pcu_lock); in ath9k_resume()
294 ah->imask = sc->wow_intr_before_sleep; in ath9k_resume()
298 spin_unlock_bh(&sc->sc_pcu_lock); in ath9k_resume()
306 clear_bit(ATH_OP_WOW_ENABLED, &common->op_flags); in ath9k_resume()
309 mutex_unlock(&sc->mutex); in ath9k_resume()
316 struct ath_softc *sc = hw->priv; in ath9k_set_wakeup()
317 struct ath_common *common = ath9k_hw_common(sc->sc_ah); in ath9k_set_wakeup()
319 mutex_lock(&sc->mutex); in ath9k_set_wakeup()
320 device_set_wakeup_enable(sc->dev, enabled); in ath9k_set_wakeup()
321 mutex_unlock(&sc->mutex); in ath9k_set_wakeup()
329 struct ath_softc *sc = hw->priv; in ath9k_init_wow()
330 struct ath_hw *ah = sc->sc_ah; in ath9k_init_wow()
332 if ((sc->driver_data & ATH9K_PCI_WOW) || sc->force_wow) { in ath9k_init_wow()
334 hw->wiphy->wowlan = &ath9k_wowlan_support; in ath9k_init_wow()
336 hw->wiphy->wowlan = &ath9k_wowlan_support_legacy; in ath9k_init_wow()
338 device_init_wakeup(sc->dev, 1); in ath9k_init_wow()
344 struct ath_softc *sc = hw->priv; in ath9k_deinit_wow()
346 if ((sc->driver_data & ATH9K_PCI_WOW) || sc->force_wow) in ath9k_deinit_wow()
347 device_init_wakeup(sc->dev, 0); in ath9k_deinit_wow()