wlc 126 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c struct brcms_c_info *wlc; wlc 175 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c if (BRCMS_PHY_11N_CAP(ampdu->wlc->band)) wlc 183 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c struct brcms_c_info *wlc = ampdu->wlc; wlc 184 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c struct bcma_device *core = wlc->hw->d11core; wlc 186 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c wlc->pub->_ampdu = false; wlc 189 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c if (!(wlc->pub->_n_enab & SUPPORT_11N)) { wlc 191 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c wlc->pub->unit); wlc 196 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c wlc->pub->unit); wlc 199 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c wlc->pub->_ampdu = on; wlc 223 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c struct ampdu_info *brcms_c_ampdu_attach(struct brcms_c_info *wlc) wlc 232 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c ampdu->wlc = wlc; wlc 255 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c if (BRCMS_ISNPHY(wlc->band) && NREV_LT(wlc->band->phyrev, 2)) wlc 270 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c brcms_c_ampdu_set(ampdu, wlc->pub->_ampdu); wlc 315 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c brcms_c_scb_ampdu_update_config(ampdu, &du->wlc->pri_scb); wlc 356 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c static int brcms_c_ffpld_check_txfunfl(struct brcms_c_info *wlc, int fid) wlc 358 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c struct ampdu_info *ampdu = wlc->ampdu; wlc 370 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c cur_txunfl = brcms_b_read_shm(wlc->hw, wlc 375 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c brcms_dbg_ht(wlc->hw->d11core, wlc 385 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c if (brcms_b_xmtfifo_sz_get(wlc->hw, fid, &xmtfifo_sz)) wlc 398 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c brcms_dbg_ht(wlc->hw->d11core, "ampdu_count %d tx_underflows %d\n", wlc 452 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c brcms_dbg_ht(wlc->hw->d11core, wlc 478 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c brcms_c_ampdu_tx_operational(struct brcms_c_info *wlc, u8 tid, wlc 484 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c struct ampdu_info *ampdu = wlc->ampdu; wlc 485 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c struct scb *scb = &wlc->pri_scb; wlc 489 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c brcms_err(wlc->hw->d11core, "%s: Rejecting tid %d\n", wlc 502 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c struct brcms_c_info *wlc) wlc 504 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c session->wlc = wlc; wlc 520 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c struct brcms_c_info *wlc = session->wlc; wlc 521 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c struct ampdu_info *ampdu = wlc->ampdu; wlc 522 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c struct scb *scb = &wlc->pri_scb; wlc 628 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c struct brcms_c_info *wlc = session->wlc; wlc 629 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c struct ampdu_info *ampdu = wlc->ampdu; wlc 719 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c if (CHSPEC_SB_UPPER(wlc_phy_chanspec_get(wlc->band->pi))) wlc 744 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c brcms_c_rspec_to_rts_rspec(wlc, rspec, wlc 747 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c brcms_c_rspec_to_rts_rspec(wlc, rspec_fallback, wlc 757 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c u16 mmodelen = brcms_c_calc_lsig_len(wlc, rspec, wlc 763 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c u16 mmfbrlen = brcms_c_calc_lsig_len(wlc, rspec_fallback, wlc 790 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c durid = brcms_c_compute_rtscts_dur(wlc, use_cts, rts_rspec, wlc 795 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c durid = brcms_c_compute_rtscts_dur(wlc, use_cts, wlc 816 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c brcms_dbg_ht(wlc->hw->d11core, "wl%d: count %d ampdu_len %d\n", wlc 817 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c wlc->pub->unit, skb_queue_len(&session->skb_list), wlc 822 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c brcms_c_ampdu_rate_status(struct brcms_c_info *wlc, wlc 842 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c struct brcms_c_info *wlc = ampdu->wlc; wlc 903 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c brcms_dbg_ht(wlc->hw->d11core, wlc 906 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c wlc->default_bss->chanspec)); wlc 909 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c brcms_err(wlc->hw->d11core, wlc 926 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c if (brcms_c_ffpld_check_txfunfl(wlc, queue) > 0) wlc 931 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c brcms_dbg_ht(wlc->hw->d11core, wlc 946 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c trace_brcms_txdesc(&wlc->hw->d11core->dev, txh, sizeof(*txh)); wlc 957 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c brcms_dbg_ht(wlc->hw->d11core, wlc 971 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c brcms_c_ampdu_rate_status(wlc, tx_info, txs, wlc 981 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c ieee80211_tx_status_irqsafe(wlc->pub->ieee_hw, wlc 992 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c ret = brcms_c_txfifo(wlc, queue, p); wlc 1008 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c brcms_dbg_ht(wlc->hw->d11core, wlc 1011 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c ieee80211_tx_status_irqsafe(wlc->pub->ieee_hw, wlc 1022 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c p = dma_getnexttxp(wlc->hw->di[queue], DMA_RANGE_TRANSMITTED); wlc 1026 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c antselid = brcms_c_antsel_antsel2id(wlc->asi, mimoantsel); wlc 1034 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c struct brcms_c_info *wlc = ampdu->wlc; wlc 1049 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c s1 = bcma_read32(wlc->hw->d11core, D11REGOFFS(frmtxstatus)); wlc 1055 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c s1 = bcma_read32(wlc->hw->d11core, wlc 1059 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c s2 = bcma_read32(wlc->hw->d11core, D11REGOFFS(frmtxstatus2)); wlc 1074 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c trace_brcms_txdesc(&wlc->hw->d11core->dev, txh, wlc 1082 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c p = dma_getnexttxp(wlc->hw->di[queue], wlc 1088 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c void brcms_c_ampdu_macaddr_upd(struct brcms_c_info *wlc) wlc 1094 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c memcpy(template, wlc->pub->cur_etheraddr, ETH_ALEN); wlc 1095 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c brcms_b_write_template_ram(wlc->hw, (T_BA_TPL_BASE + 16), wlc 1100 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c bool brcms_c_aggregatable(struct brcms_c_info *wlc, u8 tid) wlc 1102 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c return wlc->ampdu->ini_enable[tid]; wlc 1107 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c struct brcms_c_info *wlc = ampdu->wlc; wlc 1115 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c brcms_b_write_shm(wlc->hw, M_MIMO_MAXSYM, MIMO_MAXSYM_MAX); wlc 1116 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c brcms_b_write_shm(wlc->hw, M_WATCHDOG_8TU, WATCHDOG_8TU_MAX); wlc 1118 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c brcms_b_write_shm(wlc->hw, M_MIMO_MAXSYM, MIMO_MAXSYM_DEF); wlc 1119 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c brcms_b_write_shm(wlc->hw, M_WATCHDOG_8TU, WATCHDOG_8TU_DEF); wlc 1140 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c void brcms_c_ampdu_flush(struct brcms_c_info *wlc, wlc 1143 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.c brcms_c_inval_dma_pkts(wlc->hw, sta, dma_cb_fn_ampdu); wlc 32 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.h struct brcms_c_info *wlc; wlc 41 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.h struct brcms_c_info *wlc); wlc 46 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.h struct ampdu_info *brcms_c_ampdu_attach(struct brcms_c_info *wlc); wlc 50 drivers/net/wireless/broadcom/brcm80211/brcmsmac/ampdu.h void brcms_c_ampdu_macaddr_upd(struct brcms_c_info *wlc); wlc 109 drivers/net/wireless/broadcom/brcm80211/brcmsmac/antsel.c struct antsel_info *brcms_c_antsel_attach(struct brcms_c_info *wlc) wlc 112 drivers/net/wireless/broadcom/brcm80211/brcmsmac/antsel.c struct ssb_sprom *sprom = &wlc->hw->d11core->bus->sprom; wlc 118 drivers/net/wireless/broadcom/brcm80211/brcmsmac/antsel.c asi->wlc = wlc; wlc 119 drivers/net/wireless/broadcom/brcm80211/brcmsmac/antsel.c asi->pub = wlc->pub; wlc 141 drivers/net/wireless/broadcom/brcm80211/brcmsmac/antsel.c brcms_err(wlc->hw->d11core, wlc 162 drivers/net/wireless/broadcom/brcm80211/brcmsmac/antsel.c brcms_b_antsel_type_set(wlc->hw, asi->antsel_type); wlc 203 drivers/net/wireless/broadcom/brcm80211/brcmsmac/antsel.c struct brcms_c_info *wlc = asi->wlc; wlc 212 drivers/net/wireless/broadcom/brcm80211/brcmsmac/antsel.c brcms_b_write_shm(wlc->hw, M_MIMO_ANTSEL_TXDFLT, mimo_antsel); wlc 224 drivers/net/wireless/broadcom/brcm80211/brcmsmac/antsel.c brcms_b_write_shm(wlc->hw, M_MIMO_ANTSEL_RXDFLT, mimo_antsel); wlc 20 drivers/net/wireless/broadcom/brcm80211/brcmsmac/antsel.h struct antsel_info *brcms_c_antsel_attach(struct brcms_c_info *wlc); wlc 112 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c struct brcms_c_info *wlc; wlc 312 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c struct brcms_c_info *wlc = wlc_cm->wlc; wlc 314 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c if ((wlc->pub->_n_enab & SUPPORT_11N) != wlc 315 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c wlc->protection->nmode_user) wlc 316 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c brcms_c_set_nmode(wlc); wlc 318 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c brcms_c_stf_ss_update(wlc, wlc->bandstate[BAND_2G_INDEX]); wlc 319 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c brcms_c_stf_ss_update(wlc, wlc->bandstate[BAND_5G_INDEX]); wlc 321 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c brcms_c_set_gmode(wlc, wlc->protection->gmode_user, false); wlc 326 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c struct brcms_cm_info *brcms_c_channel_mgr_attach(struct brcms_c_info *wlc) wlc 329 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c struct brcms_pub *pub = wlc->pub; wlc 330 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c struct ssb_sprom *sprom = &wlc->hw->d11core->bus->sprom; wlc 338 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c wlc_cm->wlc = wlc; wlc 339 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c wlc->cmi = wlc_cm; wlc 344 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c strncpy(wlc->pub->srom_ccode, ccode, ccode_len); wlc 357 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c strncpy(wlc->country_default, ccode, ccode_len); wlc 360 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c strncpy(wlc->autocountry_default, ccode, ccode_len); wlc 376 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c struct brcms_c_info *wlc = wlc_cm->wlc; wlc 377 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c struct ieee80211_channel *ch = wlc->pub->ieee_hw->conf.chandef.chan; wlc 388 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c brcms_c_set_gmode(wlc, GMODE_LEGACY_B, false); wlc 390 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c brcms_c_set_gmode(wlc, wlc->protection->gmode_user, false); wlc 392 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c brcms_b_set_chanspec(wlc->hw, chanspec, wlc 401 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c struct brcms_c_info *wlc = wlc_cm->wlc; wlc 402 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c struct ieee80211_channel *ch = wlc->pub->ieee_hw->conf.chandef.chan; wlc 423 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c band = wlc->bandstate[chspec_bandunit(chanspec)]; wlc 606 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c struct brcms_c_info *wlc = wlc_cm->wlc; wlc 611 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c brcms_err(wlc->hw->d11core, "wl%d: malformed chanspec 0x%x\n", wlc 612 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c wlc->pub->unit, chspec); wlc 616 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c if (CHANNEL_BANDUNIT(wlc_cm->wlc, channel) != wlc 700 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c struct brcms_c_info *wlc = wl->wlc; wlc 726 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c mboolclr(wlc->pub->radio_disabled, WL_RADIO_COUNTRY_DISABLE); wlc 728 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c mboolset(wlc->pub->radio_disabled, WL_RADIO_COUNTRY_DISABLE); wlc 729 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c brcms_err(wlc->hw->d11core, wlc 731 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c wlc->pub->unit, __func__, request->alpha2); wlc 734 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c if (wlc->pub->_nbands > 1 || wlc->band->bandtype == BRCM_BAND_2G) wlc 735 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c wlc_phy_chanspec_ch14_widefilter_set(wlc->band->pi, wlc 739 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c void brcms_c_regd_init(struct brcms_c_info *wlc) wlc 741 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c struct wiphy *wiphy = wlc->wiphy; wlc 742 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c const struct brcms_regd *regd = wlc->cmi->world_regd; wlc 750 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c for (band_idx = 0; band_idx < wlc->pub->_nbands; band_idx++) { wlc 751 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c band = wlc->bandstate[band_idx]; wlc 768 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c wlc->wiphy->reg_notifier = brcms_reg_notifier; wlc 769 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c wlc->wiphy->regulatory_flags |= REGULATORY_CUSTOM_REG | wlc 771 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.c wiphy_apply_custom_regulatory(wlc->wiphy, regd->regdomain); wlc 35 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.h struct brcms_cm_info *brcms_c_channel_mgr_attach(struct brcms_c_info *wlc); wlc 45 drivers/net/wireless/broadcom/brcm80211/brcmsmac/channel.h void brcms_c_regd_init(struct brcms_c_info *wlc); wlc 51 drivers/net/wireless/broadcom/brcm80211/brcmsmac/debug.c dev_name(&drvr->wlc->hw->d11core->dev), root_folder); wlc 68 drivers/net/wireless/broadcom/brcm80211/brcmsmac/debug.c struct brcms_hardware *hw = drvr->wlc->hw; wlc 91 drivers/net/wireless/broadcom/brcm80211/brcmsmac/debug.c drvr->wlc->hw->boardflags, drvr->wlc->hw->boardflags2, wlc 92 drivers/net/wireless/broadcom/brcm80211/brcmsmac/debug.c drvr->wlc->ucode_rev, hw->band->radiorev, wlc 106 drivers/net/wireless/broadcom/brcm80211/brcmsmac/debug.c stats = *(drvr->wlc->core->macstat_snapshot); wlc 193 drivers/net/wireless/broadcom/brcm80211/brcmsmac/debug.c struct device *dev = &drvr->wlc->hw->d11core->dev; wlc 548 drivers/net/wireless/broadcom/brcm80211/brcmsmac/dma.c struct dma_pub *dma_attach(char *name, struct brcms_c_info *wlc, wlc 553 drivers/net/wireless/broadcom/brcm80211/brcmsmac/dma.c struct si_pub *sih = wlc->hw->sih; wlc 554 drivers/net/wireless/broadcom/brcm80211/brcmsmac/dma.c struct bcma_device *core = wlc->hw->d11core; wlc 699 drivers/net/wireless/broadcom/brcm80211/brcmsmac/dma.c brcms_c_ampdu_reset_session(&di->ampdu_session, wlc); wlc 1322 drivers/net/wireless/broadcom/brcm80211/brcmsmac/dma.c trace_brcms_ampdu_session(&session->wlc->hw->d11core->dev, wlc 1341 drivers/net/wireless/broadcom/brcm80211/brcmsmac/dma.c brcms_c_ampdu_reset_session(session, session->wlc); wlc 1379 drivers/net/wireless/broadcom/brcm80211/brcmsmac/dma.c int dma_txfast(struct brcms_c_info *wlc, struct dma_pub *pub, wlc 77 drivers/net/wireless/broadcom/brcm80211/brcmsmac/dma.h extern struct dma_pub *dma_attach(char *name, struct brcms_c_info *wlc, wlc 89 drivers/net/wireless/broadcom/brcm80211/brcmsmac/dma.h int dma_txfast(struct brcms_c_info *wlc, struct dma_pub *pub, wlc 57 drivers/net/wireless/broadcom/brcm80211/brcmsmac/led.c struct bcma_drv_cc *cc_drv = &wl->wlc->hw->d11core->bus->drv_cc; wlc 59 drivers/net/wireless/broadcom/brcm80211/brcmsmac/led.c struct ssb_sprom *sprom = &wl->wlc->hw->d11core->bus->sprom; wlc 306 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c if (wl->wlc) { wlc 307 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_c_detach(wl->wlc); wlc 308 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c wl->wlc = NULL; wlc 337 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c if (wl->wlc) { wlc 412 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_err(wl->wlc->hw->d11core, "ops->tx called while down\n"); wlc 416 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c if (brcms_c_sendpkt_mac80211(wl->wlc, skb, hw)) wlc 429 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c err = brcms_request_fw(wl, wl->wlc->hw->d11core); wlc 455 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_err(wl->wlc->hw->d11core, "%s: brcms_up() returned %d\n", wlc 458 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c bcma_core_pci_power_save(wl->wlc->hw->d11core->bus, true); wlc 469 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c if (wl->wlc == NULL) wlc 473 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c status = brcms_c_chipmatch(wl->wlc->hw->d11core); wlc 476 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_err(wl->wlc->hw->d11core, wlc 481 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c bcma_core_pci_power_save(wl->wlc->hw->d11core->bus, false); wlc 498 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_err(wl->wlc->hw->d11core, wlc 505 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c wl->wlc->vif = vif; wlc 507 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_c_mute(wl->wlc, false); wlc 509 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_c_start_station(wl->wlc, vif->addr); wlc 511 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_c_start_ap(wl->wlc, vif->addr, vif->bss_conf.bssid, wlc 514 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_c_start_adhoc(wl->wlc, vif->addr); wlc 526 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c wl->wlc->vif = NULL; wlc 534 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c struct bcma_device *core = wl->wlc->hw->d11core; wlc 540 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_c_set_beacon_listen_interval(wl->wlc, wlc 553 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c err = brcms_c_set_tx_power(wl->wlc, conf->power_level); wlc 559 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c new_int = brcms_c_get_tx_power(wl->wlc); wlc 569 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c err = brcms_c_set_channel(wl->wlc, wlc 575 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c err = brcms_c_set_rate_limit(wl->wlc, wlc 590 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c struct bcma_device *core = wl->wlc->hw->d11core; wlc 599 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_c_associate_upd(wl->wlc, info->assoc); wlc 611 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_c_set_shortslot_override(wl->wlc, val); wlc 620 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_c_protection_upd(wl->wlc, BRCMS_PROT_N_CFG, wlc 622 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_c_protection_upd(wl->wlc, BRCMS_PROT_N_NONGF, wlc 624 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_c_protection_upd(wl->wlc, BRCMS_PROT_N_OBSS, wlc 637 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_c_get_current_rateset(wl->wlc, &rs); wlc 641 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c bi = hw->wiphy->bands[brcms_c_get_curband(wl->wlc)]; wlc 653 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c error = brcms_c_set_rateset(wl->wlc, &rs); wlc 662 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_c_set_beacon_period(wl->wlc, info->beacon_int); wlc 668 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_c_set_addrmatch(wl->wlc, RCM_BSSID_OFFSET, info->bssid); wlc 674 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_c_set_ssid(wl->wlc, info->ssid, info->ssid_len); wlc 684 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_c_set_new_beacon(wl->wlc, beacon, tim_offset, wlc 694 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_c_set_new_probe_resp(wl->wlc, probe_resp); wlc 704 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_c_enable_probe_resp(wl->wlc, true); wlc 706 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_c_enable_probe_resp(wl->wlc, false); wlc 746 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c struct bcma_device *core = wl->wlc->hw->d11core; wlc 765 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_c_mac_promisc(wl->wlc, *total_flags); wlc 776 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_c_scan_start(wl->wlc); wlc 786 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_c_scan_stop(wl->wlc); wlc 798 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_c_wme_setparams(wl->wlc, queue, params, true); wlc 809 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c struct scb *scb = &wl->wlc->pri_scb; wlc 830 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c struct scb *scb = &wl->wlc->pri_scb; wlc 846 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c status = brcms_c_aggregatable(wl->wlc, tid); wlc 849 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_dbg_ht(wl->wlc->hw->d11core, wlc 860 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_c_ampdu_flush(wl->wlc, sta, tid); wlc 872 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_c_ampdu_tx_operational(wl->wlc, tid, buf_size, wlc 879 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_err(wl->wlc->hw->d11core, wlc 892 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c blocked = brcms_c_check_radio_disabled(wl->wlc); wlc 903 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c result = brcms_c_tx_flush_completed(wl->wlc); wlc 920 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_dbg_mac80211(wl->wlc->hw->d11core, wlc 930 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c tsf = brcms_c_tsf_get(wl->wlc); wlc 942 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_c_tsf_set(wl->wlc, tsf); wlc 954 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c if (wl->wlc->vif) wlc 955 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c beacon = ieee80211_beacon_get_tim(hw, wl->wlc->vif, wlc 958 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_c_set_new_beacon(wl->wlc, beacon, tim_offset, wlc 959 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c wl->wlc->vif->bss_conf.dtim_period); wlc 1000 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_c_intrsupd(wl->wlc); wlc 1004 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c wl->resched = brcms_c_dpc(wl->wlc, true); wlc 1033 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c if (brcms_c_isr(wl->wlc)) { wlc 1050 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c struct brcms_c_info *wlc = wl->wlc; wlc 1058 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c phy_type = brcms_c_get_phy_type(wl->wlc, 0); wlc 1060 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c band = &wlc->bandstate[BAND_2G_INDEX]->band; wlc 1076 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c band = &wlc->bandstate[BAND_5G_INDEX]->band; wlc 1159 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c wl->wlc = brcms_c_attach((void *)wl, pdev, unit, false, &err); wlc 1160 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c if (!wl->wlc) { wlc 1165 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c wl->pub = brcms_c_pub(wl->wlc); wlc 1186 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_c_regd_init(wl->wlc); wlc 1275 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_dbg_info(wl->wlc->hw->d11core, "brcms_suspend ok\n"); wlc 1344 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_err(wl->wlc->hw->d11core, "Shouldn't be here %s\n", __func__); wlc 1352 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_dbg_info(wl->wlc->hw->d11core, "Initializing wl%d\n", wlc 1355 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_c_init(wl->wlc, wl->mute_tx); wlc 1363 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_dbg_info(wl->wlc->hw->d11core, "Resetting wl%d\n", wl->pub->unit); wlc 1364 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_c_reset(wl->wlc); wlc 1377 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_err(wl->wlc->hw->d11core, "wl%d: fatal error, reinitializing\n", wlc 1378 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c wl->wlc->pub->unit); wlc 1392 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_c_intrson(wl->wlc); wlc 1402 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c status = brcms_c_intrsoff(wl->wlc); wlc 1412 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_c_intrsrestore(wl->wlc, macintmask); wlc 1426 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c error = brcms_c_up(wl->wlc); wlc 1439 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c ret_val = brcms_c_down(wl->wlc); wlc 1523 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_dbg_info(t->wl->wlc->hw->d11core, wlc 1615 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_err(wl->wlc->hw->d11core, wlc 1639 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_err(wl->wlc->hw->d11core, wlc 1648 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c brcms_err(wl->wlc->hw->d11core, wlc 1722 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c bool blocked = brcms_c_check_radio_disabled(wl->wlc); wlc 65 drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.h struct brcms_c_info *wlc; /* pointer to private common data */ wlc 358 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static u8 brcms_basic_rate(struct brcms_c_info *wlc, u32 rspec) wlc 361 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c return wlc->band->basic_rate[mcs_table[rspec & RSPEC_RATE_MASK] wlc 363 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c return wlc->band->basic_rate[rspec & RSPEC_RATE_MASK]; wlc 389 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static bool brcms_deviceremoved(struct brcms_c_info *wlc) wlc 393 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!wlc->hw->clk) wlc 394 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c return ai_deviceremoved(wlc->hw->sih); wlc 395 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c macctrl = bcma_read32(wlc->hw->d11core, wlc 401 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static int brcms_txpktpendtot(struct brcms_c_info *wlc) wlc 406 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c for (i = 0; i < ARRAY_SIZE(wlc->hw->di); i++) wlc 407 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->hw->di[i]) wlc 408 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c pending += dma_txpending(wlc->hw->di[i]); wlc 412 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static bool brcms_is_mband_unlocked(struct brcms_c_info *wlc) wlc 414 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c return wlc->pub->_nbands > 1 && !wlc->bandlocked; wlc 436 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_detach_mfree(struct brcms_c_info *wlc) wlc 438 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc == NULL) wlc 441 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_bsscfg_mfree(wlc->bsscfg); wlc 442 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c kfree(wlc->pub); wlc 443 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c kfree(wlc->modulecb); wlc 444 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c kfree(wlc->default_bss); wlc 445 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c kfree(wlc->protection); wlc 446 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c kfree(wlc->stf); wlc 447 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c kfree(wlc->bandstate[0]); wlc 448 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->corestate) wlc 449 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c kfree(wlc->corestate->macstat_snapshot); wlc 450 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c kfree(wlc->corestate); wlc 451 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->hw) wlc 452 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c kfree(wlc->hw->bandstate[0]); wlc 453 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c kfree(wlc->hw); wlc 454 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->beacon) wlc 455 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c dev_kfree_skb_any(wlc->beacon); wlc 456 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->probe_resp) wlc 457 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c dev_kfree_skb_any(wlc->probe_resp); wlc 459 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c kfree(wlc); wlc 484 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_c_info *wlc; wlc 486 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc = kzalloc(sizeof(struct brcms_c_info), GFP_ATOMIC); wlc 487 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc == NULL) { wlc 493 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub = kzalloc(sizeof(struct brcms_pub), GFP_ATOMIC); wlc 494 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->pub == NULL) { wlc 498 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->wlc = wlc; wlc 502 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->hw = kzalloc(sizeof(struct brcms_hardware), GFP_ATOMIC); wlc 503 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->hw == NULL) { wlc 507 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->hw->wlc = wlc; wlc 509 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->hw->bandstate[0] = wlc 511 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->hw->bandstate[0] == NULL) { wlc 518 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->hw->bandstate[i] = (struct brcms_hw_band *) wlc 519 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c ((unsigned long)wlc->hw->bandstate[0] + wlc 523 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->modulecb = wlc 526 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->modulecb == NULL) { wlc 531 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->default_bss = kzalloc(sizeof(struct brcms_bss_info), GFP_ATOMIC); wlc 532 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->default_bss == NULL) { wlc 537 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->bsscfg = brcms_c_bsscfg_malloc(unit); wlc 538 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->bsscfg == NULL) { wlc 543 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->protection = kzalloc(sizeof(struct brcms_protection), wlc 545 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->protection == NULL) { wlc 550 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->stf = kzalloc(sizeof(struct brcms_stf), GFP_ATOMIC); wlc 551 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->stf == NULL) { wlc 556 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->bandstate[0] = wlc 558 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->bandstate[0] == NULL) { wlc 565 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->bandstate[i] = (struct brcms_band *) wlc 566 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c ((unsigned long)wlc->bandstate[0] wlc 570 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->corestate = kzalloc(sizeof(struct brcms_core), GFP_ATOMIC); wlc 571 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->corestate == NULL) { wlc 576 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->corestate->macstat_snapshot = wlc 578 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->corestate->macstat_snapshot == NULL) { wlc 583 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c return wlc; wlc 586 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_detach_mfree(wlc); wlc 615 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static uint brcms_c_calc_frame_time(struct brcms_c_info *wlc, u32 ratespec, wlc 622 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(wlc->hw->d11core, "wl%d: WAR: using rate of 1 mbps\n", wlc 623 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->unit); wlc 650 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->band->bandtype == BRCM_BAND_2G) wlc 662 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->band->bandtype == BRCM_BAND_2G) wlc 718 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_ucode *ucode = &wlc_hw->wlc->wl->ucode; wlc 794 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->wlc->band = wlc_hw->wlc->bandstate[bandunit]; wlc 808 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static u32 brcms_c_setband_inact(struct brcms_c_info *wlc, uint bandunit) wlc 810 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw = wlc->hw; wlc 820 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c macintmask = brcms_intrsoff(wlc->wl); wlc 834 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_dotxstatus(struct brcms_c_info *wlc, struct tx_status *txs) wlc 852 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c trace_brcms_txstatus(&wlc->hw->d11core->dev, txs->framelen, wlc 863 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_dbg_tx(wlc->hw->d11core, "INTERMEDIATE but not AMPDU\n"); wlc 870 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(wlc->hw->d11core, "queue %u >= NFIFO\n", queue); wlc 874 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c dma = wlc->hw->di[queue]; wlc 876 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c p = dma_getnexttxp(wlc->hw->di[queue], DMA_RANGE_TRANSMITTED); wlc 878 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(wlc->hw->d11core, "dma_getnexttxp returned null!\n"); wlc 886 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_dbg_tx(wlc->hw->d11core, "phyerr 0x%x, rate 0x%x\n", wlc 890 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(wlc->hw->d11core, "frameid != txh->TxFrameID\n"); wlc 897 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c scb = &wlc->pri_scb; wlc 900 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_ampdu_dotxstatus(wlc->ampdu, scb, p, txs); wlc 909 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c trace_brcms_txdesc(&wlc->hw->d11core->dev, txh, sizeof(*txh)); wlc 914 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_dbg_tx(wlc->hw->d11core, wlc 917 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c CHSPEC_CHANNEL(wlc->default_bss->chanspec)); wlc 929 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(wlc->hw->d11core, "Not last frame!\n"); wlc 944 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c sfbl = GFIELD(wlc->wme_retries[wme_fifo2ac[queue]], wlc 946 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c lfbl = GFIELD(wlc->wme_retries[wme_fifo2ac[queue]], wlc 949 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c sfbl = wlc->SFBL; wlc 950 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c lfbl = wlc->LFBL; wlc 999 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c ieee80211_tx_status_irqsafe(wlc->pub->ieee_hw, p); wlc 1001 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(wlc->hw->d11core, wlc 1011 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c trace_brcms_txdesc(&wlc->hw->d11core->dev, txh, wlc 1019 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c ieee80211_queue_stopped(wlc->pub->ieee_hw, ac_queue)) wlc 1020 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c ieee80211_wake_queue(wlc->pub->ieee_hw, ac_queue); wlc 1066 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c *fatal = brcms_c_dotxstatus(wlc_hw->wlc, txs); wlc 1075 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_tbtt(struct brcms_c_info *wlc) wlc 1077 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->bsscfg->type == BRCMS_TYPE_ADHOC) wlc 1082 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->qvalid |= MCMD_DIRFRMQVAL; wlc 1087 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_mhfdef(struct brcms_c_info *wlc, u16 *mhfs, u16 mhf2_init) wlc 1089 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw = wlc->hw; wlc 1113 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static bool brcms_b_attach_dmapio(struct brcms_c_info *wlc, uint j, bool wme) wlc 1121 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw = wlc->hw; wlc 1135 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->di[0] = dma_attach(name, wlc, wlc 1149 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->di[1] = dma_attach(name, wlc, wlc 1159 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->di[2] = dma_attach(name, wlc, wlc 1168 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->di[3] = dma_attach(name, wlc, wlc 1191 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_mhfdef(wlc, wlc_hw->band->mhfs, pio_mhf2); wlc 1215 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_c_info *wlc = wlc_hw->wlc; wlc 1218 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->defmacintmask = DEF_MACINTMASK; wlc 1239 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c DBGST_ASLEEP), wlc_hw->wlc->fastpwrup_dly); wlc 1605 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_c_info *wlc = wlc_hw->wlc; wlc 1608 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (BRCMS_ISLCNPHY(wlc->band)) wlc 1610 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c else if (BRCMS_ISNPHY(wlc->band) && (NREV_GE(wlc->band->phyrev, 3))) wlc 1704 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_b_bsinit(struct brcms_c_info *wlc, u16 chanspec) wlc 1706 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw = wlc->hw; wlc 1826 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_c_info *wlc = wlc_hw->wlc; wlc 1835 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c macintmask = brcms_c_setband_inact(wlc, bandunit); wlc 1843 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_bsinit(wlc, chanspec); wlc 1850 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->macintstatus) wlc 1851 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->macintstatus = MI_DMAINT; wlc 1854 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_intrsrestore(wlc->wl, macintmask); wlc 1866 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wiphy_err(wlc_hw->wlc->wiphy, "unsupported core rev %d\n", wlc 2034 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->wlc->macintstatus = 0; /* skip wl_dpc after down */ wlc 2074 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->wlc->macintstatus = 0; wlc 2171 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_c_start_station(struct brcms_c_info *wlc, u8 *addr) wlc 2173 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c memcpy(wlc->pub->cur_etheraddr, addr, sizeof(wlc->pub->cur_etheraddr)); wlc 2174 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->bsscfg->type = BRCMS_TYPE_STATION; wlc 2177 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_c_start_ap(struct brcms_c_info *wlc, u8 *addr, const u8 *bssid, wlc 2180 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_set_ssid(wlc, ssid, ssid_len); wlc 2182 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c memcpy(wlc->pub->cur_etheraddr, addr, sizeof(wlc->pub->cur_etheraddr)); wlc 2183 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c memcpy(wlc->bsscfg->BSSID, bssid, sizeof(wlc->bsscfg->BSSID)); wlc 2184 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->bsscfg->type = BRCMS_TYPE_AP; wlc 2186 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_mctrl(wlc->hw, MCTL_AP | MCTL_INFRA, MCTL_AP | MCTL_INFRA); wlc 2189 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_c_start_adhoc(struct brcms_c_info *wlc, u8 *addr) wlc 2191 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c memcpy(wlc->pub->cur_etheraddr, addr, sizeof(wlc->pub->cur_etheraddr)); wlc 2192 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->bsscfg->type = BRCMS_TYPE_ADHOC; wlc 2194 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_mctrl(wlc->hw, MCTL_AP | MCTL_INFRA, 0); wlc 2198 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_gpio_init(struct brcms_c_info *wlc) wlc 2200 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw = wlc->hw; wlc 2281 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_c_info *wlc; wlc 2282 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_ucode *ucode = &wlc_hw->wlc->wl->ucode; wlc 2284 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc = wlc_hw->wlc; wlc 2325 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c return (u16) wlc_hw->wlc->stf->txant; wlc 2392 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_fatal_error(wlc_hw->wlc->wl); /* big hammer */ wlc 2401 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_c_intrson(struct brcms_c_info *wlc) wlc 2403 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw = wlc->hw; wlc 2404 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->macintmask = wlc->defmacintmask; wlc 2405 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_write32(wlc_hw->d11core, D11REGOFFS(macintmask), wlc->macintmask); wlc 2408 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c u32 brcms_c_intrsoff(struct brcms_c_info *wlc) wlc 2410 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw = wlc->hw; wlc 2416 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c macintmask = wlc->macintmask; /* isr can still happen */ wlc 2421 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->macintmask = 0; wlc 2424 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c return wlc->macintstatus ? 0 : macintmask; wlc 2427 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_c_intrsrestore(struct brcms_c_info *wlc, u32 macintmask) wlc 2429 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw = wlc->hw; wlc 2433 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->macintmask = macintmask; wlc 2434 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_write32(wlc_hw->d11core, D11REGOFFS(macintmask), wlc->macintmask); wlc 2463 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_suspend_mac_and_wait(wlc_hw->wlc); wlc 2468 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_enable_mac(wlc_hw->wlc); wlc 2498 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c u8 *ethaddr = wlc_hw->wlc->pub->cur_etheraddr; wlc 2529 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_mute(struct brcms_c_info *wlc, bool mute_tx) wlc 2531 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_mute(wlc->hw, mute_tx); wlc 2542 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static inline u32 wlc_intstatus(struct brcms_c_info *wlc, bool in_isr) wlc 2544 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw = wlc->hw; wlc 2550 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c mask = in_isr ? wlc->macintmask : wlc->defmacintmask; wlc 2555 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (brcms_deviceremoved(wlc)) wlc 2574 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->macintmask = 0; wlc 2594 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bool brcms_c_intrsupd(struct brcms_c_info *wlc) wlc 2599 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c macintstatus = wlc_intstatus(wlc, false); wlc 2606 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->macintstatus |= macintstatus; wlc 2617 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bool brcms_c_isr(struct brcms_c_info *wlc) wlc 2619 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw = wlc->hw; wlc 2622 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!wlc_hw->up || !wlc->macintmask) wlc 2626 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c macintstatus = wlc_intstatus(wlc, true); wlc 2639 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->macintstatus = macintstatus; wlc 2645 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_c_suspend_mac_and_wait(struct brcms_c_info *wlc) wlc 2647 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw = wlc->hw; wlc 2669 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_down(wlc->wl); wlc 2680 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_down(wlc->wl); wlc 2705 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_down(wlc->wl); wlc 2713 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_c_enable_mac(struct brcms_c_info *wlc) wlc 2715 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw = wlc->hw; wlc 2720 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->band->bandunit); wlc 2761 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct wiphy *wiphy = wlc_hw->wlc->wiphy; wlc 2877 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c dev_gone = brcms_deviceremoved(wlc_hw->wlc); wlc 2899 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_flushqueues(struct brcms_c_info *wlc) wlc 2901 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw = wlc->hw; wlc 2909 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c ieee80211_wake_queue(wlc->pub->ieee_hw, wlc 3016 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_copyto_shm(struct brcms_c_info *wlc, uint offset, wlc 3019 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_copyto_objmem(wlc->hw, offset, buf, len, OBJADDR_SHM_SEL); wlc 3075 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static bool brcms_c_ps_allowed(struct brcms_c_info *wlc) wlc 3081 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_statsupd(struct brcms_c_info *wlc) wlc 3092 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!wlc->pub->up) wlc 3095 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c macstats = wlc->core->macstat_snapshot; wlc 3107 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_copyfrom_objmem(wlc->hw, M_UCODE_MACSTAT, macstats, wlc 3114 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(wlc->hw->d11core, "wl%d: %u rx fifo 0 overflows!\n", wlc 3115 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->unit, delta); wlc 3121 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(wlc->hw->d11core, wlc 3123 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->unit, delta, i); wlc 3129 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->hw->di[i]) wlc 3130 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c dma_counterreset(wlc->hw->di[i]); wlc 3137 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!brcms_deviceremoved(wlc_hw->wlc)) wlc 3141 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_flushqueues(wlc_hw->wlc); wlc 3144 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_c_reset(struct brcms_c_info *wlc) wlc 3146 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_dbg_info(wlc->hw->d11core, "wl%d\n", wlc->pub->unit); wlc 3149 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_statsupd(wlc); wlc 3152 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c memset(wlc->core->macstat_snapshot, 0, sizeof(struct macstat)); wlc 3154 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_reset(wlc->hw); wlc 3180 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_b_coreinit(struct brcms_c_info *wlc) wlc 3182 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw = wlc->hw; wlc 3190 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_ucode *ucode = &wlc_hw->wlc->wl->ucode; wlc 3215 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_gpio_init(wlc); wlc 3312 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->fastpwrup_dly = ai_clkctl_fast_pwrup_delay(wlc_hw->sih); wlc 3313 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_write16(core, D11REGOFFS(scc_fastpwrup_dly), wlc->fastpwrup_dly); wlc 3357 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_c_info *wlc = wlc_hw->wlc; wlc 3365 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c macintmask = brcms_intrsoff(wlc->wl); wlc 3375 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_coreinit(wlc); wlc 3378 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_bsinit(wlc, chanspec); wlc 3381 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_intrsrestore(wlc->wl, macintmask); wlc 3399 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_set_phy_chanspec(struct brcms_c_info *wlc, wlc 3403 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->chanspec = chanspec; wlc 3406 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_channel_set_chanspec(wlc->cmi, chanspec, BRCMS_TXPWR_MAX); wlc 3408 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->stf->ss_algosel_auto) wlc 3409 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_stf_ss_algo_channel_get(wlc, &wlc->stf->ss_algo_channel, wlc 3412 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_stf_ss_update(wlc, wlc->band); wlc 3416 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_default_rateset(struct brcms_c_info *wlc, struct brcms_c_rateset *rs) wlc 3418 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_rateset_default(rs, NULL, wlc->band->phytype, wlc 3419 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->band->bandtype, false, BRCMS_RATE_MASK_FULL, wlc 3420 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c (bool) (wlc->pub->_n_enab & SUPPORT_11N), wlc 3421 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_chspec_bw(wlc->default_bss->chanspec), wlc 3422 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->stf->txstreams); wlc 3426 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_rate_lookup_init(struct brcms_c_info *wlc, wlc 3433 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c u8 *br = wlc->band->basic_rate; wlc 3451 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(wlc->hw->d11core, "brcms_c_rate_lookup_init: " wlc 3474 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c for (i = 0; i < wlc->band->hw_rateset.count; i++) { wlc 3475 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c rate = wlc->band->hw_rateset.rates[i]; wlc 3520 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_bandinit_ordered(struct brcms_c_info *wlc, wlc 3531 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->bandlocked || wlc->pub->_nbands == 1) { wlc 3533 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c parkband = wlc->band->bandunit; wlc 3545 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c for (i = 0; i < wlc->pub->_nbands; i++) { wlc 3548 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->band = wlc->bandstate[j]; wlc 3550 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_default_rateset(wlc, &default_rateset); wlc 3553 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_rateset_filter(&default_rateset, &wlc->band->hw_rateset, wlc 3555 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c (bool) (wlc->pub->_n_enab & SUPPORT_11N)); wlc 3558 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_rate_lookup_init(wlc, &default_rateset); wlc 3562 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_set_phy_chanspec(wlc, chanspec); wlc 3569 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_c_mac_promisc(struct brcms_c_info *wlc, uint filter_flags) wlc 3573 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->filter_flags = filter_flags; wlc 3587 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_mctrl(wlc->hw, wlc 3597 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_ucode_mac_upd(struct brcms_c_info *wlc) wlc 3602 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->home_chanspec == wlc_phy_chanspec_get(wlc->band->pi)) { wlc 3603 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->pub->associated) { wlc 3613 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (BRCMS_PHY_11N_CAP(wlc->band)) wlc 3614 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc->hw, wlc 3622 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_write_rate_shm(struct brcms_c_info *wlc, u8 rate, wlc 3648 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c basic_ptr = brcms_b_read_shm(wlc->hw, (dir_table + basic_index * 2)); wlc 3653 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc->hw, (basic_table + index * 2), basic_ptr); wlc 3657 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_rateset_get_hwrs(struct brcms_c_info *wlc) wlc 3661 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (BRCMS_PHY_11N_CAP(wlc->band)) { wlc 3662 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->band->bandtype == BRCM_BAND_5G) wlc 3666 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c } else if (wlc->band->gmode) wlc 3674 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_set_ratetable(struct brcms_c_info *wlc) wlc 3681 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c rs_dflt = brcms_c_rateset_get_hwrs(wlc); wlc 3684 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_rateset_mcs_upd(&rs, wlc->stf->txstreams); wlc 3693 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c basic_rate = brcms_basic_rate(wlc, rate); wlc 3700 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_write_rate_shm(wlc, rate, basic_rate); wlc 3705 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_bsinit(struct brcms_c_info *wlc) wlc 3707 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_dbg_info(wlc->hw->d11core, "wl%d: bandunit %d\n", wlc 3708 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->unit, wlc->band->bandunit); wlc 3711 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_set_ratetable(wlc); wlc 3714 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_ucode_mac_upd(wlc); wlc 3717 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_antsel_init(wlc->asi); wlc 3723 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_duty_cycle_set(struct brcms_c_info *wlc, int duty_cycle, bool isOFDM, wlc 3731 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(wlc->hw->d11core, wlc 3733 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->unit); wlc 3740 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc->hw, offset, (u16) idle_busy_ratio_x_16); wlc 3743 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->tx_duty_cycle_ofdm = (u16) duty_cycle; wlc 3745 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->tx_duty_cycle_cck = (u16) duty_cycle; wlc 3751 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_set_ps_ctrl(struct brcms_c_info *wlc) wlc 3757 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c hps = brcms_c_ps_allowed(wlc); wlc 3759 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_dbg_mac80211(wlc->hw->d11core, "wl%d: hps %d\n", wlc->pub->unit, wlc 3762 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c v1 = bcma_read32(wlc->hw->d11core, D11REGOFFS(maccontrol)); wlc 3767 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_mctrl(wlc->hw, MCTL_WAKE | MCTL_HPS, v2); wlc 3772 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_wait_for_wake(wlc->hw); wlc 3782 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_c_info *wlc = bsscfg->wlc; wlc 3785 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_set_addrmatch(wlc, RCM_MAC_OFFSET, wlc->pub->cur_etheraddr); wlc 3787 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_ampdu_macaddr_upd(wlc); wlc 3798 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_set_addrmatch(bsscfg->wlc, RCM_BSSID_OFFSET, bsscfg->BSSID); wlc 3801 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_c_set_ssid(struct brcms_c_info *wlc, u8 *ssid, size_t ssid_len) wlc 3803 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c u8 len = min_t(u8, sizeof(wlc->bsscfg->SSID), ssid_len); wlc 3804 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c memset(wlc->bsscfg->SSID, 0, sizeof(wlc->bsscfg->SSID)); wlc 3806 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c memcpy(wlc->bsscfg->SSID, ssid, len); wlc 3807 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->bsscfg->SSID_len = len; wlc 3815 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_suspend_mac_and_wait(wlc_hw->wlc); wlc 3817 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_enable_mac(wlc_hw->wlc); wlc 3825 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_switch_shortslot(struct brcms_c_info *wlc, bool shortslot) wlc 3828 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->shortslot_override != BRCMS_SHORTSLOT_AUTO) wlc 3829 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c shortslot = (wlc->shortslot_override == BRCMS_SHORTSLOT_ON); wlc 3831 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->shortslot == shortslot) wlc 3834 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->shortslot = shortslot; wlc 3836 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_set_shortslot(wlc->hw, shortslot); wlc 3839 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_set_home_chanspec(struct brcms_c_info *wlc, u16 chanspec) wlc 3841 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->home_chanspec != chanspec) { wlc 3842 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->home_chanspec = chanspec; wlc 3844 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->pub->associated) wlc 3845 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->bsscfg->current_bss->chanspec = chanspec; wlc 3895 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_setband(struct brcms_c_info *wlc, wlc 3898 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->band = wlc->bandstate[bandunit]; wlc 3900 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!wlc->pub->up) wlc 3904 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_set_ps_ctrl(wlc); wlc 3907 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_bsinit(wlc); wlc 3910 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_set_chanspec(struct brcms_c_info *wlc, u16 chanspec) wlc 3914 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c u16 old_chanspec = wlc->chanspec; wlc 3916 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!brcms_c_valid_chanspec_db(wlc->cmi, chanspec)) { wlc 3917 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(wlc->hw->d11core, "wl%d: %s: Bad channel %d\n", wlc 3918 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->unit, __func__, CHSPEC_CHANNEL(chanspec)); wlc 3923 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->pub->_nbands > 1) { wlc 3925 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->band->bandunit != bandunit || wlc->bandinit_pending) { wlc 3927 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->bandlocked) { wlc 3928 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(wlc->hw->d11core, wlc 3930 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->unit, __func__, wlc 3942 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_setband(wlc, bandunit); wlc 3947 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_set_phy_chanspec(wlc, chanspec); wlc 3951 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_antsel_init(wlc->asi); wlc 3956 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_rateset_bw_mcs_filter(&wlc->band->hw_rateset, wlc 3957 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->band->mimo_cap_40 ? brcms_chspec_bw(chanspec) : 0); wlc 3961 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_ucode_mac_upd(wlc); wlc 3970 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_c_beacon_phytxctl_txant_upd(struct brcms_c_info *wlc, wlc 3974 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c u16 phytxant = wlc->stf->phytxant; wlc 3978 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (BRCMS_PHY_11N_CAP(wlc->band)) wlc 3979 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c phytxant = brcms_c_stf_phytxchain_sel(wlc, bcn_rspec); wlc 3981 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c phyctl = brcms_b_read_shm(wlc->hw, M_BCN_PCTLWD); wlc 3983 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc->hw, M_BCN_PCTLWD, phyctl); wlc 3991 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_c_protection_upd(struct brcms_c_info *wlc, uint idx, int val) wlc 3997 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c BCMMSG(wlc->wiphy, "idx %d, val %d\n", idx, val); wlc 4001 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->protection->_g = (bool) val; wlc 4004 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->protection->g_override = (s8) val; wlc 4007 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->protection->gmode_user = (u8) val; wlc 4010 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->protection->overlap = (s8) val; wlc 4013 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->protection->nmode_user = (s8) val; wlc 4016 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->protection->n_cfg = (s8) val; wlc 4019 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->protection->n_cfg_override = (s8) val; wlc 4022 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->protection->nongf = (bool) val; wlc 4025 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->protection->nongf_override = (s8) val; wlc 4028 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->protection->n_pam_override = (s8) val; wlc 4031 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->protection->n_obss = (bool) val; wlc 4040 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_ht_update_sgi_rx(struct brcms_c_info *wlc, int val) wlc 4042 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->pub->up) { wlc 4043 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_update_beacon(wlc); wlc 4044 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_update_probe_resp(wlc, true); wlc 4048 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_ht_update_ldpc(struct brcms_c_info *wlc, s8 val) wlc 4050 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->stf->ldpc = val; wlc 4052 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->pub->up) { wlc 4053 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_update_beacon(wlc); wlc 4054 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_update_probe_resp(wlc, true); wlc 4055 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_ldpc_override_set(wlc->band->pi, (val ? true : false)); wlc 4059 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_c_wme_setparams(struct brcms_c_info *wlc, u16 aci, wlc 4068 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!wlc->clk) { wlc 4069 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(wlc->hw->d11core, "wl%d: %s : no-clock\n", wlc 4070 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->unit, __func__); wlc 4078 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->edcf_txop[aci & 0x3] = acp_shm.txop = wlc 4088 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(wlc->hw->d11core, "wl%d: edcf_setparams: bad " wlc 4089 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c "aifs %d\n", wlc->pub->unit, acp_shm.aifs); wlc 4095 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_read16(wlc->hw->d11core, D11REGOFFS(tsf_random)) & wlc 4099 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c acp_shm.status = brcms_b_read_shm(wlc->hw, (M_EDCF_QINFO + wlc 4108 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc->hw, wlc 4115 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_suspend_mac_and_wait(wlc); wlc 4117 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_update_beacon(wlc); wlc 4118 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_update_probe_resp(wlc, false); wlc 4121 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_enable_mac(wlc); wlc 4124 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_edcf_setparams(struct brcms_c_info *wlc, bool suspend) wlc 4150 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_wme_setparams(wlc, aci, &txq_pars, suspend); wlc 4154 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_suspend_mac_and_wait(wlc); wlc 4155 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_enable_mac(wlc); wlc 4159 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_radio_monitor_start(struct brcms_c_info *wlc) wlc 4162 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->radio_monitor) wlc 4165 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->radio_monitor = true; wlc 4166 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_pllreq(wlc->hw, true, BRCMS_PLLREQ_RADIO_MON); wlc 4167 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_add_timer(wlc->radio_timer, TIMER_INTERVAL_RADIOCHK, true); wlc 4170 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static bool brcms_c_radio_monitor_stop(struct brcms_c_info *wlc) wlc 4172 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!wlc->radio_monitor) wlc 4175 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->radio_monitor = false; wlc 4176 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_pllreq(wlc->hw, false, BRCMS_PLLREQ_RADIO_MON); wlc 4177 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c return brcms_del_timer(wlc->radio_timer); wlc 4181 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_radio_hwdisable_upd(struct brcms_c_info *wlc) wlc 4183 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->pub->hw_off) wlc 4186 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (brcms_b_radio_read_hwdisabled(wlc->hw)) wlc 4187 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c mboolset(wlc->pub->radio_disabled, WL_RADIO_HW_DISABLE); wlc 4189 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c mboolclr(wlc->pub->radio_disabled, WL_RADIO_HW_DISABLE); wlc 4193 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bool brcms_c_check_radio_disabled(struct brcms_c_info *wlc) wlc 4195 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_radio_hwdisable_upd(wlc); wlc 4197 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c return mboolisset(wlc->pub->radio_disabled, WL_RADIO_HW_DISABLE) ? wlc 4204 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_c_info *wlc = (struct brcms_c_info *) arg; wlc 4206 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (brcms_deviceremoved(wlc)) { wlc 4207 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(wlc->hw->d11core, "wl%d: %s: dead chip\n", wlc 4208 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->unit, __func__); wlc 4209 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_down(wlc->wl); wlc 4213 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_radio_hwdisable_upd(wlc); wlc 4217 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_b_watchdog(struct brcms_c_info *wlc) wlc 4219 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw = wlc->hw; wlc 4231 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c dma_rxfill(wlc->hw->di[RX_FIFO]); wlc 4237 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_watchdog(struct brcms_c_info *wlc) wlc 4239 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_dbg_info(wlc->hw->d11core, "wl%d\n", wlc->pub->unit); wlc 4241 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!wlc->pub->up) wlc 4244 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (brcms_deviceremoved(wlc)) { wlc 4245 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(wlc->hw->d11core, "wl%d: %s: dead chip\n", wlc 4246 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->unit, __func__); wlc 4247 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_down(wlc->wl); wlc 4252 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->now++; wlc 4254 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_radio_hwdisable_upd(wlc); wlc 4256 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->pub->radio_disabled) wlc 4259 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_watchdog(wlc); wlc 4265 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if ((wlc->pub->now % SW_TIMER_MAC_STAT_UPD) == 0) wlc 4266 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_statsupd(wlc); wlc 4268 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (BRCMS_ISNPHY(wlc->band) && wlc 4269 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c ((wlc->pub->now - wlc->tempsense_lasttime) >= wlc 4271 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->tempsense_lasttime = wlc->pub->now; wlc 4272 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_tempsense_upd(wlc); wlc 4278 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_c_info *wlc = (struct brcms_c_info *) arg; wlc 4280 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_watchdog(wlc); wlc 4283 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static bool brcms_c_timers_init(struct brcms_c_info *wlc, int unit) wlc 4285 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->wdtimer = brcms_init_timer(wlc->wl, brcms_c_watchdog_by_timer, wlc 4286 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc, "watchdog"); wlc 4287 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!wlc->wdtimer) { wlc 4288 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wiphy_err(wlc->wiphy, "wl%d: wl_init_timer for wdtimer " wlc 4293 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->radio_timer = brcms_init_timer(wlc->wl, brcms_c_radio_timer, wlc 4294 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc, "radio"); wlc 4295 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!wlc->radio_timer) { wlc 4296 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wiphy_err(wlc->wiphy, "wl%d: wl_init_timer for radio_timer " wlc 4311 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_info_init(struct brcms_c_info *wlc, int unit) wlc 4316 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->chanspec = ch20mhz_chspec(1); wlc 4319 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->shortslot = false; wlc 4320 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->shortslot_override = BRCMS_SHORTSLOT_AUTO; wlc 4322 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_protection_upd(wlc, BRCMS_PROT_G_OVR, BRCMS_PROTECTION_AUTO); wlc 4323 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_protection_upd(wlc, BRCMS_PROT_G_SPEC, false); wlc 4325 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_protection_upd(wlc, BRCMS_PROT_N_CFG_OVR, wlc 4327 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_protection_upd(wlc, BRCMS_PROT_N_CFG, BRCMS_N_PROTECTION_OFF); wlc 4328 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_protection_upd(wlc, BRCMS_PROT_N_NONGF_OVR, wlc 4330 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_protection_upd(wlc, BRCMS_PROT_N_NONGF, false); wlc 4331 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_protection_upd(wlc, BRCMS_PROT_N_PAM_OVR, AUTO); wlc 4333 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_protection_upd(wlc, BRCMS_PROT_OVERLAP, wlc 4337 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->include_legacy_erp = true; wlc 4339 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->stf->ant_rx_ovr = ANT_RX_DIV_DEF; wlc 4340 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->stf->txant = ANT_TX_DEF; wlc 4342 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->prb_resp_timeout = BRCMS_PRB_RESP_TIMEOUT; wlc 4344 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->usr_fragthresh = DOT11_DEFAULT_FRAG_LEN; wlc 4346 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->fragthresh[i] = DOT11_DEFAULT_FRAG_LEN; wlc 4347 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->RTSThresh = DOT11_DEFAULT_RTS_LEN; wlc 4350 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->SFBL = RETRY_SHORT_FB; wlc 4351 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->LFBL = RETRY_LONG_FB; wlc 4354 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->SRL = RETRY_SHORT_DEF; wlc 4355 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->LRL = RETRY_LONG_DEF; wlc 4358 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->_ampdu = AMPDU_AGG_HOST; wlc 4361 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static uint brcms_c_attach_module(struct brcms_c_info *wlc) wlc 4365 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c unit = wlc->pub->unit; wlc 4367 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->asi = brcms_c_antsel_attach(wlc); wlc 4368 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->asi == NULL) { wlc 4369 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wiphy_err(wlc->wiphy, "wl%d: attach: antsel_attach " wlc 4375 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->ampdu = brcms_c_ampdu_attach(wlc); wlc 4376 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->ampdu == NULL) { wlc 4377 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wiphy_err(wlc->wiphy, "wl%d: attach: ampdu_attach " wlc 4383 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if ((brcms_c_stf_attach(wlc) != 0)) { wlc 4384 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wiphy_err(wlc->wiphy, "wl%d: attach: stf_attach " wlc 4393 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_pub *brcms_c_pub(struct brcms_c_info *wlc) wlc 4395 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c return wlc->pub; wlc 4404 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static int brcms_b_attach(struct brcms_c_info *wlc, struct bcma_device *core, wlc 4412 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct wiphy *wiphy = wlc->wiphy; wlc 4427 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw = wlc->hw; wlc 4428 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->wlc = wlc; wlc 4528 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->vendorid = wlc_hw->vendorid; wlc 4529 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->deviceid = wlc_hw->deviceid; wlc 4530 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->sih = wlc_hw->sih; wlc 4531 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->corerev = wlc_hw->corerev; wlc 4532 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->sromrev = wlc_hw->sromrev; wlc 4533 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->boardrev = wlc_hw->boardrev; wlc 4534 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->boardflags = wlc_hw->boardflags; wlc 4535 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->boardflags2 = wlc_hw->boardflags2; wlc 4536 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->_nbands = wlc_hw->_nbands; wlc 4538 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->physhim = wlc_phy_shim_attach(wlc_hw, wlc->wl, wlc); wlc 4581 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->band->bandunit = j; wlc 4582 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->band->bandtype = j ? BRCM_BAND_5G : BRCM_BAND_2G; wlc 4583 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->core->coreidx = core->core_index; wlc 4600 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->wiphy); wlc 4616 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->band->abgphy_encore = wlc_phy_get_encore(wlc_hw->band->pi); wlc 4650 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->band->pi = wlc_hw->band->pi; wlc 4651 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->band->phytype = wlc_hw->band->phytype; wlc 4652 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->band->phyrev = wlc_hw->band->phyrev; wlc 4653 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->band->radioid = wlc_hw->band->radioid; wlc 4654 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->band->radiorev = wlc_hw->band->radiorev; wlc 4656 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->band->phytype, wlc->band->phyrev, wlc 4657 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->band->radioid, wlc->band->radiorev); wlc 4662 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!brcms_b_attach_dmapio(wlc, j, wme)) { wlc 4710 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static bool brcms_c_attach_stf_ant_init(struct brcms_c_info *wlc) wlc 4715 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct ssb_sprom *sprom = &wlc->hw->d11core->bus->sprom; wlc 4717 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c unit = wlc->pub->unit; wlc 4718 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bandtype = wlc->band->bandtype; wlc 4727 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wiphy_err(wlc->wiphy, "wl%d: %s: Invalid antennas available in" wlc 4734 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->stf->ant_rx_ovr = ANT_RX_DIV_FORCE_0; wlc 4735 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->stf->txant = ANT_TX_FORCE_0; wlc 4737 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->stf->ant_rx_ovr = ANT_RX_DIV_FORCE_1; wlc 4738 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->stf->txant = ANT_TX_FORCE_1; wlc 4744 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->band->antgain = sprom->antenna_gain.a1; wlc 4746 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->band->antgain = sprom->antenna_gain.a0; wlc 4751 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_bss_default_init(struct brcms_c_info *wlc) wlc 4755 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_bss_info *bi = wlc->default_bss; wlc 4765 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->home_chanspec = bi->chanspec = chanspec; wlc 4768 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c band = wlc->band; wlc 4769 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->pub->_nbands > 1 && wlc 4771 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c band = wlc->bandstate[OTHERBANDUNIT(wlc)]; wlc 4776 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c (bool) (wlc->pub->_n_enab & SUPPORT_11N), wlc 4777 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_chspec_bw(chanspec), wlc->stf->txstreams); wlc 4779 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->pub->_n_enab & SUPPORT_11N) wlc 4783 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_update_mimo_band_bwcap(struct brcms_c_info *wlc, u8 bwcap) wlc 4788 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c for (i = 0; i < wlc->pub->_nbands; i++) { wlc 4789 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c band = wlc->bandstate[i]; wlc 4805 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_timers_deinit(struct brcms_c_info *wlc) wlc 4808 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->wdtimer) { wlc 4809 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_free_timer(wlc->wdtimer); wlc 4810 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->wdtimer = NULL; wlc 4812 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->radio_timer) { wlc 4813 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_free_timer(wlc->radio_timer); wlc 4814 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->radio_timer = NULL; wlc 4818 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_detach_module(struct brcms_c_info *wlc) wlc 4820 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->asi) { wlc 4821 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_antsel_detach(wlc->asi); wlc 4822 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->asi = NULL; wlc 4825 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->ampdu) { wlc 4826 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_ampdu_detach(wlc->ampdu); wlc 4827 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->ampdu = NULL; wlc 4830 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_stf_detach(wlc); wlc 4836 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_b_detach(struct brcms_c_info *wlc) wlc 4840 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw = wlc->hw; wlc 4851 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c band = wlc_hw->bandstate[OTHERBANDUNIT(wlc)]; wlc 4875 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c uint brcms_c_detach(struct brcms_c_info *wlc) wlc 4879 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc == NULL) wlc 4882 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_detach(wlc); wlc 4886 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!brcms_c_radio_monitor_stop(wlc)) wlc 4889 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_channel_mgr_detach(wlc->cmi); wlc 4891 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_timers_deinit(wlc); wlc 4893 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_detach_module(wlc); wlc 4895 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_detach_mfree(wlc); wlc 4900 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_ap_upd(struct brcms_c_info *wlc) wlc 4903 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->PLCPHdr_override = BRCMS_PLCP_SHORT; wlc 4909 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc_hw->wlc->pub->hw_up) wlc 4936 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->wlc->pub->hw_up = true; wlc 4993 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_intrson(wlc_hw->wlc->wl); wlc 5001 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_wme_retries_write(struct brcms_c_info *wlc) wlc 5006 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!wlc->clk) wlc 5010 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc->hw, M_AC_TXLMT_ADDR(ac), wlc 5011 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->wme_retries[ac]); wlc 5015 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c int brcms_c_up(struct brcms_c_info *wlc) wlc 5019 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_dbg_info(wlc->hw->d11core, "wl%d\n", wlc->pub->unit); wlc 5022 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->pub->hw_off || brcms_deviceremoved(wlc)) wlc 5025 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!wlc->pub->hw_up) { wlc 5026 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_hw_up(wlc->hw); wlc 5027 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->hw_up = true; wlc 5030 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if ((wlc->pub->boardflags & BFL_FEM) wlc 5031 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c && (ai_get_chip_id(wlc->hw->sih) == BCMA_CHIP_ID_BCM4313)) { wlc 5032 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->pub->boardrev >= 0x1250 wlc 5033 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c && (wlc->pub->boardflags & BFL_FEM_BT)) wlc 5034 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_mhf(wlc->hw, MHF5, MHF5_4313_GPIOCTRL, wlc 5037 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_mhf(wlc->hw, MHF4, MHF4_EXTPA_ENABLE, wlc 5050 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!wlc->pub->radio_disabled) { wlc 5051 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c int status = brcms_b_up_prep(wlc->hw); wlc 5054 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c (wlc->pub->radio_disabled, WL_RADIO_HW_DISABLE)) { wlc 5055 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_bss_cfg *bsscfg = wlc->bsscfg; wlc 5056 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c mboolset(wlc->pub->radio_disabled, wlc 5060 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(wlc->hw->d11core, wlc 5063 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->unit); wlc 5068 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->pub->radio_disabled) { wlc 5069 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_radio_monitor_start(wlc); wlc 5074 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->clk = true; wlc 5076 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_radio_monitor_stop(wlc); wlc 5079 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_mhf(wlc->hw, MHF1, MHF1_EDCF, MHF1_EDCF, BRCM_BAND_ALL); wlc 5081 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_init(wlc->wl); wlc 5082 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->up = true; wlc 5084 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->bandinit_pending) { wlc 5085 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c ch = wlc->pub->ieee_hw->conf.chandef.chan; wlc 5086 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_suspend_mac_and_wait(wlc); wlc 5087 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_set_chanspec(wlc, ch20mhz_chspec(ch->hw_value)); wlc 5088 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->bandinit_pending = false; wlc 5089 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_enable_mac(wlc); wlc 5092 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_up_finish(wlc->hw); wlc 5095 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_wme_retries_write(wlc); wlc 5098 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_add_timer(wlc->wdtimer, TIMER_INTERVAL_WATCHDOG, true); wlc 5099 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->WDarmed = true; wlc 5102 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_stf_phy_txant_upd(wlc); wlc 5104 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_ht_update_ldpc(wlc, wlc->stf->ldpc); wlc 5109 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static uint brcms_c_down_del_timer(struct brcms_c_info *wlc) wlc 5124 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c dev_gone = brcms_deviceremoved(wlc_hw->wlc); wlc 5128 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_hw->wlc->macintmask = 0; wlc 5131 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_intrsoff(wlc_hw->wlc->wl); wlc 5153 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c dev_gone = brcms_deviceremoved(wlc_hw->wlc); wlc 5161 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_flushqueues(wlc_hw->wlc); wlc 5168 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_suspend_mac_and_wait(wlc_hw->wlc); wlc 5169 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c callbacks += brcms_reset(wlc_hw->wlc->wl); wlc 5188 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c uint brcms_c_down(struct brcms_c_info *wlc) wlc 5195 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_dbg_info(wlc->hw->d11core, "wl%d\n", wlc->pub->unit); wlc 5198 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->going_down) { wlc 5199 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(wlc->hw->d11core, wlc 5201 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->unit, __func__); wlc 5204 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!wlc->pub->up) wlc 5207 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->going_down = true; wlc 5209 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c callbacks += brcms_b_bmac_down_prep(wlc->hw); wlc 5211 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c dev_gone = brcms_deviceremoved(wlc); wlc 5215 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->modulecb[i].down_fn) wlc 5217 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->modulecb[i].down_fn(wlc->modulecb[i].hdl); wlc 5221 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->WDarmed) { wlc 5222 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!brcms_del_timer(wlc->wdtimer)) wlc 5224 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->WDarmed = false; wlc 5227 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c callbacks += brcms_c_down_del_timer(wlc); wlc 5229 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->up = false; wlc 5231 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_mute_upd(wlc->band->pi, false, PHY_MUTE_ALL); wlc 5233 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c callbacks += brcms_b_down_finish(wlc->hw); wlc 5236 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->clk = false; wlc 5238 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->going_down = false; wlc 5243 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c int brcms_c_set_gmode(struct brcms_c_info *wlc, u8 gmode, bool config) wlc 5257 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if ((wlc->pub->_n_enab & SUPPORT_11N) && gmode == GMODE_LEGACY_B) wlc 5261 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->band->bandtype == BRCM_BAND_2G) wlc 5262 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c band = wlc->band; wlc 5263 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c else if ((wlc->pub->_nbands > 1) && wlc 5264 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c (wlc->bandstate[OTHERBANDUNIT(wlc)]->bandtype == BRCM_BAND_2G)) wlc 5265 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c band = wlc->bandstate[OTHERBANDUNIT(wlc)]; wlc 5271 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_protection_upd(wlc, BRCMS_PROT_G_USER, gmode); wlc 5301 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(wlc->hw->d11core, "wl%d: %s: invalid gmode %d\n", wlc 5302 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->unit, __func__, gmode); wlc 5308 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->shortslot_override = shortslot; wlc 5324 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->default_bss->rateset.count = rs.count; wlc 5325 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c memcpy(wlc->default_bss->rateset.rates, rs.rates, wlc 5326 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c sizeof(wlc->default_bss->rateset.rates)); wlc 5331 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c int brcms_c_set_nmode(struct brcms_c_info *wlc) wlc 5336 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->stf->txstreams == WL_11N_3x3) wlc 5342 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_set_gmode(wlc, GMODE_AUTO, true); wlc 5344 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->_n_enab = SUPPORT_HT; wlc 5346 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->_n_enab = SUPPORT_11N; wlc 5347 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->default_bss->flags |= BRCMS_BSS_HT; wlc 5349 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_rateset_mcs_build(&wlc->default_bss->rateset, wlc 5350 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->stf->txstreams); wlc 5351 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c for (i = 0; i < wlc->pub->_nbands; i++) wlc 5352 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c memcpy(wlc->bandstate[i]->hw_rateset.mcs, wlc 5353 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->default_bss->rateset.mcs, MCSSET_LEN); wlc 5359 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_set_internal_rateset(struct brcms_c_info *wlc, wlc 5372 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bandunit = wlc->band->bandunit; wlc 5375 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c (&new, &wlc->bandstate[bandunit]->hw_rateset, true, wlc 5376 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->stf->txstreams)) wlc 5380 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (brcms_is_mband_unlocked(wlc)) { wlc 5381 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bandunit = OTHERBANDUNIT(wlc); wlc 5384 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c &wlc-> wlc 5387 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->stf->txstreams)) wlc 5395 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c memcpy(&wlc->default_bss->rateset, &new, wlc 5397 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c memcpy(&wlc->bandstate[bandunit]->defrateset, &new, wlc 5402 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_ofdm_rateset_war(struct brcms_c_info *wlc) wlc 5407 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->pub->associated) wlc 5408 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c r = wlc->bsscfg->current_bss->rateset.rates[0]; wlc 5410 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c r = wlc->default_bss->rateset.rates[0]; wlc 5412 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_ofdm_rateset_war(wlc->band->pi, war); wlc 5415 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c int brcms_c_set_channel(struct brcms_c_info *wlc, u16 channel) wlc 5422 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!brcms_c_valid_chanspec_db(wlc->cmi, chspec)) wlc 5426 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!wlc->pub->up && brcms_is_mband_unlocked(wlc)) { wlc 5427 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->band->bandunit != chspec_bandunit(chspec)) wlc 5428 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->bandinit_pending = true; wlc 5430 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->bandinit_pending = false; wlc 5433 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->default_bss->chanspec = chspec; wlc 5436 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->pub->up && (wlc_phy_chanspec_get(wlc->band->pi) != chspec)) { wlc 5437 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_set_home_chanspec(wlc, chspec); wlc 5438 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_suspend_mac_and_wait(wlc); wlc 5439 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_set_chanspec(wlc, chspec); wlc 5440 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_enable_mac(wlc); wlc 5445 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c int brcms_c_set_rate_limit(struct brcms_c_info *wlc, u16 srl, u16 lrl) wlc 5453 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->SRL = srl; wlc 5454 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->LRL = lrl; wlc 5456 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_retrylimit_upd(wlc->hw, wlc->SRL, wlc->LRL); wlc 5459 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->wme_retries[ac] = SFIELD(wlc->wme_retries[ac], wlc 5460 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c EDCF_SHORT, wlc->SRL); wlc 5461 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->wme_retries[ac] = SFIELD(wlc->wme_retries[ac], wlc 5462 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c EDCF_LONG, wlc->LRL); wlc 5464 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_wme_retries_write(wlc); wlc 5469 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_c_get_current_rateset(struct brcms_c_info *wlc, wlc 5474 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->pub->associated) wlc 5475 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c rs = &wlc->bsscfg->current_bss->rateset; wlc 5477 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c rs = &wlc->default_bss->rateset; wlc 5484 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c int brcms_c_set_rateset(struct brcms_c_info *wlc, struct brcm_rateset *rs) wlc 5499 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->pub->_n_enab & SUPPORT_11N) { wlc 5501 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->pub->associated) wlc 5502 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c mcsset_bss = wlc->bsscfg->current_bss; wlc 5504 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c mcsset_bss = wlc->default_bss; wlc 5509 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcmerror = brcms_c_set_internal_rateset(wlc, &internal_rs); wlc 5511 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_ofdm_rateset_war(wlc); wlc 5516 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_time_lock(struct brcms_c_info *wlc) wlc 5518 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_set32(wlc->hw->d11core, D11REGOFFS(maccontrol), MCTL_TBTTHOLD); wlc 5520 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_read32(wlc->hw->d11core, D11REGOFFS(maccontrol)); wlc 5523 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_time_unlock(struct brcms_c_info *wlc) wlc 5525 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_mask32(wlc->hw->d11core, D11REGOFFS(maccontrol), ~MCTL_TBTTHOLD); wlc 5527 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_read32(wlc->hw->d11core, D11REGOFFS(maccontrol)); wlc 5530 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c int brcms_c_set_beacon_period(struct brcms_c_info *wlc, u16 period) wlc 5537 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->default_bss->beacon_period = period; wlc 5540 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_time_lock(wlc); wlc 5541 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_write32(wlc->hw->d11core, D11REGOFFS(tsf_cfprep), wlc 5543 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_write32(wlc->hw->d11core, D11REGOFFS(tsf_cfpstart), bcnint_us); wlc 5544 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_time_unlock(wlc); wlc 5549 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c u16 brcms_c_get_phy_type(struct brcms_c_info *wlc, int phyidx) wlc 5551 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c return wlc->band->phytype; wlc 5554 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_c_set_shortslot_override(struct brcms_c_info *wlc, s8 sslot_override) wlc 5556 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->shortslot_override = sslot_override; wlc 5562 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->band->bandtype == BRCM_BAND_5G) wlc 5565 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->pub->up && wlc->pub->associated) { wlc 5567 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c } else if (wlc->pub->up) { wlc 5569 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_switch_shortslot(wlc, false); wlc 5573 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->shortslot_override == BRCMS_SHORTSLOT_AUTO) wlc 5574 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->shortslot = false; wlc 5576 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->shortslot = wlc 5577 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c (wlc->shortslot_override == wlc 5589 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_c_info *wlc = (struct brcms_c_info *) pub->wlc; wlc 5594 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->modulecb[i].name[0] == '\0') { wlc 5595 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c strncpy(wlc->modulecb[i].name, name, wlc 5596 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c sizeof(wlc->modulecb[i].name) - 1); wlc 5597 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->modulecb[i].hdl = hdl; wlc 5598 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->modulecb[i].down_fn = d_fn; wlc 5610 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_c_info *wlc = (struct brcms_c_info *) pub->wlc; wlc 5613 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc == NULL) wlc 5617 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!strcmp(wlc->modulecb[i].name, name) && wlc 5618 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c (wlc->modulecb[i].hdl == hdl)) { wlc 5619 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c memset(&wlc->modulecb[i], 0, sizeof(wlc->modulecb[i])); wlc 5705 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcmc_fid_generate(struct brcms_c_info *wlc, struct brcms_bss_cfg *bsscfg, wlc 5713 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c (((wlc-> wlc 5721 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_calc_ack_time(struct brcms_c_info *wlc, u32 rspec, wlc 5731 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c rspec = brcms_basic_rate(wlc, rspec); wlc 5734 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_calc_frame_time(wlc, rspec, preamble_type, wlc 5740 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_calc_cts_time(struct brcms_c_info *wlc, u32 rspec, wlc 5743 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c return brcms_c_calc_ack_time(wlc, rspec, preamble_type); wlc 5747 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_calc_ba_time(struct brcms_c_info *wlc, u32 rspec, wlc 5755 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c rspec = brcms_basic_rate(wlc, rspec); wlc 5757 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c return brcms_c_calc_frame_time(wlc, rspec, preamble_type, wlc 5773 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_compute_frame_dur(struct brcms_c_info *wlc, u32 rate, wlc 5778 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c sifs = get_sifs(wlc->band); wlc 5781 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c dur += (u16) brcms_c_calc_ack_time(wlc, rate, preamble_type); wlc 5789 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c (u16) brcms_c_calc_frame_time(wlc, rate, preamble_type, wlc 5797 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_calc_frame_len(struct brcms_c_info *wlc, u32 ratespec, wlc 5808 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->band->bandtype == BRCM_BAND_2G) wlc 5842 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static bool brcms_c_valid_rate(struct brcms_c_info *wlc, u32 rspec, int band, wlc 5848 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if ((band == BRCM_BAND_AUTO) || (band == wlc->band->bandtype)) wlc 5849 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c hw_rateset = &wlc->band->hw_rateset; wlc 5850 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c else if (wlc->pub->_nbands > 1) wlc 5851 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c hw_rateset = &wlc->bandstate[OTHERBANDUNIT(wlc)]->hw_rateset; wlc 5869 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(wlc->hw->d11core, "wl%d: valid_rate: rate spec 0x%x " wlc 5870 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c "not in hw_rateset\n", wlc->pub->unit, rspec); wlc 5876 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c mac80211_wlc_set_nrate(struct brcms_c_info *wlc, struct brcms_band *cur_band, wlc 5879 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct bcma_device *core = wlc->hw->d11core; wlc 5893 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if ((wlc->pub->_n_enab & SUPPORT_11N) && ismcs) { wlc 5897 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->unit, __func__); wlc 5904 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!CHSPEC_IS40(wlc->home_chanspec) || wlc 5908 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->unit, __func__); wlc 5918 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->unit, rate); wlc 5927 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c (!BRCMS_STBC_CAP_PHY(wlc) wlc 5930 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->unit, __func__); wlc 5938 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->unit, __func__); wlc 5946 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->unit, __func__); wlc 5952 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->unit, __func__); wlc 5957 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if ((stf != PHY_TXC1_MODE_SISO) && (wlc->stf->txstreams == 1)) { wlc 5959 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c "request\n", wlc->pub->unit, __func__); wlc 5984 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c && !brcms_c_valid_rate(wlc, rspec, cur_band->bandtype, true)) wlc 5999 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_cck_plcp_set(struct brcms_c_info *wlc, int rate_500, wlc 6027 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(wlc->hw->d11core, wlc 6083 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_compute_cck_plcp(struct brcms_c_info *wlc, u32 rspec, wlc 6088 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_cck_plcp_set(wlc, rate, length, plcp); wlc 6092 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_compute_plcp(struct brcms_c_info *wlc, u32 rspec, wlc 6100 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_compute_cck_plcp(wlc, rspec, length, plcp); wlc 6115 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_compute_rtscts_dur(struct brcms_c_info *wlc, bool cts_only, wlc 6122 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c sifs = get_sifs(wlc->band); wlc 6128 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c (u16) brcms_c_calc_cts_time(wlc, rts_rate, wlc 6136 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c (u16) brcms_c_calc_frame_time(wlc, frame_rate, frame_preamble_type, wlc 6140 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c (u16) brcms_c_calc_ba_time(wlc, frame_rate, wlc 6144 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c (u16) brcms_c_calc_ack_time(wlc, frame_rate, wlc 6149 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static u16 brcms_c_phytxctl1_calc(struct brcms_c_info *wlc, u32 rspec) wlc 6154 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (BRCMS_ISLCNPHY(wlc->band)) { wlc 6160 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(wlc->hw->d11core, "phytxctl1_calc: bw %d is " wlc 6173 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c } else if (is_cck_rate(rspec) && !BRCMS_ISLCNPHY(wlc->band) wlc 6174 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c && !BRCMS_ISSSLPNPHY(wlc->band)) { wlc 6187 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(wlc->hw->d11core, "phytxctl1_calc: wrong " wlc 6209 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_d11hdrs_mac80211(struct brcms_c_info *wlc, struct ieee80211_hw *hw, wlc 6267 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(wlc->hw->d11core, wlc 6269 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->unit, __func__); wlc 6270 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c frameid = bcmc_fid_generate(wlc, NULL, txh); wlc 6318 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c rspec[k] = mac80211_wlc_set_nrate(wlc, wlc->band, wlc 6345 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_antsel_antcfg_get(wlc->asi, false, wlc 6351 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c phyctl1_stf = wlc->stf->ss_opmode; wlc 6353 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->pub->_n_enab & SUPPORT_11N) { wlc 6368 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c && BRCMS_STF_SS_STBC_TX(wlc, scb)) { wlc 6385 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (brcms_chspec_bw(wlc->chanspec) == BRCMS_40_MHZ) { wlc 6389 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->band->pi)) wlc 6399 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c } else if (wlc->mimo_40txbw != AUTO) wlc 6400 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c mimo_txbw = wlc->mimo_40txbw; wlc 6405 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->ofdm_40txbw != AUTO) wlc 6406 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c mimo_txbw = wlc->ofdm_40txbw; wlc 6407 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c } else if (wlc->cck_40txbw != AUTO) { wlc 6408 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c mimo_txbw = wlc->cck_40txbw; wlc 6439 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_warn(wlc->hw->d11core, wlc 6441 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->unit, __func__); wlc 6470 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (BRCMS_ISNPHY(wlc->band) && is_ofdm_rate(rspec[k])) { wlc 6484 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c (phylen > wlc->RTSThresh) && !is_multicast_ether_addr(h->addr1)) wlc 6489 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_compute_plcp(wlc, rspec[0], phylen, plcp); wlc 6490 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_compute_plcp(wlc, rspec[1], phylen, plcp_fallback); wlc 6509 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_compute_frame_dur(wlc, rspec[0], preamble_type[0], wlc 6515 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c (u16) brcms_c_calc_frame_time(wlc, rspec[0], wlc 6528 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c durid = brcms_c_compute_frame_dur(wlc, rspec[1], wlc 6540 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->band->bandtype == BRCM_BAND_5G) wlc 6543 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (CHSPEC_IS40(wlc_phy_chanspec_get(wlc->band->pi))) wlc 6597 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c rts_rspec[k] = brcms_c_rspec_to_rts_rspec(wlc, rspec[k], wlc 6604 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c (wlc->PLCPHdr_override == BRCMS_PLCP_LONG))) { wlc 6611 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c (wlc->PLCPHdr_override == BRCMS_PLCP_LONG))) { wlc 6631 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_compute_plcp(wlc, rts_rspec[0], rts_phylen, rts_plcp); wlc 6634 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_compute_plcp(wlc, rts_rspec[1], rts_phylen, wlc 6642 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c durid = brcms_c_compute_rtscts_dur(wlc, use_cts, rts_rspec[0], wlc 6647 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c durid = brcms_c_compute_rtscts_dur(wlc, use_cts, wlc 6684 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcm_c_ampdu_null_delim_cnt(wlc->ampdu, scb, rspec, phylen); wlc 6701 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c xfts = frametype(rspec[1], wlc->mimoft); wlc 6702 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c xfts |= (frametype(rts_rspec[0], wlc->mimoft) << XFTS_RTS_FT_SHIFT); wlc 6703 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c xfts |= (frametype(rts_rspec[1], wlc->mimoft) << XFTS_FBRRTS_FT_SHIFT); wlc 6704 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c xfts |= CHSPEC_CHANNEL(wlc_phy_chanspec_get(wlc->band->pi)) << wlc 6709 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c phyctl = frametype(rspec[0], wlc->mimoft); wlc 6717 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c phyctl |= brcms_c_stf_d11hdrs_phyctl_txant(wlc, rspec[0]); wlc 6721 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (BRCMS_PHY_11N_CAP(wlc->band)) { wlc 6724 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c phyctl1 = brcms_c_phytxctl1_calc(wlc, rspec[0]); wlc 6726 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c phyctl1 = brcms_c_phytxctl1_calc(wlc, rspec[1]); wlc 6730 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c phyctl1 = brcms_c_phytxctl1_calc(wlc, rts_rspec[0]); wlc 6732 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c phyctl1 = brcms_c_phytxctl1_calc(wlc, rts_rspec[1]); wlc 6744 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_calc_lsig_len(wlc, rspec[0], phylen); wlc 6751 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_calc_lsig_len(wlc, rspec[1], phylen); wlc 6757 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if ((scb->flags & SCB_WMECAP) && qos && wlc->edcf_txop[ac]) { wlc 6763 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_calc_frame_time(wlc, rspec[0], wlc 6769 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_calc_cts_time(wlc, rts_rspec[0], wlc 6772 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_calc_cts_time(wlc, rts_rspec[1], wlc 6785 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_compute_frame_dur(wlc, rspec[0], wlc 6789 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_calc_frame_time(wlc, rspec[1], wlc 6793 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_compute_frame_dur(wlc, rspec[1], wlc 6809 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->edcf_txop[ac] >= (dur - frag_dur)) { wlc 6813 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_calc_frame_len(wlc, wlc 6815 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c (wlc->edcf_txop[ac] - wlc 6822 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->usr_fragthresh) wlc 6824 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->usr_fragthresh; wlc 6826 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->fragthresh[queue] != wlc 6828 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->fragthresh[queue] = wlc 6831 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_warn(wlc->hw->d11core, wlc 6833 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->unit, fifo_names[queue], wlc 6837 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (dur > wlc->edcf_txop[ac]) wlc 6838 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_warn(wlc->hw->d11core, wlc 6840 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->unit, __func__, wlc 6842 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c phylen, wlc->fragthresh[queue], wlc 6843 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c dur, wlc->edcf_txop[ac]); wlc 6850 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static int brcms_c_tx(struct brcms_c_info *wlc, struct sk_buff *skb) wlc 6858 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c dma = wlc->hw->di[fifo]; wlc 6871 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_warn(wlc->hw->d11core, wlc 6873 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c WARN_ON(!ieee80211_queue_stopped(wlc->pub->ieee_hw, wlc 6890 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc->hw, M_BCMC_FID, frameid); wlc 6893 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c ret = brcms_c_txfifo(wlc, fifo, skb); wlc 6904 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bool brcms_c_sendpkt_mac80211(struct brcms_c_info *wlc, struct sk_buff *sdu, wlc 6908 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct scb *scb = &wlc->pri_scb; wlc 6911 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_d11hdrs_mac80211(wlc, hw, sdu, scb, 0, 1, fifo, 0); wlc 6912 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!brcms_c_tx(wlc, sdu)) wlc 6921 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_txfifo(struct brcms_c_info *wlc, uint fifo, struct sk_buff *p) wlc 6923 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct dma_pub *dma = wlc->hw->di[fifo]; wlc 6927 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c ret = dma_txfast(wlc, dma, p); wlc 6929 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wiphy_err(wlc->wiphy, "txfifo: fatal, toss frames !!!\n"); wlc 6938 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c !ieee80211_queue_stopped(wlc->pub->ieee_hw, queue)) wlc 6939 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c ieee80211_stop_queue(wlc->pub->ieee_hw, queue); wlc 6945 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_rspec_to_rts_rspec(struct brcms_c_info *wlc, u32 rspec, wlc 6953 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c else if (wlc->band->gmode && wlc->protection->_g && !is_cck_rate(rspec)) wlc 6961 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c rts_rspec = brcms_basic_rate(wlc, BRCM_RATE_11M); wlc 6967 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c rts_rspec = brcms_basic_rate(wlc, rspec); wlc 6969 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (BRCMS_PHY_11N_CAP(wlc->band)) { wlc 6985 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c rts_rspec |= (wlc->stf->ss_opmode << RSPEC_STF_SHIFT); wlc 6992 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_bcn_li_upd(struct brcms_c_info *wlc) wlc 6995 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->bcn_li_dtim == 1) wlc 6996 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc->hw, M_BCN_LI, 0); wlc 6998 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc->hw, M_BCN_LI, wlc 6999 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c (wlc->bcn_li_dtim << 8) | wlc->bcn_li_bcn); wlc 7027 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static u64 brcms_c_recover_tsf64(struct brcms_c_info *wlc, wlc 7033 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_read_tsf(wlc->hw, &tsf_l, &tsf_h); wlc 7052 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c prep_mac80211_status(struct brcms_c_info *wlc, struct d11rxhdr *rxh, wlc 7061 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c rx_status->mactime = brcms_c_recover_tsf64(wlc, rxh); wlc 7071 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c rx_status->signal = wlc_phy_rssi_compute(wlc->hw->band->pi, rxh); wlc 7125 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(wlc->hw->d11core, wlc 7144 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(wlc->hw->d11core, "%s: Unknown modulation\n", wlc 7154 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(wlc->hw->d11core, "%s: RX_FLAG_FAILED_PLCP_CRC\n", wlc 7159 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(wlc->hw->d11core, "%s: RX_FLAG_FAILED_FCS_CRC\n", wlc 7165 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_recvctl(struct brcms_c_info *wlc, struct d11rxhdr *rxh, wlc 7173 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c prep_mac80211_status(wlc, rxh, p, &rx_status); wlc 7181 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->hw->suspended_fifos) { wlc 7184 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_mute(wlc->hw, false); wlc 7188 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c ieee80211_rx_irqsafe(wlc->pub->ieee_hw, p); wlc 7198 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_calc_lsig_len(struct brcms_c_info *wlc, u32 ratespec, wlc 7240 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_mod_prb_rsp_rate_table(struct brcms_c_info *wlc, uint frame_len) wlc 7250 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c sifs = get_sifs(wlc->band); wlc 7252 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c rs_dflt = brcms_c_rateset_get_hwrs(wlc); wlc 7255 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_rateset_mcs_upd(&rs, wlc->stf->txstreams); wlc 7264 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c entry_ptr = brcms_b_rate_shm_offset(wlc->hw, rate); wlc 7267 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_compute_plcp(wlc, rate, frame_len, plcp); wlc 7273 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c dur = (u16) brcms_c_calc_frame_time(wlc, rate, wlc 7278 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc->hw, entry_ptr + M_RT_PRS_PLCP_POS, wlc 7280 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc->hw, entry_ptr + M_RT_PRS_PLCP_POS + 2, wlc 7282 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc->hw, entry_ptr + M_RT_PRS_DUR_POS, dur); wlc 7291 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_beacon_write(struct brcms_c_info *wlc, wlc 7297 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw = wlc->hw; wlc 7298 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct ieee80211_hw *ieee_hw = brcms_c_pub(wlc)->ieee_hw; wlc 7304 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->bcn_rspec = ieee80211_get_tx_rate(ieee_hw, tx_info)->hw_value; wlc 7306 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_compute_plcp(wlc, wlc->bcn_rspec, wlc 7311 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_beacon_phytxctl_txant_upd(wlc, wlc->bcn_rspec); wlc 7341 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_update_beacon_hw(struct brcms_c_info *wlc, wlc 7345 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw = wlc->hw; wlc 7358 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->beacon_template_virgin) { wlc 7359 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->beacon_template_virgin = false; wlc 7360 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_beacon_write(wlc, beacon, tim_offset, dtim_period, true, wlc 7371 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->defmacintmask |= MI_BCNTPL; wlc 7376 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_beacon_write(wlc, beacon, tim_offset, dtim_period, true, wlc 7383 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_beacon_write(wlc, beacon, tim_offset, dtim_period, wlc 7395 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_c_update_beacon(struct brcms_c_info *wlc) wlc 7397 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_bss_cfg *bsscfg = wlc->bsscfg; wlc 7399 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->pub->up && (bsscfg->type == BRCMS_TYPE_AP || wlc 7402 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->defmacintmask &= ~MI_BCNTPL; wlc 7403 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!wlc->beacon) wlc 7405 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_update_beacon_hw(wlc, wlc->beacon, wlc 7406 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->beacon_tim_offset, wlc 7407 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->beacon_dtim_period); wlc 7411 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_c_set_new_beacon(struct brcms_c_info *wlc, struct sk_buff *beacon, wlc 7416 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->beacon) wlc 7417 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c dev_kfree_skb_any(wlc->beacon); wlc 7418 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->beacon = beacon; wlc 7421 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c skb_push(wlc->beacon, D11_PHY_HDR_LEN); wlc 7422 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->beacon_tim_offset = tim_offset; wlc 7423 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->beacon_dtim_period = dtim_period; wlc 7424 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_update_beacon(wlc); wlc 7427 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_c_set_new_probe_resp(struct brcms_c_info *wlc, wlc 7432 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->probe_resp) wlc 7433 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c dev_kfree_skb_any(wlc->probe_resp); wlc 7434 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->probe_resp = probe_resp; wlc 7437 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c skb_push(wlc->probe_resp, D11_PHY_HDR_LEN); wlc 7438 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_update_probe_resp(wlc, false); wlc 7441 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_c_enable_probe_resp(struct brcms_c_info *wlc, bool enable) wlc 7447 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->prb_resp_timeout = enable ? BRCMS_PRB_RESP_TIMEOUT : 1; wlc 7448 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc->hw, M_PRS_MAXTIME, wlc->prb_resp_timeout); wlc 7454 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_shm_ssid_upd(struct brcms_c_info *wlc, struct brcms_bss_cfg *cfg) wlc 7464 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_copyto_shm(wlc, base, ssidbuf, IEEE80211_MAX_SSID_LEN); wlc 7465 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc->hw, M_SSIDLEN, (u16) cfg->SSID_len); wlc 7469 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_bss_update_probe_resp(struct brcms_c_info *wlc, wlc 7479 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_suspend_mac_and_wait(wlc); wlc 7482 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_template_ram(wlc->hw, T_PRS_TPL_BASE, wlc 7486 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc->hw, M_PRB_RESP_FRM_LEN, (u16) len); wlc 7489 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_shm_ssid_upd(wlc, cfg); wlc 7497 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_mod_prb_rsp_rate_table(wlc, wlc 7501 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_enable_mac(wlc); wlc 7504 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_c_update_probe_resp(struct brcms_c_info *wlc, bool suspend) wlc 7506 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_bss_cfg *bsscfg = wlc->bsscfg; wlc 7509 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->pub->up && (bsscfg->type == BRCMS_TYPE_AP || wlc 7511 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!wlc->probe_resp) wlc 7513 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_bss_update_probe_resp(wlc, bsscfg, wlc->probe_resp, wlc 7530 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_set_addrmatch(struct brcms_c_info *wlc, int match_reg_offset, wlc 7533 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_set_addrmatch(wlc->hw, match_reg_offset, addr); wlc 7535 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c memcpy(wlc->bsscfg->BSSID, addr, ETH_ALEN); wlc 7541 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_c_scan_start(struct brcms_c_info *wlc) wlc 7543 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_hold_upd(wlc->band->pi, PHY_HOLD_FOR_SCAN, true); wlc 7546 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_c_scan_stop(struct brcms_c_info *wlc) wlc 7548 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_hold_upd(wlc->band->pi, PHY_HOLD_FOR_SCAN, false); wlc 7551 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_c_associate_upd(struct brcms_c_info *wlc, bool state) wlc 7553 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->associated = state; wlc 7574 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c int brcms_c_get_curband(struct brcms_c_info *wlc) wlc 7576 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c return wlc->band->bandunit; wlc 7579 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bool brcms_c_tx_flush_completed(struct brcms_c_info *wlc) wlc 7584 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c for (i = 0; i < ARRAY_SIZE(wlc->hw->di); i++) wlc 7585 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->hw->di[i]) wlc 7586 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c dma_kick_tx(wlc->hw->di[i]); wlc 7588 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c return !brcms_txpktpendtot(wlc); wlc 7591 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_c_set_beacon_listen_interval(struct brcms_c_info *wlc, u8 interval) wlc 7593 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->bcn_li_bcn = interval; wlc 7594 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->pub->up) wlc 7595 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_bcn_li_upd(wlc); wlc 7598 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c u64 brcms_c_tsf_get(struct brcms_c_info *wlc) wlc 7603 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_read_tsf(wlc->hw, &tsf_l, &tsf_h); wlc 7612 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_c_tsf_set(struct brcms_c_info *wlc, u64 tsf) wlc 7616 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_time_lock(wlc); wlc 7622 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_write32(wlc->hw->d11core, D11REGOFFS(tsf_timerlow), tsf_l); wlc 7623 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_write32(wlc->hw->d11core, D11REGOFFS(tsf_timerhigh), tsf_h); wlc 7625 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_time_unlock(wlc); wlc 7628 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c int brcms_c_set_tx_power(struct brcms_c_info *wlc, int txpwr) wlc 7634 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c return wlc_phy_txpower_set(wlc->band->pi, qdbm, false); wlc 7637 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c int brcms_c_get_tx_power(struct brcms_c_info *wlc) wlc 7642 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_txpower_get(wlc->band->pi, &qdbm, &override); wlc 7653 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c static void brcms_c_recv(struct brcms_c_info *wlc, struct sk_buff *p) wlc 7669 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_err(wlc->hw->d11core, wlc 7671 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->pub->unit, p->len); wlc 7681 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!(wlc->filter_flags & FIF_FCSFAIL)) wlc 7694 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_recvctl(wlc, rxh, p); wlc 7754 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_recv(wlc_hw->wlc, p); wlc 7764 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bool brcms_c_dpc(struct brcms_c_info *wlc, bool bounded) wlc 7767 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_hardware *wlc_hw = wlc->hw; wlc 7770 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (brcms_deviceremoved(wlc)) { wlc 7773 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_down(wlc->wl); wlc 7778 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c macintstatus = wlc->macintstatus; wlc 7779 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->macintstatus = 0; wlc 7789 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (brcms_b_txstatus(wlc->hw, bounded, &fatal)) wlc 7790 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->macintstatus |= MI_TFS; wlc 7798 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_tbtt(wlc); wlc 7803 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bcma_set32(core, D11REGOFFS(maccommand), wlc->qvalid); wlc 7804 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->qvalid = 0; wlc 7813 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->macintstatus |= MI_DMAINT; wlc 7826 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_fatal_error(wlc_hw->wlc->wl); wlc 7836 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_rfkill_set_hw_state(wlc->wl); wlc 7841 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_update_beacon(wlc); wlc 7844 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c return wlc->macintstatus != 0; wlc 7847 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_fatal_error(wlc_hw->wlc->wl); wlc 7848 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c return wlc->macintstatus != 0; wlc 7851 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c void brcms_c_init(struct brcms_c_info *wlc, bool mute_tx) wlc 7853 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct bcma_device *core = wlc->hw->d11core; wlc 7854 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct ieee80211_channel *ch = wlc->pub->ieee_hw->conf.chandef.chan; wlc 7857 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_dbg_info(core, "wl%d\n", wlc->pub->unit); wlc 7861 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_init(wlc->hw, chanspec); wlc 7864 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_bcn_li_upd(wlc); wlc 7867 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_set_mac(wlc->bsscfg); wlc 7868 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_set_bssid(wlc->bsscfg); wlc 7871 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->pub->associated && wlc->pub->up) { wlc 7875 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c bi = wlc->bsscfg->current_bss->beacon_period << 10; wlc 7884 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_set_ps_ctrl(wlc); wlc 7887 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_bandinit_ordered(wlc, chanspec); wlc 7890 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc->hw, M_PRS_MAXTIME, wlc->prb_resp_timeout); wlc 7893 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_write_shm(wlc->hw, M_MBURST_TXOP, wlc 7894 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c (wlc-> wlc 7898 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_duty_cycle_set(wlc, wlc->tx_duty_cycle_ofdm, true, true); wlc 7899 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_duty_cycle_set(wlc, wlc->tx_duty_cycle_cck, false, true); wlc 7905 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_ampdu_shm_upd(wlc->ampdu); wlc 7908 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_bsinit(wlc); wlc 7912 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_edcf_setparams(wlc, false); wlc 7915 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->ucode_rev == 0) { wlc 7919 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c rev = brcms_b_read_shm(wlc->hw, M_BOM_REV_MAJOR); wlc 7920 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c patch = brcms_b_read_shm(wlc->hw, M_BOM_REV_MINOR); wlc 7921 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->ucode_rev = (rev << NBITS(u16)) | patch; wlc 7922 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c snprintf(wlc->wiphy->fw_version, wlc 7923 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c sizeof(wlc->wiphy->fw_version), "%u.%u", rev, patch); wlc 7927 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_enable_mac(wlc); wlc 7931 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_mute(wlc->hw, true); wlc 7940 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (GFIELD(wlc->wme_retries[0], EDCF_SHORT) == 0) { wlc 7945 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->wme_retries[ac] = wlc 7946 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_read_shm(wlc->hw, M_AC_TXLMT_ADDR(ac)); wlc 7957 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c struct brcms_c_info *wlc; wlc 7963 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc = brcms_c_attach_malloc(unit, &err, 0); wlc 7964 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc == NULL) wlc 7966 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->wiphy = wl->wiphy; wlc 7967 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c pub = wlc->pub; wlc 7970 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_info_dbg = wlc; wlc 7973 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->band = wlc->bandstate[0]; wlc 7974 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->core = wlc->corestate; wlc 7975 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->wl = wl; wlc 7978 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->bandinit_pending = false; wlc 7979 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->beacon_template_virgin = true; wlc 7982 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_info_init(wlc, unit); wlc 7985 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_ap_upd(wlc); wlc 7991 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c err = brcms_b_attach(wlc, core, unit, piomode); wlc 7995 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_protection_upd(wlc, BRCMS_PROT_N_PAM_OVR, OFF); wlc 7997 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c pub->phy_11ncapable = BRCMS_PHY_11N_CAP(wlc->band); wlc 8000 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->tx_duty_cycle_ofdm = 0; wlc 8001 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->tx_duty_cycle_cck = 0; wlc 8003 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_stf_phy_chain_calc(wlc); wlc 8006 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (BRCMS_ISNPHY(wlc->band) && (wlc->stf->txstreams == 1)) wlc 8007 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->stf->txant = wlc->stf->hw_txchain - 1; wlc 8010 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc_phy_stf_chain_init(wlc->band->pi, wlc->stf->hw_txchain, wlc 8011 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->stf->hw_rxchain); wlc 8015 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->core->txavail[i] = wlc->hw->txavail[i]; wlc 8017 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c memcpy(&wlc->perm_etheraddr, &wlc->hw->etheraddr, ETH_ALEN); wlc 8018 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c memcpy(&pub->cur_etheraddr, &wlc->hw->etheraddr, ETH_ALEN); wlc 8020 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c for (j = 0; j < wlc->pub->_nbands; j++) { wlc 8021 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->band = wlc->bandstate[j]; wlc 8023 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!brcms_c_attach_stf_ant_init(wlc)) { wlc 8029 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->band->CWmin = APHY_CWMIN; wlc 8030 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->band->CWmax = PHY_CWMAX; wlc 8033 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc->band->bandtype == BRCM_BAND_2G) { wlc 8034 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->band->gmode = GMODE_AUTO; wlc 8035 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_protection_upd(wlc, BRCMS_PROT_G_USER, wlc 8036 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->band->gmode); wlc 8040 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (BRCMS_PHY_11N_CAP(wlc->band)) { wlc 8042 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_protection_upd(wlc, BRCMS_PROT_N_USER, wlc 8049 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_default_rateset(wlc, &wlc->band->defrateset); wlc 8052 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_rateset_filter(&wlc->band->defrateset, wlc 8053 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c &wlc->band->hw_rateset, false, wlc 8055 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c (bool) (wlc->pub->_n_enab & SUPPORT_11N)); wlc 8062 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_stf_phy_txant_upd(wlc); wlc 8065 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c err = brcms_c_attach_module(wlc); wlc 8069 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!brcms_c_timers_init(wlc, unit)) { wlc 8077 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->cmi = brcms_c_channel_mgr_attach(wlc); wlc 8078 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (!wlc->cmi) { wlc 8086 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_bss_default_init(wlc); wlc 8092 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->bsscfg->wlc = wlc; wlc 8094 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->mimoft = FT_HT; wlc 8095 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->mimo_40txbw = AUTO; wlc 8096 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->ofdm_40txbw = AUTO; wlc 8097 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c wlc->cck_40txbw = AUTO; wlc 8098 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_update_mimo_band_bwcap(wlc, BRCMS_N_BW_20IN2G_40IN5G); wlc 8101 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (BRCMS_SGI_CAP_PHY(wlc)) { wlc 8102 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_ht_update_sgi_rx(wlc, (BRCMS_N_SGI_20 | wlc 8104 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c } else if (BRCMS_ISSSLPNPHY(wlc->band)) { wlc 8105 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_ht_update_sgi_rx(wlc, (BRCMS_N_SGI_20 | wlc 8108 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_ht_update_sgi_rx(wlc, 0); wlc 8111 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_b_antsel_set(wlc->hw, wlc->asi->antsel_avail); wlc 8116 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c return wlc; wlc 8121 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c if (wlc) wlc 8122 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c brcms_c_detach(wlc); wlc 141 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h #define CHANNEL_BANDUNIT(wlc, ch) \ wlc 144 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h #define OTHERBANDUNIT(wlc) \ wlc 145 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h ((uint)((wlc)->band->bandunit ? BAND_2G_INDEX : BAND_5G_INDEX)) wlc 216 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h #define BRCMS_STF_SS_STBC_TX(wlc, scb) \ wlc 217 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h (((wlc)->stf->txstreams > 1) && (((wlc)->band->band_stf_stbc_tx == ON) \ wlc 219 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h (wlc)->band->band_stf_stbc_tx == AUTO && \ wlc 220 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h isset(&((wlc)->stf->ss_algo_channel), PHY_TXC1_MODE_STBC)))) wlc 222 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h #define BRCMS_STBC_CAP_PHY(wlc) (BRCMS_ISNPHY(wlc->band) && \ wlc 223 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h NREV_GE(wlc->band->phyrev, 3)) wlc 225 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h #define BRCMS_SGI_CAP_PHY(wlc) ((BRCMS_ISNPHY(wlc->band) && \ wlc 226 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h NREV_GE(wlc->band->phyrev, 3)) || \ wlc 227 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h BRCMS_ISLCNPHY(wlc->band)) wlc 314 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h struct brcms_c_info *wlc; wlc 576 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h struct brcms_c_info *wlc; /* pointer to main wlc structure */ wlc 612 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h struct brcms_c_info *wlc; wlc 620 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h int brcms_c_txfifo(struct brcms_c_info *wlc, uint fifo, struct sk_buff *p); wlc 624 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h int brcms_c_set_gmode(struct brcms_c_info *wlc, u8 gmode, bool config); wlc 625 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h void brcms_c_mac_promisc(struct brcms_c_info *wlc, uint filter_flags); wlc 626 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h u16 brcms_c_calc_lsig_len(struct brcms_c_info *wlc, u32 ratespec, uint mac_len); wlc 627 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h u32 brcms_c_rspec_to_rts_rspec(struct brcms_c_info *wlc, u32 rspec, wlc 629 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h u16 brcms_c_compute_rtscts_dur(struct brcms_c_info *wlc, bool cts_only, wlc 635 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h void brcms_c_update_probe_resp(struct brcms_c_info *wlc, bool suspend); wlc 636 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h int brcms_c_set_nmode(struct brcms_c_info *wlc); wlc 637 drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h void brcms_c_beacon_phytxctl_txant_upd(struct brcms_c_info *wlc, u32 bcn_rate); wlc 34 drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c struct brcms_c_info *wlc; /* pointer to main wlc structure */ wlc 40 drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c struct brcms_c_info *wlc) { wlc 48 drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c physhim->wlc = wlc; wlc 123 drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c brcms_c_suspend_mac_and_wait(physhim->wlc); wlc 133 drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.c brcms_c_enable_mac(physhim->wlc); wlc 129 drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy_shim.h struct brcms_c_info *wlc); wlc 145 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h struct brcms_c_info *wlc; wlc 272 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h uint brcms_c_detach(struct brcms_c_info *wlc); wlc 273 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h int brcms_c_up(struct brcms_c_info *wlc); wlc 274 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h uint brcms_c_down(struct brcms_c_info *wlc); wlc 277 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h void brcms_c_init(struct brcms_c_info *wlc, bool mute_tx); wlc 278 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h void brcms_c_reset(struct brcms_c_info *wlc); wlc 280 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h void brcms_c_intrson(struct brcms_c_info *wlc); wlc 281 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h u32 brcms_c_intrsoff(struct brcms_c_info *wlc); wlc 282 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h void brcms_c_intrsrestore(struct brcms_c_info *wlc, u32 macintmask); wlc 283 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h bool brcms_c_intrsupd(struct brcms_c_info *wlc); wlc 284 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h bool brcms_c_isr(struct brcms_c_info *wlc); wlc 285 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h bool brcms_c_dpc(struct brcms_c_info *wlc, bool bounded); wlc 286 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h bool brcms_c_sendpkt_mac80211(struct brcms_c_info *wlc, struct sk_buff *sdu, wlc 288 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h bool brcms_c_aggregatable(struct brcms_c_info *wlc, u8 tid); wlc 289 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h void brcms_c_protection_upd(struct brcms_c_info *wlc, uint idx, int val); wlc 291 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h void brcms_c_set_addrmatch(struct brcms_c_info *wlc, int match_reg_offset, wlc 293 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h void brcms_c_wme_setparams(struct brcms_c_info *wlc, u16 aci, wlc 296 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h struct brcms_pub *brcms_c_pub(struct brcms_c_info *wlc); wlc 297 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h void brcms_c_ampdu_flush(struct brcms_c_info *wlc, struct ieee80211_sta *sta, wlc 299 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h void brcms_c_ampdu_tx_operational(struct brcms_c_info *wlc, u8 tid, wlc 306 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h void brcms_c_suspend_mac_and_wait(struct brcms_c_info *wlc); wlc 307 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h void brcms_c_enable_mac(struct brcms_c_info *wlc); wlc 308 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h void brcms_c_associate_upd(struct brcms_c_info *wlc, bool state); wlc 309 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h void brcms_c_scan_start(struct brcms_c_info *wlc); wlc 310 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h void brcms_c_scan_stop(struct brcms_c_info *wlc); wlc 311 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h int brcms_c_get_curband(struct brcms_c_info *wlc); wlc 312 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h int brcms_c_set_channel(struct brcms_c_info *wlc, u16 channel); wlc 313 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h int brcms_c_set_rate_limit(struct brcms_c_info *wlc, u16 srl, u16 lrl); wlc 314 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h void brcms_c_get_current_rateset(struct brcms_c_info *wlc, wlc 316 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h int brcms_c_set_rateset(struct brcms_c_info *wlc, struct brcm_rateset *rs); wlc 317 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h int brcms_c_set_beacon_period(struct brcms_c_info *wlc, u16 period); wlc 318 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h u16 brcms_c_get_phy_type(struct brcms_c_info *wlc, int phyidx); wlc 319 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h void brcms_c_set_shortslot_override(struct brcms_c_info *wlc, wlc 321 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h void brcms_c_set_beacon_listen_interval(struct brcms_c_info *wlc, u8 interval); wlc 322 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h u64 brcms_c_tsf_get(struct brcms_c_info *wlc); wlc 323 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h void brcms_c_tsf_set(struct brcms_c_info *wlc, u64 tsf); wlc 324 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h int brcms_c_set_tx_power(struct brcms_c_info *wlc, int txpwr); wlc 325 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h int brcms_c_get_tx_power(struct brcms_c_info *wlc); wlc 326 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h bool brcms_c_check_radio_disabled(struct brcms_c_info *wlc); wlc 327 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h void brcms_c_mute(struct brcms_c_info *wlc, bool on); wlc 328 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h bool brcms_c_tx_flush_completed(struct brcms_c_info *wlc); wlc 329 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h void brcms_c_start_station(struct brcms_c_info *wlc, u8 *addr); wlc 330 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h void brcms_c_start_ap(struct brcms_c_info *wlc, u8 *addr, const u8 *bssid, wlc 332 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h void brcms_c_start_adhoc(struct brcms_c_info *wlc, u8 *addr); wlc 333 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h void brcms_c_update_beacon(struct brcms_c_info *wlc); wlc 334 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h void brcms_c_set_new_beacon(struct brcms_c_info *wlc, struct sk_buff *beacon, wlc 336 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h void brcms_c_set_new_probe_resp(struct brcms_c_info *wlc, wlc 338 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h void brcms_c_enable_probe_resp(struct brcms_c_info *wlc, bool enable); wlc 339 drivers/net/wireless/broadcom/brcm80211/brcmsmac/pub.h void brcms_c_set_ssid(struct brcms_c_info *wlc, u8 *ssid, size_t ssid_len); wlc 31 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c #define BRCMS_STF_SS_STBC_RX(wlc) (BRCMS_ISNPHY(wlc->band) && \ wlc 32 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c NREV_GT(wlc->band->phyrev, 3) && NREV_LE(wlc->band->phyrev, 6)) wlc 47 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c static void brcms_c_stf_stbc_rx_ht_update(struct brcms_c_info *wlc, int val) wlc 50 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c if (BRCMS_STF_SS_STBC_RX(wlc)) { wlc 51 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c if ((wlc->stf->rxstreams == 1) && (val != HT_CAP_RX_STBC_NO)) wlc 55 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c if (wlc->pub->up) { wlc 56 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c brcms_c_update_beacon(wlc); wlc 57 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c brcms_c_update_probe_resp(wlc, true); wlc 65 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c void brcms_c_tempsense_upd(struct brcms_c_info *wlc) wlc 67 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c struct brcms_phy_pub *pi = wlc->band->pi; wlc 75 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c if (wlc->stf->txchain == wlc->stf->hw_txchain) { wlc 76 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c if (txchain && (txchain < wlc->stf->hw_txchain)) wlc 78 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c brcms_c_stf_txchain_set(wlc, txchain, true); wlc 79 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c } else if (wlc->stf->txchain < wlc->stf->hw_txchain) { wlc 80 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c if (txchain == wlc->stf->hw_txchain) wlc 82 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c brcms_c_stf_txchain_set(wlc, txchain, true); wlc 87 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c brcms_c_stf_ss_algo_channel_get(struct brcms_c_info *wlc, u16 *ss_algo_channel, wlc 96 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c if (!wlc->pub->up) { wlc 101 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc_phy_txpower_get_current(wlc->band->pi, &power, wlc 131 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c static bool brcms_c_stf_stbc_tx_set(struct brcms_c_info *wlc, s32 int_val) wlc 136 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c if ((int_val == ON) && (wlc->stf->txstreams == 1)) wlc 139 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->bandstate[BAND_2G_INDEX]->band_stf_stbc_tx = (s8) int_val; wlc 140 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->bandstate[BAND_5G_INDEX]->band_stf_stbc_tx = (s8) int_val; wlc 145 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c bool brcms_c_stf_stbc_rx_set(struct brcms_c_info *wlc, s32 int_val) wlc 151 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c if (BRCMS_STF_SS_STBC_RX(wlc)) { wlc 153 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c && (wlc->stf->rxstreams == 1)) wlc 157 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c brcms_c_stf_stbc_rx_ht_update(wlc, int_val); wlc 161 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c static int brcms_c_stf_txcore_set(struct brcms_c_info *wlc, u8 Nsts, wlc 164 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c brcms_dbg_ht(wlc->hw->d11core, "wl%d: Nsts %d core_mask %x\n", wlc 165 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->pub->unit, Nsts, core_mask); wlc 167 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c if (hweight8(core_mask) > wlc->stf->txstreams) wlc 170 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c if ((hweight8(core_mask) == wlc->stf->txstreams) && wlc 171 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c ((core_mask & ~wlc->stf->txchain) wlc 172 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c || !(core_mask & wlc->stf->txchain))) wlc 173 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c core_mask = wlc->stf->txchain; wlc 175 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->stf->txcore[Nsts] = core_mask; wlc 181 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->stf->phytxant = core_mask << PHY_TXC_ANT_SHIFT; wlc 182 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c brcms_b_txant_set(wlc->hw, wlc->stf->phytxant); wlc 183 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c if (wlc->clk) { wlc 184 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c brcms_c_suspend_mac_and_wait(wlc); wlc 185 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c brcms_c_beacon_phytxctl_txant_upd(wlc, wlc->bcn_rspec); wlc 186 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c brcms_c_enable_mac(wlc); wlc 193 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c static int brcms_c_stf_spatial_policy_set(struct brcms_c_info *wlc, int val) wlc 198 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c brcms_dbg_ht(wlc->hw->d11core, "wl%d: val %x\n", wlc->pub->unit, wlc 201 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->stf->spatial_policy = (s8) val; wlc 204 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->stf->txchain : txcore_default[i]; wlc 205 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c brcms_c_stf_txcore_set(wlc, (u8) i, core_mask); wlc 226 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c static void _brcms_c_stf_phy_txant_upd(struct brcms_c_info *wlc) wlc 230 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c txant = (s8) wlc->stf->txant; wlc 231 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c if (BRCMS_PHY_11N_CAP(wlc->band)) { wlc 233 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->stf->phytxant = PHY_TXC_ANT_0; wlc 235 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->stf->phytxant = PHY_TXC_ANT_1; wlc 237 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c if (BRCMS_ISNPHY(wlc->band) && wlc 238 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c NREV_GE(wlc->band->phyrev, 3) wlc 239 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c && NREV_LT(wlc->band->phyrev, 7)) wlc 240 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->stf->phytxant = PHY_TXC_ANT_2; wlc 242 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c if (BRCMS_ISLCNPHY(wlc->band) || wlc 243 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c BRCMS_ISSSLPNPHY(wlc->band)) wlc 244 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->stf->phytxant = PHY_TXC_LCNPHY_ANT_LAST; wlc 247 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c WARN_ON(wlc->stf->txchain <= 0); wlc 248 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->stf->phytxant = wlc 249 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->stf->txchain << PHY_TXC_ANT_SHIFT; wlc 254 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->stf->phytxant = PHY_TXC_OLD_ANT_0; wlc 256 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->stf->phytxant = PHY_TXC_OLD_ANT_1; wlc 258 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->stf->phytxant = PHY_TXC_OLD_ANT_LAST; wlc 261 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c brcms_b_txant_set(wlc->hw, wlc->stf->phytxant); wlc 264 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c int brcms_c_stf_txchain_set(struct brcms_c_info *wlc, s32 int_val, bool force) wlc 270 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c if (wlc->stf->txchain == txchain) wlc 273 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c if ((txchain & ~wlc->stf->hw_txchain) wlc 274 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c || !(txchain & wlc->stf->hw_txchain)) wlc 285 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->stf->txchain = txchain; wlc 286 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->stf->txstreams = txstreams; wlc 287 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c brcms_c_stf_stbc_tx_set(wlc, wlc->band->band_stf_stbc_tx); wlc 288 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c brcms_c_stf_ss_update(wlc, wlc->bandstate[BAND_2G_INDEX]); wlc 289 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c brcms_c_stf_ss_update(wlc, wlc->bandstate[BAND_5G_INDEX]); wlc 290 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->stf->txant = wlc 291 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c (wlc->stf->txstreams == 1) ? ANT_TX_FORCE_0 : ANT_TX_DEF; wlc 292 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c _brcms_c_stf_phy_txant_upd(wlc); wlc 294 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc_phy_stf_chain_set(wlc->band->pi, wlc->stf->txchain, wlc 295 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->stf->rxchain); wlc 298 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c brcms_c_stf_txcore_set(wlc, (u8) i, txcore_default[i]); wlc 307 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c int brcms_c_stf_ss_update(struct brcms_c_info *wlc, struct brcms_band *band) wlc 313 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c prev_stf_ss = wlc->stf->ss_opmode; wlc 319 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c if (BRCMS_STBC_CAP_PHY(wlc) && wlc 320 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->stf->ss_algosel_auto wlc 321 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c && (wlc->stf->ss_algo_channel != (u16) -1)) { wlc 322 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c upd_stf_ss = (wlc->stf->txstreams == 1 || wlc 323 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c isset(&wlc->stf->ss_algo_channel, wlc 327 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c if (wlc->band != band) wlc 329 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c upd_stf_ss = (wlc->stf->txstreams == 1) ? wlc 333 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->stf->ss_opmode = upd_stf_ss; wlc 334 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c brcms_b_band_stf_ss_set(wlc->hw, upd_stf_ss); wlc 340 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c int brcms_c_stf_attach(struct brcms_c_info *wlc) wlc 342 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->bandstate[BAND_2G_INDEX]->band_stf_ss_mode = PHY_TXC1_MODE_SISO; wlc 343 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->bandstate[BAND_5G_INDEX]->band_stf_ss_mode = PHY_TXC1_MODE_CDD; wlc 345 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c if (BRCMS_ISNPHY(wlc->band) && wlc 346 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c (wlc_phy_txpower_hw_ctrl_get(wlc->band->pi) != PHY_TPC_HW_ON)) wlc 347 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->bandstate[BAND_2G_INDEX]->band_stf_ss_mode = wlc 349 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c brcms_c_stf_ss_update(wlc, wlc->bandstate[BAND_2G_INDEX]); wlc 350 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c brcms_c_stf_ss_update(wlc, wlc->bandstate[BAND_5G_INDEX]); wlc 352 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c brcms_c_stf_stbc_rx_ht_update(wlc, HT_CAP_RX_STBC_NO); wlc 353 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->bandstate[BAND_2G_INDEX]->band_stf_stbc_tx = OFF; wlc 354 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->bandstate[BAND_5G_INDEX]->band_stf_stbc_tx = OFF; wlc 356 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c if (BRCMS_STBC_CAP_PHY(wlc)) { wlc 357 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->stf->ss_algosel_auto = true; wlc 359 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->stf->ss_algo_channel = (u16) -1; wlc 364 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c void brcms_c_stf_detach(struct brcms_c_info *wlc) wlc 368 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c void brcms_c_stf_phy_txant_upd(struct brcms_c_info *wlc) wlc 370 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c _brcms_c_stf_phy_txant_upd(wlc); wlc 373 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c void brcms_c_stf_phy_chain_calc(struct brcms_c_info *wlc) wlc 375 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c struct ssb_sprom *sprom = &wlc->hw->d11core->bus->sprom; wlc 378 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->stf->hw_txchain = sprom->txchain; wlc 379 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->stf->hw_rxchain = sprom->rxchain; wlc 382 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c if (wlc->stf->hw_txchain == 0 || wlc->stf->hw_txchain == 0xf) { wlc 383 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c if (BRCMS_ISNPHY(wlc->band)) wlc 384 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->stf->hw_txchain = TXCHAIN_DEF_NPHY; wlc 386 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->stf->hw_txchain = TXCHAIN_DEF; wlc 389 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->stf->txchain = wlc->stf->hw_txchain; wlc 390 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->stf->txstreams = (u8) hweight8(wlc->stf->hw_txchain); wlc 392 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c if (wlc->stf->hw_rxchain == 0 || wlc->stf->hw_rxchain == 0xf) { wlc 393 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c if (BRCMS_ISNPHY(wlc->band)) wlc 394 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->stf->hw_rxchain = RXCHAIN_DEF_NPHY; wlc 396 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->stf->hw_rxchain = RXCHAIN_DEF; wlc 399 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->stf->rxchain = wlc->stf->hw_rxchain; wlc 400 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->stf->rxstreams = (u8) hweight8(wlc->stf->hw_rxchain); wlc 403 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c memcpy(wlc->stf->txcore, txcore_default, sizeof(wlc->stf->txcore)); wlc 406 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c wlc->stf->spatial_policy = MIN_SPATIAL_EXPANSION; wlc 407 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c brcms_c_stf_spatial_policy_set(wlc, MIN_SPATIAL_EXPANSION); wlc 410 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c static u16 _brcms_c_stf_phytxchain_sel(struct brcms_c_info *wlc, wlc 413 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c u16 phytxant = wlc->stf->phytxant; wlc 416 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c phytxant = wlc->stf->txchain << PHY_TXC_ANT_SHIFT; wlc 417 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c else if (wlc->stf->txant == ANT_TX_DEF) wlc 418 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c phytxant = wlc->stf->txchain << PHY_TXC_ANT_SHIFT; wlc 423 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c u16 brcms_c_stf_phytxchain_sel(struct brcms_c_info *wlc, u32 rspec) wlc 425 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c return _brcms_c_stf_phytxchain_sel(wlc, rspec); wlc 428 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c u16 brcms_c_stf_d11hdrs_phyctl_txant(struct brcms_c_info *wlc, u32 rspec) wlc 430 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c u16 phytxant = wlc->stf->phytxant; wlc 434 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c if (BRCMS_ISNPHY(wlc->band)) { wlc 435 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.c phytxant = _brcms_c_stf_phytxchain_sel(wlc, rspec); wlc 22 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.h int brcms_c_stf_attach(struct brcms_c_info *wlc); wlc 23 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.h void brcms_c_stf_detach(struct brcms_c_info *wlc); wlc 25 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.h void brcms_c_tempsense_upd(struct brcms_c_info *wlc); wlc 26 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.h void brcms_c_stf_ss_algo_channel_get(struct brcms_c_info *wlc, wlc 28 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.h int brcms_c_stf_ss_update(struct brcms_c_info *wlc, struct brcms_band *band); wlc 29 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.h void brcms_c_stf_phy_txant_upd(struct brcms_c_info *wlc); wlc 30 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.h int brcms_c_stf_txchain_set(struct brcms_c_info *wlc, s32 int_val, bool force); wlc 31 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.h bool brcms_c_stf_stbc_rx_set(struct brcms_c_info *wlc, s32 int_val); wlc 32 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.h void brcms_c_stf_phy_txant_upd(struct brcms_c_info *wlc); wlc 33 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.h void brcms_c_stf_phy_chain_calc(struct brcms_c_info *wlc); wlc 34 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.h u16 brcms_c_stf_phytxchain_sel(struct brcms_c_info *wlc, u32 rspec); wlc 35 drivers/net/wireless/broadcom/brcm80211/brcmsmac/stf.h u16 brcms_c_stf_d11hdrs_phyctl_txant(struct brcms_c_info *wlc, u32 rspec);