Lines Matching full:rf

187 	struct bwi_rf *rf = &mac->mac_rf;  in bwi_rf_lo_isused()  local
190 idx = lo - rf->rf_lo; in bwi_rf_lo_isused()
193 return isset(rf->rf_lo_used, idx); in bwi_rf_lo_isused()
208 struct bwi_rf *rf = &mac->mac_rf; in bwi_rf_read() local
211 ctrl |= rf->rf_ctrl_rd; in bwi_rf_read()
212 if (rf->rf_ctrl_adj) { in bwi_rf_read()
229 struct bwi_rf *rf = &mac->mac_rf; in bwi_rf_attach() local
234 * Get RF manufacture/type/revision in bwi_rf_attach()
238 * Fake a BCM2050 RF in bwi_rf_attach()
262 device_printf(sc->sc_dev, "RF: manu 0x%03x, type 0x%04x, rev %u\n", in bwi_rf_attach()
266 * Verify whether the RF is supported in bwi_rf_attach()
268 rf->rf_ctrl_rd = 0; in bwi_rf_attach()
269 rf->rf_ctrl_adj = 0; in bwi_rf_attach()
275 device_printf(sc->sc_dev, "only BCM2060 rev 1 RF " in bwi_rf_attach()
279 rf->rf_ctrl_rd = BWI_RF_CTRL_RD_11A; in bwi_rf_attach()
280 rf->rf_on = bwi_rf_on_11a; in bwi_rf_attach()
281 rf->rf_off = bwi_rf_off_11a; in bwi_rf_attach()
282 rf->rf_calc_rssi = bwi_rf_calc_rssi_bcm2060; in bwi_rf_attach()
283 rf->rf_calc_noise = bwi_rf_calc_noise_bcm2060; in bwi_rf_attach()
287 rf->rf_ctrl_rd = BWI_RF_CTRL_RD_11BG; in bwi_rf_attach()
288 rf->rf_calc_rssi = bwi_rf_calc_rssi_bcm2050; in bwi_rf_attach()
289 rf->rf_calc_noise = bwi_rf_calc_noise_bcm2050; in bwi_rf_attach()
291 rf->rf_ctrl_adj = 1; in bwi_rf_attach()
292 rf->rf_calc_rssi = bwi_rf_calc_rssi_bcm2053; in bwi_rf_attach()
293 rf->rf_calc_noise = bwi_rf_calc_noise_bcm2053; in bwi_rf_attach()
295 device_printf(sc->sc_dev, "only BCM2050/BCM2053 RF " in bwi_rf_attach()
299 rf->rf_on = bwi_rf_on_11bg; in bwi_rf_attach()
300 rf->rf_off = bwi_rf_off_11bg; in bwi_rf_attach()
301 rf->rf_calc_nrssi_slope = bwi_rf_calc_nrssi_slope_11b; in bwi_rf_attach()
302 rf->rf_set_nrssi_thr = bwi_rf_set_nrssi_thr_11b; in bwi_rf_attach()
304 rf->rf_lo_update = bwi_rf_lo_update_11g; in bwi_rf_attach()
306 rf->rf_lo_update = bwi_rf_lo_update_11b; in bwi_rf_attach()
310 device_printf(sc->sc_dev, "only BCM2050 RF " in bwi_rf_attach()
314 rf->rf_ctrl_rd = BWI_RF_CTRL_RD_11BG; in bwi_rf_attach()
315 rf->rf_on = bwi_rf_on_11bg; in bwi_rf_attach()
317 rf->rf_off = bwi_rf_off_11g_rev5; in bwi_rf_attach()
319 rf->rf_off = bwi_rf_off_11bg; in bwi_rf_attach()
320 rf->rf_calc_nrssi_slope = bwi_rf_calc_nrssi_slope_11g; in bwi_rf_attach()
321 rf->rf_set_nrssi_thr = bwi_rf_set_nrssi_thr_11g; in bwi_rf_attach()
322 rf->rf_calc_rssi = bwi_rf_calc_rssi_bcm2050; in bwi_rf_attach()
323 rf->rf_calc_noise = bwi_rf_calc_noise_bcm2050; in bwi_rf_attach()
324 rf->rf_lo_update = bwi_rf_lo_update_11g; in bwi_rf_attach()
331 rf->rf_type = type; in bwi_rf_attach()
332 rf->rf_rev = rev; in bwi_rf_attach()
333 rf->rf_manu = manu; in bwi_rf_attach()
334 rf->rf_curchan = IEEE80211_CHAN_ANY; in bwi_rf_attach()
335 rf->rf_ant_mode = BWI_ANT_MODE_AUTO; in bwi_rf_attach()
387 struct bwi_rf *rf = &mac->mac_rf; in bwi_rf_get_gains() local
394 * Save PHY/RF registers for later restoration in bwi_rf_get_gains()
431 if (rf->rf_rev == 8) { in bwi_rf_get_gains()
494 * Restore saved PHY/RF registers in bwi_rf_get_gains()
515 rf->rf_lo_gain = (loop2 * 6) - (loop1 * 4) - 11; in bwi_rf_get_gains()
516 rf->rf_rx_gain = trsw * 2; in bwi_rf_get_gains()
519 rf->rf_lo_gain, rf->rf_rx_gain); in bwi_rf_get_gains()
528 struct bwi_rf *rf = &mac->mac_rf; in bwi_rf_init() local
530 if (rf->rf_type == BWI_RF_T_BCM2060) { in bwi_rf_init()
533 if (rf->rf_flags & BWI_RF_F_INITED) in bwi_rf_init()
534 RF_WRITE(mac, 0x78, rf->rf_calib); in bwi_rf_init()
569 struct bwi_rf *rf = &mac->mac_rf; in bwi_rf_work_around() local
576 if (rf->rf_type != BWI_RF_T_BCM2050 || rf->rf_rev >= 6) in bwi_rf_work_around()
679 struct bwi_rf *rf = &mac->mac_rf; in bwi_phy812_value() local
685 lo_gain = rf->rf_lo_gain; in bwi_phy812_value()
686 if (rf->rf_rev == 8) in bwi_phy812_value()
770 struct bwi_rf *rf = &mac->mac_rf; in bwi_rf_init_bcm2050() local
852 if (rf->rf_rev == 8) { in bwi_rf_init_bcm2050()
958 rf->rf_calib = rfr_78; in bwi_rf_init_bcm2050()
960 rf->rf_calib = calib; in bwi_rf_init_bcm2050()
961 if (rf->rf_calib != 0xffff) { in bwi_rf_init_bcm2050()
963 "RF calibration value: 0x%04x\n", rf->rf_calib); in bwi_rf_init_bcm2050()
964 rf->rf_flags |= BWI_RF_F_INITED; in bwi_rf_init_bcm2050()
985 bwi_rf_work_around(mac, rf->rf_curchan); in bwi_rf_init_bcm2050()
1086 struct bwi_rf *rf = &mac->mac_rf; in bwi_rf_map_txpower() local
1097 rf->rf_txpower_max = __SHIFTOUT(val, in bwi_rf_map_txpower()
1100 rf->rf_txpower_max = __SHIFTOUT(val, in bwi_rf_map_txpower()
1105 rf->rf_txpower_max -= 3; in bwi_rf_map_txpower()
1107 if (rf->rf_txpower_max <= 0) { in bwi_rf_map_txpower()
1109 rf->rf_txpower_max = 74; in bwi_rf_map_txpower()
1112 "max txpower from sprom: %d dBm\n", rf->rf_txpower_max); in bwi_rf_map_txpower()
1139 if (rf->rf_txpower_max > reg_txpower_max) in bwi_rf_map_txpower()
1140 rf->rf_txpower_max = reg_txpower_max; in bwi_rf_map_txpower()
1142 "max txpower %d dBm\n", rf->rf_txpower_max); in bwi_rf_map_txpower()
1149 rf->rf_type != BWI_RF_T_BCM2050) { in bwi_rf_map_txpower()
1150 rf->rf_idle_tssi0 = BWI_DEFAULT_IDLE_TSSI; in bwi_rf_map_txpower()
1151 bcopy(bwi_txpower_map_11b, rf->rf_txpower_map0, in bwi_rf_map_txpower()
1152 sizeof(rf->rf_txpower_map0)); in bwi_rf_map_txpower()
1194 rf->rf_idle_tssi0 = BWI_DEFAULT_IDLE_TSSI; in bwi_rf_map_txpower()
1195 bcopy(txpower_map, rf->rf_txpower_map0, in bwi_rf_map_txpower()
1196 sizeof(rf->rf_txpower_map0)); in bwi_rf_map_txpower()
1217 rf->rf_idle_tssi0 = (int)__SHIFTOUT(val, mask); in bwi_rf_map_txpower()
1218 if (!IS_VALID_PA_PARAM(rf->rf_idle_tssi0)) in bwi_rf_map_txpower()
1219 rf->rf_idle_tssi0 = 62; in bwi_rf_map_txpower()
1229 error = bwi_rf_calc_txpower(&rf->rf_txpower_map0[i], i, in bwi_rf_map_txpower()
1245 "%d ", rf->rf_txpower_map0[i]); in bwi_rf_map_txpower()
1251 "idle tssi0: %d\n", rf->rf_idle_tssi0); in bwi_rf_map_txpower()
1259 struct bwi_rf *rf = &mac->mac_rf; in bwi_rf_lo_update_11g() local
1268 * Save RF/PHY registers for later restoration in bwi_rf_lo_update_11g()
1270 orig_chan = rf->rf_curchan; in bwi_rf_lo_update_11g()
1332 * Measure all RF LO in bwi_rf_lo_update_11g()
1337 * Restore saved RF/PHY registers in bwi_rf_lo_update_11g()
1646 struct bwi_rf *rf = &mac->mac_rf; in bwi_rf_calc_nrssi_slope_11b() local
1655 * Save RF/PHY registers for later restoration in bwi_rf_calc_nrssi_slope_11b()
1710 * Restore saved RF/PHY registers in bwi_rf_calc_nrssi_slope_11b()
1720 bwi_rf_work_around(mac, rf->rf_curchan); in bwi_rf_calc_nrssi_slope_11b()
1735 rf->rf_nrssi_slope = 0x10000; in bwi_rf_calc_nrssi_slope_11b()
1737 rf->rf_nrssi_slope = 0x400000 / (nrssi[0] - nrssi[1]); in bwi_rf_calc_nrssi_slope_11b()
1739 rf->rf_nrssi[0] = nrssi[0]; in bwi_rf_calc_nrssi_slope_11b()
1740 rf->rf_nrssi[1] = nrssi[1]; in bwi_rf_calc_nrssi_slope_11b()
1865 * Restore saved RF/PHY registers in bwi_rf_set_nrssi_ofs_11g()
1920 struct bwi_rf *rf = &mac->mac_rf; in bwi_rf_calc_nrssi_slope_11g() local
1929 if (rf->rf_rev >= 9) in bwi_rf_calc_nrssi_slope_11g()
1931 else if (rf->rf_rev == 8) in bwi_rf_calc_nrssi_slope_11g()
1938 * Save RF/PHY registers for later restoration in bwi_rf_calc_nrssi_slope_11g()
2012 if (rf->rf_rev == 8) { in bwi_rf_calc_nrssi_slope_11g()
2029 rf->rf_nrssi_slope = 0x10000; in bwi_rf_calc_nrssi_slope_11g()
2031 rf->rf_nrssi_slope = 0x400000 / (nrssi[0] - nrssi[1]); in bwi_rf_calc_nrssi_slope_11g()
2033 rf->rf_nrssi[0] = nrssi[1]; in bwi_rf_calc_nrssi_slope_11g()
2034 rf->rf_nrssi[1] = nrssi[0]; in bwi_rf_calc_nrssi_slope_11g()
2038 * Restore saved RF/PHY registers in bwi_rf_calc_nrssi_slope_11g()
2061 bwi_rf_work_around(mac, rf->rf_curchan); in bwi_rf_calc_nrssi_slope_11g()
2084 struct bwi_rf *rf = &mac->mac_rf; in bwi_rf_init_sw_nrssi_table() local
2087 d = 0x1f - rf->rf_nrssi[0]; in bwi_rf_init_sw_nrssi_table()
2091 val = (((i - d) * rf->rf_nrssi_slope) / 0x10000) + 0x3a; in bwi_rf_init_sw_nrssi_table()
2097 rf->rf_nrssi_table[i] = val; in bwi_rf_init_sw_nrssi_table()
2124 struct bwi_rf *rf = &mac->mac_rf; in bwi_rf_set_nrssi_thr_11b() local
2127 if (rf->rf_type != BWI_RF_T_BCM2050 || in bwi_rf_set_nrssi_thr_11b()
2134 if (rf->rf_rev >= 6) { in bwi_rf_set_nrssi_thr_11b()
2135 thr = (rf->rf_nrssi[1] - rf->rf_nrssi[0]) * 32; in bwi_rf_set_nrssi_thr_11b()
2136 thr += 20 * (rf->rf_nrssi[0] + 1); in bwi_rf_set_nrssi_thr_11b()
2139 thr = rf->rf_nrssi[1] - 5; in bwi_rf_set_nrssi_thr_11b()
2149 if (rf->rf_rev >= 6) { in bwi_rf_set_nrssi_thr_11b()
2162 _nrssi_threshold(const struct bwi_rf *rf, int32_t val) in _nrssi_threshold() argument
2164 val *= (rf->rf_nrssi[1] - rf->rf_nrssi[0]); in _nrssi_threshold()
2165 val += (rf->rf_nrssi[0] << 6); in _nrssi_threshold()
2245 bwi_rf_clear_state(struct bwi_rf *rf) in bwi_rf_clear_state() argument
2249 rf->rf_flags &= ~BWI_RF_CLEAR_FLAGS; in bwi_rf_clear_state()
2250 bzero(rf->rf_lo, sizeof(rf->rf_lo)); in bwi_rf_clear_state()
2251 bzero(rf->rf_lo_used, sizeof(rf->rf_lo_used)); in bwi_rf_clear_state()
2253 rf->rf_nrssi_slope = 0; in bwi_rf_clear_state()
2254 rf->rf_nrssi[0] = BWI_INVALID_NRSSI; in bwi_rf_clear_state()
2255 rf->rf_nrssi[1] = BWI_INVALID_NRSSI; in bwi_rf_clear_state()
2258 rf->rf_nrssi_table[i] = i; in bwi_rf_clear_state()
2260 rf->rf_lo_gain = 0; in bwi_rf_clear_state()
2261 rf->rf_rx_gain = 0; in bwi_rf_clear_state()
2263 bcopy(rf->rf_txpower_map0, rf->rf_txpower_map, in bwi_rf_clear_state()
2264 sizeof(rf->rf_txpower_map)); in bwi_rf_clear_state()
2265 rf->rf_idle_tssi = rf->rf_idle_tssi0; in bwi_rf_clear_state()
2388 struct bwi_rf *rf = &mac->mac_rf; in bwi_rf_tssi2dbm() local
2391 pwr_idx = rf->rf_idle_tssi + (int)tssi - rf->rf_base_tssi; in bwi_rf_tssi2dbm()
2402 *txpwr = rf->rf_txpower_map[pwr_idx]; in bwi_rf_tssi2dbm()
2427 struct bwi_rf *rf = &mac->mac_rf; in bwi_rf_calc_rssi_bcm2050() local
2432 rssi = ((31 - (int)rf->rf_nrssi_table[rssi]) * -131) / 128; in bwi_rf_calc_rssi_bcm2050()
2513 struct bwi_rf *rf = &mac->mac_rf; in bwi_rf_calc_noise_bcm2050() local
2518 noise = ((31 - (int)rf->rf_nrssi_table[noise]) * -131) / 128; in bwi_rf_calc_noise_bcm2050()
2572 struct bwi_rf *rf = &mac->mac_rf; in bwi_rf_lo_update_11b() local
2584 * Save RF/PHY registers for later restoration in bwi_rf_lo_update_11b()
2588 if (rf->rf_type == BWI_RF_T_BCM2050) { in bwi_rf_lo_update_11b()
2612 if (rf->rf_type == BWI_RF_T_BCM2050) { in bwi_rf_lo_update_11b()
2620 * Setup RF signal in bwi_rf_lo_update_11b()
2667 * Restore saved RF/PHY registers in bwi_rf_lo_update_11b()
2669 if (rf->rf_type == BWI_RF_T_BCM2050) { in bwi_rf_lo_update_11b()
2686 bwi_rf_work_around(mac, rf->rf_curchan); in bwi_rf_lo_update_11b()