Lines Matching full:chain

71 r92ce_iq_calib_chain(struct rtwn_softc *sc, int chain, uint16_t tx[2],  in r92ce_iq_calib_chain()  argument
76 if (chain == 0) { /* IQ calibration for chain 0. */ in r92ce_iq_calib_chain()
77 /* IQ calibration settings for chain 0. */ in r92ce_iq_calib_chain()
84 /* IQ calibration settings for chain 1. */ in r92ce_iq_calib_chain()
98 } else { /* IQ calibration for chain 1. */ in r92ce_iq_calib_chain()
110 if (status & (1 << (28 + chain * 3))) in r92ce_iq_calib_chain()
113 tx[0] = MS(rtwn_bb_read(sc, R92C_TX_POWER_IQK_BEFORE(chain)), in r92ce_iq_calib_chain()
115 tx[1] = MS(rtwn_bb_read(sc, R92C_TX_POWER_IQK_AFTER(chain)), in r92ce_iq_calib_chain()
120 if (status & (1 << (27 + chain * 3))) in r92ce_iq_calib_chain()
123 rx[0] = MS(rtwn_bb_read(sc, R92C_RX_POWER_IQK_BEFORE(chain)), in r92ce_iq_calib_chain()
125 rx[1] = MS(rtwn_bb_read(sc, R92C_RX_POWER_IQK_AFTER(chain)), in r92ce_iq_calib_chain()
144 int i, chain; in r92ce_iq_calib_run() local
209 for (chain = 0; chain < sc->ntxchains; chain++) { in r92ce_iq_calib_run()
210 if (chain > 0) { in r92ce_iq_calib_run()
211 /* Put chain 0 on standby. */ in r92ce_iq_calib_run()
216 /* Enable chain 1. */ in r92ce_iq_calib_run()
225 ret = r92ce_iq_calib_chain(sc, chain, in r92ce_iq_calib_run()
226 tx[chain], rx[chain]); in r92ce_iq_calib_run()
229 "%s: chain %d: Tx failed.\n", in r92ce_iq_calib_run()
230 __func__, chain); in r92ce_iq_calib_run()
231 tx[chain][0] = 0xff; in r92ce_iq_calib_run()
232 tx[chain][1] = 0xff; in r92ce_iq_calib_run()
233 rx[chain][0] = 0xff; in r92ce_iq_calib_run()
234 rx[chain][1] = 0xff; in r92ce_iq_calib_run()
237 "%s: chain %d: Rx failed.\n", in r92ce_iq_calib_run()
238 __func__, chain); in r92ce_iq_calib_run()
239 rx[chain][0] = 0xff; in r92ce_iq_calib_run()
240 rx[chain][1] = 0xff; in r92ce_iq_calib_run()
243 "%s: chain %d: Both Tx and Rx " in r92ce_iq_calib_run()
244 "succeeded.\n", __func__, chain); in r92ce_iq_calib_run()
249 "%s: results for run %d chain %d: tx[0] 0x%x, " in r92ce_iq_calib_run()
250 "tx[1] 0x%x, rx[0] 0x%x, rx[1] 0x%x\n", __func__, n, chain, in r92ce_iq_calib_run()
251 tx[chain][0], tx[chain][1], rx[chain][0], rx[chain][1]); in r92ce_iq_calib_run()
286 int chain, i, tx_ok[2], rx_ok[2]; in r92ce_iq_calib_compare_results() local
289 for (chain = 0; chain < sc->ntxchains; chain++) { in r92ce_iq_calib_compare_results()
291 if (tx1[chain][i] == 0xff || tx2[chain][i] == 0xff || in r92ce_iq_calib_compare_results()
292 rx1[chain][i] == 0xff || rx2[chain][i] == 0xff) in r92ce_iq_calib_compare_results()
295 tx_ok[chain] = (abs(tx1[chain][i] - tx2[chain][i]) <= in r92ce_iq_calib_compare_results()
298 rx_ok[chain] = (abs(rx1[chain][i] - rx2[chain][i]) <= in r92ce_iq_calib_compare_results()
312 uint16_t rx[2], int chain) in r92ce_iq_calib_write_results() argument
320 reg = rtwn_bb_read(sc, R92C_OFDM0_TXIQIMBALANCE(chain)); in r92ce_iq_calib_write_results()
326 rtwn_bb_setbits(sc, R92C_OFDM0_TXIQIMBALANCE(chain), 0x3ff, reg); in r92ce_iq_calib_write_results()
334 rtwn_bb_setbits(sc, R92C_OFDM0_TXAFE(chain), 0xf0000000, in r92ce_iq_calib_write_results()
336 rtwn_bb_setbits(sc, R92C_OFDM0_TXIQIMBALANCE(chain), 0x003f0000, in r92ce_iq_calib_write_results()
344 rtwn_bb_setbits(sc, R92C_OFDM0_RXIQIMBALANCE(chain), 0x3ff, in r92ce_iq_calib_write_results()
346 rtwn_bb_setbits(sc, R92C_OFDM0_RXIQIMBALANCE(chain), 0xfc00, in r92ce_iq_calib_write_results()
349 if (chain == 0) { in r92ce_iq_calib_write_results()