Lines Matching refs:mci
21 #include "mci.h"
26 ath_mci_find_profile(struct ath_mci_profile *mci,
31 if (list_empty(&mci->info))
34 list_for_each_entry(entry, &mci->info, list) {
42 struct ath_mci_profile *mci,
48 if ((mci->num_sco == ATH_MCI_MAX_SCO_PROFILE) &&
52 if (((NUM_PROF(mci) - mci->num_sco) == ATH_MCI_MAX_ACL_PROFILE) &&
61 INC_PROF(mci, info);
62 list_add_tail(&entry->list, &mci->info);
65 mci->voice_priority = voice_priority[info->voice_type];
67 mci->voice_priority = 110;
74 struct ath_mci_profile *mci,
80 DEC_PROF(mci, entry);
85 void ath_mci_flush_profile(struct ath_mci_profile *mci)
89 mci->aggr_limit = 0;
90 mci->num_mgmt = 0;
92 if (list_empty(&mci->info))
95 list_for_each_entry_safe(info, tinfo, &mci->info, list) {
97 DEC_PROF(mci, info);
104 struct ath_mci_profile *mci = &btcoex->mci;
115 (!mci->aggr_limit || (mci->aggr_limit > (2 * wlan_airtime))))
116 mci->aggr_limit = 2 * wlan_airtime;
123 struct ath_mci_profile *mci = &btcoex->mci;
124 struct ath9k_hw_mci *mci_hw = &sc->sc_ah->btcoex_hw.mci;
126 u32 num_profile = NUM_PROF(mci);
131 mci->aggr_limit = 0;
134 if (NUM_PROF(mci))
137 btcoex->bt_stomp_type = mci->num_mgmt ? ATH_BTCOEX_STOMP_ALL :
141 info = list_first_entry(&mci->info,
144 if (mci->num_sco) {
146 mci->aggr_limit = 8;
148 mci->aggr_limit = 6;
151 mci->aggr_limit = 6;
154 mci->aggr_limit);
155 } else if (mci->num_pan || mci->num_other_acl) {
165 } else if (mci->num_hid) {
167 mci->aggr_limit = 6;
173 if (mci->num_hid == 2)
175 mci->aggr_limit = 6;
180 mci->aggr_limit = 4;
199 btcoex->duty_cycle += (mci->num_bdr ? ATH_MCI_BDR_DUTY_CYCLE : 0);
214 struct ath9k_hw_mci *mci_hw = &ah->btcoex_hw.mci;
259 struct ath_mci_profile *mci = &btcoex->mci;
263 if (mci->num_mgmt) {
265 if (!mci->num_pan && !mci->num_other_acl)
274 if (mci->num_sco)
275 ath_mci_update_stomp_txprio(mci->voice_priority,
277 if (mci->num_other_acl)
279 if (mci->num_a2dp)
281 if (mci->num_hid)
283 if (mci->num_pan)
300 struct ath_mci_profile *mci = &btcoex->mci;
303 entry = ath_mci_find_profile(mci, info);
314 DEC_PROF(mci, entry);
315 INC_PROF(mci, info);
321 if (!entry && !ath_mci_add_profile(common, mci, info))
324 ath_mci_del_profile(common, mci, entry);
334 struct ath_mci_profile *mci = &btcoex->mci;
336 int i = 0, old_num_mgmt = mci->num_mgmt;
343 if (ath_mci_find_profile(mci, &info))
350 __set_bit(status->conn_handle, mci->status);
352 __clear_bit(status->conn_handle, mci->status);
354 mci->num_mgmt = 0;
356 if (test_bit(i, mci->status))
357 mci->num_mgmt++;
361 if (old_num_mgmt != mci->num_mgmt)
379 ath_mci_flush_profile(&sc->btcoex.mci);
437 struct ath_mci_coex *mci = &sc->mci_coex;
438 struct ath_mci_buf *buf = &mci->sched_buf;
453 mci->sched_buf.bf_len = ATH_MCI_SCHED_BUF_SIZE;
455 mci->gpm_buf.bf_len = ATH_MCI_GPM_BUF_SIZE;
456 mci->gpm_buf.bf_addr = mci->sched_buf.bf_addr + mci->sched_buf.bf_len;
457 mci->gpm_buf.bf_paddr = mci->sched_buf.bf_paddr + mci->sched_buf.bf_len;
459 ret = ar9003_mci_setup(sc->sc_ah, mci->gpm_buf.bf_paddr,
460 mci->gpm_buf.bf_addr, (mci->gpm_buf.bf_len >> 4),
461 mci->sched_buf.bf_paddr);
485 struct ath_mci_coex *mci = &sc->mci_coex;
488 struct ath9k_hw_mci *mci_hw = &ah->btcoex_hw.mci;
561 pgpm = mci->gpm_buf.bf_addr;
645 struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
687 mci->wlan_channels[i] = channelmap[i];
696 struct ath9k_hw_mci *mci_hw = &sc->sc_ah->btcoex_hw.mci;
729 struct ath_mci_profile *mci = &btcoex->mci;
731 if (!mci->num_sco && !mci->num_a2dp)
745 struct ath9k_hw_mci *mci_hw = &sc->sc_ah->btcoex_hw.mci;