Lines Matching +full:off +full:- +full:chip
3 /*-
6 * Copyright (c) 2015-2016 Andriy Voskoboinyk <avos@FreeBSD.org>
57 struct r92c_softc *rs = sc->sc_priv; in r92c_check_condition()
65 "%s: condition byte 0: %02X; chip %02X, board %02X\n", in r92c_check_condition()
66 __func__, cond[0], rs->chip, rs->board_type); in r92c_check_condition()
68 if (!(rs->chip & R92C_CHIP_92C)) { in r92c_check_condition()
69 if (rs->board_type == R92C_BOARD_TYPE_HIGHPA) in r92c_check_condition()
71 else if (rs->board_type == R92C_BOARD_TYPE_MINICARD) in r92c_check_condition()
76 if (rs->board_type == R92C_BOARD_TYPE_MINICARD) in r92c_check_condition()
95 for (i = 0; i < sc->page_count; i++) { in r92c_llt_init()
99 /* NB: 0xff indicates end-of-list. */ in r92c_llt_init()
103 * Use pages [page_count + 1; pktbuf_count - 1] in r92c_llt_init()
106 for (++i; i < sc->pktbuf_count - 1; i++) { in r92c_llt_init()
111 error = r92c_llt_write(sc, i, sc->page_count + 1); in r92c_llt_init()
125 struct r92c_softc *rs = sc->sc_priv; in r92c_init_bb_common()
129 for (i = 0; i < sc->bb_size; i++) { in r92c_init_bb_common()
130 const struct rtwn_bb_prog *bb_prog = &sc->bb_prog[i]; in r92c_init_bb_common()
132 while (!rtwn_check_condition(sc, bb_prog->cond)) { in r92c_init_bb_common()
133 KASSERT(bb_prog->next != NULL, in r92c_init_bb_common()
136 bb_prog = bb_prog->next; in r92c_init_bb_common()
139 for (j = 0; j < bb_prog->count; j++) { in r92c_init_bb_common()
142 bb_prog->reg[j], bb_prog->val[j]); in r92c_init_bb_common()
144 rtwn_bb_write(sc, bb_prog->reg[j], bb_prog->val[j]); in r92c_init_bb_common()
149 if (rs->chip & R92C_CHIP_92C_1T2R) { in r92c_init_bb_common()
166 for (i = 0; i < sc->agc_size; i++) { in r92c_init_bb_common()
167 const struct rtwn_agc_prog *agc_prog = &sc->agc_prog[i]; in r92c_init_bb_common()
169 while (!rtwn_check_condition(sc, agc_prog->cond)) { in r92c_init_bb_common()
170 KASSERT(agc_prog->next != NULL, in r92c_init_bb_common()
173 agc_prog = agc_prog->next; in r92c_init_bb_common()
176 for (j = 0; j < agc_prog->count; j++) { in r92c_init_bb_common()
178 "AGC: val 0x%08x\n", agc_prog->val[j]); in r92c_init_bb_common()
181 agc_prog->val[j]); in r92c_init_bb_common()
187 sc->sc_flags |= RTWN_FLAG_CCK_HIPWR; in r92c_init_bb_common()
202 while (!rtwn_check_condition(sc, prog->cond)) { in r92c_init_rf_chain()
203 KASSERT(prog->next != NULL, in r92c_init_rf_chain()
206 prog = prog->next; in r92c_init_rf_chain()
209 for (j = 0; j < prog->count; j++) { in r92c_init_rf_chain()
212 prog->reg[j], prog->val[j]); in r92c_init_rf_chain()
219 if (prog->reg[j] > 0xf8) { in r92c_init_rf_chain()
220 rtwn_delay(sc, prog->val[j]); in r92c_init_rf_chain()
224 rtwn_rf_write(sc, chain, prog->reg[j], prog->val[j]); in r92c_init_rf_chain()
235 struct r92c_softc *rs = sc->sc_priv; in r92c_init_rf()
237 int i, chain, idx, off; in r92c_init_rf() local
239 for (chain = 0, i = 0; chain < sc->nrxchains; chain++, i++) { in r92c_init_rf()
242 off = (chain % 2) * 16; in r92c_init_rf()
244 type = (reg >> off) & 0x10; in r92c_init_rf()
263 i += r92c_init_rf_chain(sc, &sc->rf_prog[i], chain); in r92c_init_rf()
267 0x10 << off, type << off); in r92c_init_rf()
270 rs->rf_chnlbw[chain] = rtwn_rf_read(sc, chain, in r92c_init_rf()
274 if ((rs->chip & (R92C_CHIP_UMC_A_CUT | R92C_CHIP_92C)) == in r92c_init_rf()
315 if (sc->ntxchains != 1 || sc->nrxchains != 1) in r92c_init_antsel()
321 sc->sc_ant = MS(reg, R92C_FPGA0_RFIFACEOE0_ANT); /* XXX */ in r92c_init_antsel()
328 struct r92c_softc *rs = sc->sc_priv; in r92c_pa_bias_init()
331 for (i = 0; i < sc->nrxchains; i++) { in r92c_pa_bias_init()
332 if (rs->pa_setting & (1 << i)) in r92c_pa_bias_init()
339 if (!(rs->pa_setting & 0x10)) in r92c_pa_bias_init()