Lines Matching +full:wakeup +full:- +full:event +full:- +full:action
2 * Copyright (c) 2008-2011 Atheros Communications Inc.
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
26 tsf += TU_TO_USEC(FUDGE + ah->config.sw_beacon_response_time); in ath9k_get_next_tbtt()
30 return (u32) tsf + divisor - offset; in ath9k_get_next_tbtt()
36 * handling, programs the sleep registers so the hardware will wakeup in
50 if (!test_bit(ATH_OP_PRIM_STA_VIF, &common->op_flags)) { in ath9k_cmn_beacon_config_sta()
53 return -EPERM; in ath9k_cmn_beacon_config_sta()
57 conf->intval = conf->beacon_interval; in ath9k_cmn_beacon_config_sta()
63 dtim_intval = conf->intval * conf->dtim_period; in ath9k_cmn_beacon_config_sta()
70 conf->nexttbtt = ath9k_get_next_tbtt(ah, tsf, conf->intval); in ath9k_cmn_beacon_config_sta()
72 bs->bs_intval = TU_TO_USEC(conf->intval); in ath9k_cmn_beacon_config_sta()
73 bs->bs_dtimperiod = conf->dtim_period * bs->bs_intval; in ath9k_cmn_beacon_config_sta()
74 bs->bs_nexttbtt = conf->nexttbtt; in ath9k_cmn_beacon_config_sta()
75 bs->bs_nextdtim = conf->nexttbtt; in ath9k_cmn_beacon_config_sta()
76 if (conf->dtim_period > 1) in ath9k_cmn_beacon_config_sta()
77 bs->bs_nextdtim = ath9k_get_next_tbtt(ah, tsf, dtim_intval); in ath9k_cmn_beacon_config_sta()
85 bs->bs_bmissthreshold = DIV_ROUND_UP(conf->bmiss_timeout, conf->intval); in ath9k_cmn_beacon_config_sta()
86 if (bs->bs_bmissthreshold > 15) in ath9k_cmn_beacon_config_sta()
87 bs->bs_bmissthreshold = 15; in ath9k_cmn_beacon_config_sta()
88 else if (bs->bs_bmissthreshold <= 0) in ath9k_cmn_beacon_config_sta()
89 bs->bs_bmissthreshold = 1; in ath9k_cmn_beacon_config_sta()
100 bs->bs_sleepduration = TU_TO_USEC(roundup(IEEE80211_MS_TO_TU(100), in ath9k_cmn_beacon_config_sta()
101 conf->intval)); in ath9k_cmn_beacon_config_sta()
102 if (bs->bs_sleepduration > bs->bs_dtimperiod) in ath9k_cmn_beacon_config_sta()
103 bs->bs_sleepduration = bs->bs_dtimperiod; in ath9k_cmn_beacon_config_sta()
106 bs->bs_tsfoor_threshold = ATH9K_TSFOOR_THRESHOLD; in ath9k_cmn_beacon_config_sta()
109 bs->bs_bmissthreshold, bs->bs_sleepduration); in ath9k_cmn_beacon_config_sta()
119 conf->intval = TU_TO_USEC(conf->beacon_interval); in ath9k_cmn_beacon_config_adhoc()
121 if (conf->ibss_creator) in ath9k_cmn_beacon_config_adhoc()
122 conf->nexttbtt = conf->intval; in ath9k_cmn_beacon_config_adhoc()
124 conf->nexttbtt = ath9k_get_next_tbtt(ah, ath9k_hw_gettsf64(ah), in ath9k_cmn_beacon_config_adhoc()
125 conf->beacon_interval); in ath9k_cmn_beacon_config_adhoc()
127 if (conf->enable_beacon) in ath9k_cmn_beacon_config_adhoc()
128 ah->imask |= ATH9K_INT_SWBA; in ath9k_cmn_beacon_config_adhoc()
130 ah->imask &= ~ATH9K_INT_SWBA; in ath9k_cmn_beacon_config_adhoc()
134 (conf->enable_beacon) ? "Enable" : "Disable", in ath9k_cmn_beacon_config_adhoc()
135 conf->nexttbtt, conf->intval, conf->beacon_interval); in ath9k_cmn_beacon_config_adhoc()
140 * For multi-bss ap support beacons are either staggered evenly over N slots or
151 conf->intval = TU_TO_USEC(conf->beacon_interval); in ath9k_cmn_beacon_config_ap()
152 conf->intval /= bc_buf; in ath9k_cmn_beacon_config_ap()
153 conf->nexttbtt = ath9k_get_next_tbtt(ah, ath9k_hw_gettsf64(ah), in ath9k_cmn_beacon_config_ap()
154 conf->beacon_interval); in ath9k_cmn_beacon_config_ap()
156 if (conf->enable_beacon) in ath9k_cmn_beacon_config_ap()
157 ah->imask |= ATH9K_INT_SWBA; in ath9k_cmn_beacon_config_ap()
159 ah->imask &= ~ATH9K_INT_SWBA; in ath9k_cmn_beacon_config_ap()
163 (conf->enable_beacon) ? "Enable" : "Disable", in ath9k_cmn_beacon_config_ap()
164 conf->nexttbtt, conf->intval, conf->beacon_interval); in ath9k_cmn_beacon_config_ap()