Lines Matching refs:btcoex

144 	struct ath_btcoex *btcoex = &sc->btcoex;
148 btcoex->bt_priority_cnt++;
150 if (time_after(jiffies, btcoex->bt_priority_time +
152 clear_bit(BT_OP_PRIORITY_DETECTED, &btcoex->op_flags);
153 clear_bit(BT_OP_SCAN, &btcoex->op_flags);
155 if (btcoex->bt_priority_cnt >= ATH_BT_CNT_SCAN_THRESHOLD) {
158 set_bit(BT_OP_PRIORITY_DETECTED, &btcoex->op_flags);
159 set_bit(BT_OP_SCAN, &btcoex->op_flags);
160 } else if (btcoex->bt_priority_cnt >= ATH_BT_CNT_THRESHOLD) {
163 set_bit(BT_OP_PRIORITY_DETECTED, &btcoex->op_flags);
166 btcoex->bt_priority_cnt = 0;
167 btcoex->bt_priority_time = jiffies;
173 struct ath_btcoex *btcoex = &sc->btcoex;
174 struct ath_mci_profile *mci = &btcoex->mci;
177 if (btcoex->bt_wait_time > ATH_BTCOEX_RX_WAIT_TIME) {
184 btcoex->bt_wait_time = 0;
196 struct ath_softc *sc = from_timer(sc, t, btcoex.period_timer);
198 struct ath_btcoex *btcoex = &sc->btcoex;
205 btcoex->bt_wait_time += btcoex->btcoex_period;
212 spin_lock_bh(&btcoex->btcoex_lock);
222 stomp_type = btcoex->bt_stomp_type;
223 timer_period = btcoex->btcoex_no_stomp;
226 if (test_bit(BT_OP_SCAN, &btcoex->op_flags)) {
228 timer_period = btcoex->btscan_no_stomp;
230 } else if (btcoex->stomp_audio >= 5) {
232 btcoex->stomp_audio = 0;
238 spin_unlock_bh(&btcoex->btcoex_lock);
240 if (btcoex->btcoex_period != btcoex->btcoex_no_stomp)
241 mod_timer(&btcoex->no_stomp_timer,
247 mod_timer(&btcoex->period_timer,
248 jiffies + msecs_to_jiffies(btcoex->btcoex_period));
257 struct ath_softc *sc = from_timer(sc, t, btcoex.no_stomp_timer);
259 struct ath_btcoex *btcoex = &sc->btcoex;
262 spin_lock_bh(&btcoex->btcoex_lock);
264 if (btcoex->bt_stomp_type == ATH_BTCOEX_STOMP_LOW ||
266 test_bit(BT_OP_SCAN, &btcoex->op_flags)))
268 else if (btcoex->bt_stomp_type == ATH_BTCOEX_STOMP_ALL)
272 spin_unlock_bh(&btcoex->btcoex_lock);
278 struct ath_btcoex *btcoex = &sc->btcoex;
280 btcoex->btcoex_period = ATH_BTCOEX_DEF_BT_PERIOD;
281 btcoex->btcoex_no_stomp = (100 - ATH_BTCOEX_DEF_DUTY_CYCLE) *
282 btcoex->btcoex_period / 100;
283 btcoex->btscan_no_stomp = (100 - ATH_BTCOEX_BTSCAN_DUTY_CYCLE) *
284 btcoex->btcoex_period / 100;
285 btcoex->bt_stomp_type = ATH_BTCOEX_STOMP_LOW;
287 timer_setup(&btcoex->period_timer, ath_btcoex_period_timer, 0);
288 timer_setup(&btcoex->no_stomp_timer, ath_btcoex_no_stomp_timer, 0);
290 spin_lock_init(&btcoex->btcoex_lock);
294 * (Re)start btcoex timers
298 struct ath_btcoex *btcoex = &sc->btcoex;
305 ath_dbg(ath9k_hw_common(ah), BTCOEX, "Starting btcoex timers\n");
308 del_timer_sync(&btcoex->no_stomp_timer);
310 btcoex->bt_priority_cnt = 0;
311 btcoex->bt_priority_time = jiffies;
312 clear_bit(BT_OP_PRIORITY_DETECTED, &btcoex->op_flags);
313 clear_bit(BT_OP_SCAN, &btcoex->op_flags);
315 mod_timer(&btcoex->period_timer, jiffies);
319 * Pause btcoex timer and bt duty cycle timer
323 struct ath_btcoex *btcoex = &sc->btcoex;
330 ath_dbg(ath9k_hw_common(ah), BTCOEX, "Stopping btcoex timers\n");
332 del_timer_sync(&btcoex->period_timer);
333 del_timer_sync(&btcoex->no_stomp_timer);
338 struct ath_btcoex *btcoex = &sc->btcoex;
340 del_timer_sync(&btcoex->no_stomp_timer);
345 struct ath_btcoex *btcoex = &sc->btcoex;
346 struct ath_mci_profile *mci = &sc->btcoex.mci;
351 else if (test_bit(BT_OP_PRIORITY_DETECTED, &btcoex->op_flags))
394 ath_mci_flush_profile(&sc->btcoex.mci);
435 sc->btcoex.duty_cycle = ATH_BTCOEX_DEF_DUTY_CYCLE;
436 INIT_LIST_HEAD(&sc->btcoex.mci.info);
454 struct ath_btcoex *btcoex = &sc->btcoex;
455 struct ath_mci_profile *mci = &btcoex->mci;
470 ATH_DUMP_BTCOEX("Stomp Type", btcoex->bt_stomp_type);
471 ATH_DUMP_BTCOEX("BTCoex Period (msec)", btcoex->btcoex_period);
472 ATH_DUMP_BTCOEX("Duty Cycle", btcoex->duty_cycle);
473 ATH_DUMP_BTCOEX("BT Wait time", btcoex->bt_wait_time);
475 ATH_DUMP_BTCOEX("Concurrent RSSI cnt", btcoex->rssi_count);
500 struct ath_btcoex *btcoex = &sc->btcoex;
503 ATH_DUMP_BTCOEX("Stomp Type", btcoex->bt_stomp_type);
504 ATH_DUMP_BTCOEX("BTCoex Period (msec)", btcoex->btcoex_period);
505 ATH_DUMP_BTCOEX("Duty Cycle", btcoex->duty_cycle);
506 ATH_DUMP_BTCOEX("BT Wait time", btcoex->bt_wait_time);