Lines Matching +full:per +full:- +full:rate

3 /*-
62 if (sc->sc_debug & RTWN_DEBUG_TXPWR) { in r92c_dump_txpower()
87 for (i = 0; i < sc->ntxchains; i++) { in r92c_dump_txpower()
89 "TX [%d]: MCS%d-%d: %d %d %d %d %d %d %d %d\n", in r92c_dump_txpower()
119 return (-1); in r92c_get_power_group()
122 KASSERT(0, ("wrong channel band (flags %08X)\n", c->ic_flags)); in r92c_get_power_group()
123 return (-1); in r92c_get_power_group()
134 const struct ieee80211com *ic = &sc->sc_ic; in r92c_get_txpower()
135 struct r92c_softc *rs = sc->sc_priv; in r92c_get_txpower()
136 struct rtwn_r92c_txpwr *rt = rs->rs_txpwr; in r92c_get_txpower()
137 const struct rtwn_r92c_txagc *base = rs->rs_txagc; in r92c_get_txpower()
143 if (group == -1) { /* shouldn't happen */ in r92c_get_txpower()
144 device_printf(sc->sc_dev, "%s: incorrect channel\n", __func__); in r92c_get_txpower()
155 max_mcs = RTWN_RIDX_HT_MCS(sc->ntxchains * 8 - 1); in r92c_get_txpower()
158 if (rs->regulatory == 0) { in r92c_get_txpower()
163 if (rs->regulatory == 3) { in r92c_get_txpower()
167 max = rt->ht40_max_pwr[chain][group]; in r92c_get_txpower()
169 max = rt->ht20_max_pwr[chain][group]; in r92c_get_txpower()
172 } else if (rs->regulatory == 1) { in r92c_get_txpower()
175 } else if (rs->regulatory != 2) in r92c_get_txpower()
179 /* Compute per-CCK rate Tx power. */ in r92c_get_txpower()
181 power[ridx] += rt->cck_tx_pwr[chain][group]; in r92c_get_txpower()
183 htpow = rt->ht40_1s_tx_pwr[chain][group]; in r92c_get_txpower()
184 if (sc->ntxchains > 1) { in r92c_get_txpower()
186 diff = rt->ht40_2s_tx_pwr_diff[chain][group]; in r92c_get_txpower()
187 htpow = (htpow > diff) ? htpow - diff : 0; in r92c_get_txpower()
190 /* Compute per-OFDM rate Tx power. */ in r92c_get_txpower()
191 diff = rt->ofdm_tx_pwr_diff[chain][group]; in r92c_get_txpower()
192 ofdmpow = htpow + diff; /* HT->OFDM correction. */ in r92c_get_txpower()
196 /* Compute per-MCS Tx power. */ in r92c_get_txpower()
198 diff = rt->ht20_tx_pwr_diff[chain][group]; in r92c_get_txpower()
199 htpow += diff; /* HT40->HT20 correction. */ in r92c_get_txpower()
209 if (power[ridx] > ic->ic_txpowlimit) in r92c_get_txpower()
210 power[ridx] = ic->ic_txpowlimit; in r92c_get_txpower()
221 /* Write per-CCK rate Tx power. */ in r92c_write_txpower()
241 /* Write per-OFDM rate Tx power. */ in r92c_write_txpower()
252 /* Write per-MCS Tx power. */ in r92c_write_txpower()
263 if (sc->ntxchains >= 2) { in r92c_write_txpower()
283 for (i = 0; i < sc->ntxchains; i++) { in r92c_set_txpower()
285 /* Compute per-rate Tx power values. */ in r92c_set_txpower()
289 /* Write per-rate Tx power values to hardware. */ in r92c_set_txpower()
302 if (vap->iv_bss == NULL) in r92c_set_tx_power()
304 if (vap->iv_bss->ni_chan == IEEE80211_CHAN_ANYC) in r92c_set_tx_power()
308 r92c_set_txpower(sc, vap->iv_bss->ni_chan); in r92c_set_tx_power()
316 struct r92c_softc *rs = sc->sc_priv; in r92c_set_bw40()
339 (rs->rf_chnlbw[0] & ~0xfff) | chan); in r92c_set_bw40()
345 struct r92c_softc *rs = sc->sc_priv; in r92c_set_bw20()
357 (rs->rf_chnlbw[0] & ~0xfff) | chan | R92C_RF_CHNLBW_BW20); in r92c_set_bw20()
363 struct r92c_softc *rs = sc->sc_priv; in r92c_set_chan()
372 for (i = 0; i < sc->nrxchains; i++) { in r92c_set_chan()
374 RW(rs->rf_chnlbw[i], R92C_RF_CHNLBW_CHNL, chan)); in r92c_set_chan()
395 struct rtwn_softc *sc = ic->ic_softc; in r92c_scan_start()
396 struct r92c_softc *rs = sc->sc_priv; in r92c_scan_start()
403 rs->rs_scan_start(ic); in r92c_scan_start()
409 struct rtwn_softc *sc = ic->ic_softc; in r92c_scan_end()
410 struct r92c_softc *rs = sc->sc_priv; in r92c_scan_end()
417 rs->rs_scan_end(ic); in r92c_scan_end()