Lines Matching +full:0 +full:x11
21 static const s8 lna_gain_table[] = {15, -1, -17, 0, -30, -38}; in rtw8821a_cck_rx_pwr()
22 s8 rx_pwr_all = 0; in rtw8821a_cck_rx_pwr()
30 case 0: in rtw8821a_cck_rx_pwr()
62 /* [31] = 0 --> Page C */ in rtw8821a_iqk_backup_rf()
63 rtw_write32_mask(rtwdev, REG_CCASEL, BIT(31), 0x0); in rtw8821a_iqk_backup_rf()
66 for (i = 0; i < rf_num; i++) in rtw8821a_iqk_backup_rf()
77 /* [31] = 0 --> Page C */ in rtw8821a_iqk_restore_rf()
78 rtw_write32_mask(rtwdev, REG_CCASEL, BIT(31), 0x0); in rtw8821a_iqk_restore_rf()
80 for (i = 0; i < rf_reg_num; i++) in rtw8821a_iqk_restore_rf()
90 /* [31] = 0 --> Page C */ in rtw8821a_iqk_restore_afe()
91 rtw_write32_mask(rtwdev, REG_CCASEL, BIT(31), 0x0); in rtw8821a_iqk_restore_afe()
94 for (i = 0; i < afe_num; i++) in rtw8821a_iqk_restore_afe()
98 rtw_write32_mask(rtwdev, REG_CCASEL, BIT(31), 0x1); in rtw8821a_iqk_restore_afe()
100 rtw_write32(rtwdev, REG_OFDM0_XA_TX_IQ_IMBALANCE, 0x0); in rtw8821a_iqk_restore_afe()
101 rtw_write32(rtwdev, REG_OFDM0_A_TX_AFE, 0x0); in rtw8821a_iqk_restore_afe()
102 rtw_write32(rtwdev, REG_OFDM0_XB_TX_IQ_IMBALANCE, 0x0); in rtw8821a_iqk_restore_afe()
103 rtw_write32(rtwdev, REG_TSSI_TRK_SW, 0x3c000000); in rtw8821a_iqk_restore_afe()
104 rtw_write32(rtwdev, REG_LSSI_WRITE_A, 0x00000080); in rtw8821a_iqk_restore_afe()
105 rtw_write32(rtwdev, REG_TXAGCIDX, 0x00000000); in rtw8821a_iqk_restore_afe()
106 rtw_write32(rtwdev, REG_IQK_DPD_CFG, 0x20040000); in rtw8821a_iqk_restore_afe()
107 rtw_write32(rtwdev, REG_CFG_PMPD, 0x20000000); in rtw8821a_iqk_restore_afe()
108 rtw_write32(rtwdev, REG_RFECTL_A, 0x0); in rtw8821a_iqk_restore_afe()
114 /* [31] = 0 --> Page C */ in rtw8821a_iqk_rx_fill()
115 rtw_write32_mask(rtwdev, REG_CCASEL, BIT(31), 0x0); in rtw8821a_iqk_rx_fill()
118 0x000003ff, rx_x >> 1); in rtw8821a_iqk_rx_fill()
120 0x03ff0000, (rx_y >> 1) & 0x3ff); in rtw8821a_iqk_rx_fill()
127 rtw_write32_mask(rtwdev, REG_CCASEL, BIT(31), 0x1); in rtw8821a_iqk_tx_fill()
129 rtw_write32(rtwdev, REG_LSSI_WRITE_A, 0x00000080); in rtw8821a_iqk_tx_fill()
130 rtw_write32(rtwdev, REG_IQK_DPD_CFG, 0x20040000); in rtw8821a_iqk_tx_fill()
131 rtw_write32(rtwdev, REG_CFG_PMPD, 0x20000000); in rtw8821a_iqk_tx_fill()
132 rtw_write32_mask(rtwdev, REG_IQC_Y, 0x000007ff, tx_y); in rtw8821a_iqk_tx_fill()
133 rtw_write32_mask(rtwdev, REG_IQC_X, 0x000007ff, tx_x); in rtw8821a_iqk_tx_fill()
145 for (k = 0; k < 3; k++) { in rtw8821a_iqk_tx_vdf_true()
147 case 0: in rtw8821a_iqk_tx_vdf_true()
148 /* TX_Tone_idx[9:0], TxK_Mask[29] TX_Tone = 16 */ in rtw8821a_iqk_tx_vdf_true()
150 0x18008c38); in rtw8821a_iqk_tx_vdf_true()
151 /* RX_Tone_idx[9:0], RxK_Mask[29] */ in rtw8821a_iqk_tx_vdf_true()
152 rtw_write32(rtwdev, REG_OFDM0_A_TX_AFE, 0x38008c38); in rtw8821a_iqk_tx_vdf_true()
153 rtw_write32_mask(rtwdev, REG_INTPO_SETA, BIT(31), 0x0); in rtw8821a_iqk_tx_vdf_true()
157 BIT(28), 0x0); in rtw8821a_iqk_tx_vdf_true()
159 BIT(28), 0x0); in rtw8821a_iqk_tx_vdf_true()
160 rtw_write32_mask(rtwdev, REG_INTPO_SETA, BIT(31), 0x0); in rtw8821a_iqk_tx_vdf_true()
164 "vdf_y[1] = %x vdf_y[0] = %x\n", in rtw8821a_iqk_tx_vdf_true()
165 vdf_y[1] >> 21 & 0x00007ff, in rtw8821a_iqk_tx_vdf_true()
166 vdf_y[0] >> 21 & 0x00007ff); in rtw8821a_iqk_tx_vdf_true()
169 "vdf_x[1] = %x vdf_x[0] = %x\n", in rtw8821a_iqk_tx_vdf_true()
170 vdf_x[1] >> 21 & 0x00007ff, in rtw8821a_iqk_tx_vdf_true()
171 vdf_x[0] >> 21 & 0x00007ff); in rtw8821a_iqk_tx_vdf_true()
173 tx_dt[cal] = (vdf_y[1] >> 20) - (vdf_y[0] >> 20); in rtw8821a_iqk_tx_vdf_true()
175 tx_dt[cal] = (tx_dt[cal] >> 1) + (tx_dt[cal] & BIT(0)); in rtw8821a_iqk_tx_vdf_true()
177 /* TX_Tone_idx[9:0], TxK_Mask[29] TX_Tone = 16 */ in rtw8821a_iqk_tx_vdf_true()
179 0x18008c20); in rtw8821a_iqk_tx_vdf_true()
180 /* RX_Tone_idx[9:0], RxK_Mask[29] */ in rtw8821a_iqk_tx_vdf_true()
181 rtw_write32(rtwdev, REG_OFDM0_A_TX_AFE, 0x38008c20); in rtw8821a_iqk_tx_vdf_true()
182 rtw_write32_mask(rtwdev, REG_INTPO_SETA, BIT(31), 0x1); in rtw8821a_iqk_tx_vdf_true()
183 rtw_write32_mask(rtwdev, REG_INTPO_SETA, 0x3fff0000, in rtw8821a_iqk_tx_vdf_true()
184 tx_dt[cal] & 0x00003fff); in rtw8821a_iqk_tx_vdf_true()
188 rtw_write32(rtwdev, REG_RFECTL_A, 0x00100000); in rtw8821a_iqk_tx_vdf_true()
190 for (cal_retry = 0; cal_retry < 10; cal_retry++) { in rtw8821a_iqk_tx_vdf_true()
192 rtw_write32(rtwdev, REG_IQK_COM64, 0xfa000000); in rtw8821a_iqk_tx_vdf_true()
193 rtw_write32(rtwdev, REG_IQK_COM64, 0xf8000000); in rtw8821a_iqk_tx_vdf_true()
197 rtw_write32(rtwdev, REG_RFECTL_A, 0x00000000); in rtw8821a_iqk_tx_vdf_true()
199 for (delay_count = 0; delay_count < 20; delay_count++) { in rtw8821a_iqk_tx_vdf_true()
228 0x02000000); in rtw8821a_iqk_tx_vdf_true()
231 0x07ff0000); in rtw8821a_iqk_tx_vdf_true()
235 0x04000000); in rtw8821a_iqk_tx_vdf_true()
238 0x07ff0000); in rtw8821a_iqk_tx_vdf_true()
246 0x000007ff, 0x0); in rtw8821a_iqk_tx_vdf_true()
248 0x000007ff, 0x200); in rtw8821a_iqk_tx_vdf_true()
268 /* TX_Tone_idx[9:0], TxK_Mask[29] TX_Tone = 16 */ in rtw8821a_iqk_tx_vdf_false()
269 rtw_write32(rtwdev, REG_OFDM0_XA_TX_IQ_IMBALANCE, 0x18008c10); in rtw8821a_iqk_tx_vdf_false()
270 /* RX_Tone_idx[9:0], RxK_Mask[29] */ in rtw8821a_iqk_tx_vdf_false()
271 rtw_write32(rtwdev, REG_OFDM0_A_TX_AFE, 0x38008c10); in rtw8821a_iqk_tx_vdf_false()
272 rtw_write32(rtwdev, REG_RFECTL_A, 0x00100000); in rtw8821a_iqk_tx_vdf_false()
274 for (cal_retry = 0; cal_retry < 10; cal_retry++) { in rtw8821a_iqk_tx_vdf_false()
276 rtw_write32(rtwdev, REG_IQK_COM64, 0xfa000000); in rtw8821a_iqk_tx_vdf_false()
277 rtw_write32(rtwdev, REG_IQK_COM64, 0xf8000000); in rtw8821a_iqk_tx_vdf_false()
280 rtw_write32(rtwdev, REG_RFECTL_A, 0x00000000); in rtw8821a_iqk_tx_vdf_false()
282 for (delay_count = 0; delay_count < 20; delay_count++) { in rtw8821a_iqk_tx_vdf_false()
306 rtw_write32(rtwdev, REG_RFECTL_A, 0x02000000); in rtw8821a_iqk_tx_vdf_false()
308 0x07ff0000); in rtw8821a_iqk_tx_vdf_false()
311 rtw_write32(rtwdev, REG_RFECTL_A, 0x04000000); in rtw8821a_iqk_tx_vdf_false()
313 0x07ff0000); in rtw8821a_iqk_tx_vdf_false()
320 rtw_write32_mask(rtwdev, REG_IQC_Y, 0x000007ff, 0x0); in rtw8821a_iqk_tx_vdf_false()
321 rtw_write32_mask(rtwdev, REG_IQC_X, 0x000007ff, 0x200); in rtw8821a_iqk_tx_vdf_false()
334 rtw_write32(rtwdev, REG_RFECTL_A, 0x00100000); in rtw8821a_iqk_rx()
336 for (cal_retry = 0; cal_retry < 10; cal_retry++) { in rtw8821a_iqk_rx()
338 rtw_write32(rtwdev, REG_IQK_COM64, 0xfa000000); in rtw8821a_iqk_rx()
339 rtw_write32(rtwdev, REG_IQK_COM64, 0xf8000000); in rtw8821a_iqk_rx()
343 rtw_write32(rtwdev, REG_RFECTL_A, 0x00000000); in rtw8821a_iqk_rx()
345 for (delay_count = 0; delay_count < 20; delay_count++) { in rtw8821a_iqk_rx()
363 rtw_write32(rtwdev, REG_RFECTL_A, 0x06000000); in rtw8821a_iqk_rx()
365 0x07ff0000); in rtw8821a_iqk_rx()
368 rtw_write32(rtwdev, REG_RFECTL_A, 0x08000000); in rtw8821a_iqk_rx()
370 0x07ff0000); in rtw8821a_iqk_rx()
378 0x000003ff, 0x200 >> 1); in rtw8821a_iqk_rx()
380 0x03ff0000, 0x0 >> 1); in rtw8821a_iqk_rx()
389 int tx_average = 0, rx_average = 0, rx_iqk_loop = 0; in rtw8821a_iqk()
391 int tx_x = 0, tx_y = 0, rx_x = 0, rx_y = 0; in rtw8821a_iqk()
394 int rx_x_temp = 0, rx_y_temp = 0; in rtw8821a_iqk()
411 for (cal = 0; cal < CAL_NUM_8821A; cal++) { in rtw8821a_iqk()
414 /* [31] = 0 --> Page C */ in rtw8821a_iqk()
415 rtw_write32_mask(rtwdev, REG_CCASEL, BIT(31), 0x0); in rtw8821a_iqk()
418 /* Port 0 DAC/ADC on */ in rtw8821a_iqk()
419 rtw_write32(rtwdev, REG_AFE_PWR1_A, 0x77777777); in rtw8821a_iqk()
420 rtw_write32(rtwdev, REG_AFE_PWR2_A, 0x77777777); in rtw8821a_iqk()
422 rtw_write32(rtwdev, REG_RX_WAIT_CCA_TX_CCK_RFON_A, 0x19791979); in rtw8821a_iqk()
425 rtw_write32_mask(rtwdev, REG_3WIRE_SWA, 0xf, 0x4); in rtw8821a_iqk()
430 rtw_write32_mask(rtwdev, REG_CK_MONHA, GENMASK(26, 24), 0x7); in rtw8821a_iqk()
433 rtw_write_rf(rtwdev, RF_PATH_A, RF_LUTWE, RFREG_MASK, 0x80002); in rtw8821a_iqk()
434 rtw_write_rf(rtwdev, RF_PATH_A, RF_CFGCH, 0x00c00, 0x3); in rtw8821a_iqk()
436 0x20000); in rtw8821a_iqk()
438 0x0003f); in rtw8821a_iqk()
440 0xf3fc3); in rtw8821a_iqk()
443 0x931d5); in rtw8821a_iqk()
444 rtw_write_rf(rtwdev, RF_PATH_A, RF_RXBB2, RFREG_MASK, 0x8a001); in rtw8821a_iqk()
445 rtw_write32(rtwdev, REG_DAC_RSTB, 0x00008000); in rtw8821a_iqk()
446 rtw_write32_mask(rtwdev, REG_TXAGCIDX, BIT(0), 0x1); in rtw8821a_iqk()
448 rtw_write32(rtwdev, REG_IQK_COM00, 0x29002000); in rtw8821a_iqk()
450 rtw_write32(rtwdev, REG_IQK_COM32, 0xa9002000); in rtw8821a_iqk()
451 /* [0]:AGC_en, [15]:idac_K_Mask */ in rtw8821a_iqk()
452 rtw_write32(rtwdev, REG_IQK_COM96, 0x00462910); in rtw8821a_iqk()
455 rtw_write32_mask(rtwdev, REG_CCASEL, BIT(31), 0x1); in rtw8821a_iqk()
459 0x821403f7); in rtw8821a_iqk()
462 0x821403f4); in rtw8821a_iqk()
465 rtw_write32(rtwdev, REG_TSSI_TRK_SW, 0x68163e96); in rtw8821a_iqk()
467 rtw_write32(rtwdev, REG_TSSI_TRK_SW, 0x28163e96); in rtw8821a_iqk()
469 /* TX_Tone_idx[9:0], TxK_Mask[29] TX_Tone = 16 */ in rtw8821a_iqk()
470 rtw_write32(rtwdev, REG_OFDM0_XA_TX_IQ_IMBALANCE, 0x18008c10); in rtw8821a_iqk()
471 /* RX_Tone_idx[9:0], RxK_Mask[29] */ in rtw8821a_iqk()
472 rtw_write32(rtwdev, REG_OFDM0_A_TX_AFE, 0x38008c10); in rtw8821a_iqk()
473 rtw_write32(rtwdev, REG_RFECTL_A, 0x00100000); in rtw8821a_iqk()
474 rtw_write32(rtwdev, REG_IQK_COM64, 0xfa000000); in rtw8821a_iqk()
475 rtw_write32(rtwdev, REG_IQK_COM64, 0xf8000000); in rtw8821a_iqk()
478 rtw_write32(rtwdev, REG_RFECTL_A, 0x00000000); in rtw8821a_iqk()
480 /* [31] = 0 --> Page C */ in rtw8821a_iqk()
481 rtw_write32_mask(rtwdev, REG_CCASEL, BIT(31), 0x0); in rtw8821a_iqk()
482 rtw_write_rf(rtwdev, RF_PATH_A, RF_TXMOD, 0x7fe00, in rtw8821a_iqk()
483 rtw_read_rf(rtwdev, RF_PATH_A, RF_DTXLOK, 0xffc00)); in rtw8821a_iqk()
487 RF18_BW_MASK, 0x1); in rtw8821a_iqk()
490 RF18_BW_MASK, 0x0); in rtw8821a_iqk()
493 rtw_write32_mask(rtwdev, REG_CCASEL, BIT(31), 0x1); in rtw8821a_iqk()
496 /* [31] = 0 --> Page C */ in rtw8821a_iqk()
497 rtw_write32_mask(rtwdev, REG_CCASEL, BIT(31), 0x0); in rtw8821a_iqk()
498 rtw_write_rf(rtwdev, RF_PATH_A, RF_LUTWE, RFREG_MASK, 0x80000); in rtw8821a_iqk()
500 0x20000); in rtw8821a_iqk()
502 0x0003f); in rtw8821a_iqk()
504 0xf3fc3); in rtw8821a_iqk()
506 rtw_write_rf(rtwdev, RF_PATH_A, RF_TXA_PREPAD, RFREG_MASK, 0x931d5); in rtw8821a_iqk()
507 rtw_write_rf(rtwdev, RF_PATH_A, RF_RXBB2, RFREG_MASK, 0x8a001); in rtw8821a_iqk()
508 rtw_write_rf(rtwdev, RF_PATH_A, RF_LUTWE, RFREG_MASK, 0x00000); in rtw8821a_iqk()
509 rtw_write32(rtwdev, REG_DAC_RSTB, 0x00008000); in rtw8821a_iqk()
510 rtw_write32_mask(rtwdev, REG_TXAGCIDX, BIT(0), 0x1); in rtw8821a_iqk()
512 rtw_write32(rtwdev, REG_IQK_COM00, 0x29002000); in rtw8821a_iqk()
514 rtw_write32(rtwdev, REG_IQK_COM32, 0xa9002000); in rtw8821a_iqk()
515 /* [0]:AGC_en, [15]:idac_K_Mask */ in rtw8821a_iqk()
516 rtw_write32(rtwdev, REG_IQK_COM96, 0x0046a910); in rtw8821a_iqk()
519 rtw_write32_mask(rtwdev, REG_CCASEL, BIT(31), 0x1); in rtw8821a_iqk()
523 0x821403f7); in rtw8821a_iqk()
526 0x821403e3); in rtw8821a_iqk()
529 rtw_write32(rtwdev, REG_TSSI_TRK_SW, 0x40163e96); in rtw8821a_iqk()
531 rtw_write32(rtwdev, REG_TSSI_TRK_SW, 0x00163e96); in rtw8821a_iqk()
544 /* [31] = 0 --> Page C */ in rtw8821a_iqk()
545 rtw_write32_mask(rtwdev, REG_CCASEL, BIT(31), 0x0); in rtw8821a_iqk()
547 rtw_write_rf(rtwdev, RF_PATH_A, RF_LUTWE, RFREG_MASK, 0x80000); in rtw8821a_iqk()
549 0x30000); in rtw8821a_iqk()
551 0x0002f); in rtw8821a_iqk()
553 0xfffbb); in rtw8821a_iqk()
554 rtw_write_rf(rtwdev, RF_PATH_A, RF_RXBB2, RFREG_MASK, 0x88001); in rtw8821a_iqk()
555 rtw_write_rf(rtwdev, RF_PATH_A, RF_TXA_PREPAD, RFREG_MASK, 0x931d8); in rtw8821a_iqk()
556 rtw_write_rf(rtwdev, RF_PATH_A, RF_LUTWE, RFREG_MASK, 0x00000); in rtw8821a_iqk()
558 rtw_write32_mask(rtwdev, REG_IQK_COM00, 0x03FF8000, in rtw8821a_iqk()
559 (tx_x0[cal] >> 21) & 0x000007ff); in rtw8821a_iqk()
560 rtw_write32_mask(rtwdev, REG_IQK_COM00, 0x000007FF, in rtw8821a_iqk()
561 (tx_y0[cal] >> 21) & 0x000007ff); in rtw8821a_iqk()
562 rtw_write32_mask(rtwdev, REG_IQK_COM00, BIT(31), 0x1); in rtw8821a_iqk()
563 rtw_write32_mask(rtwdev, REG_IQK_COM00, BIT(31), 0x0); in rtw8821a_iqk()
564 rtw_write32(rtwdev, REG_DAC_RSTB, 0x00008000); in rtw8821a_iqk()
565 rtw_write32(rtwdev, REG_IQK_COM96, 0x0046a911); in rtw8821a_iqk()
568 rtw_write32_mask(rtwdev, REG_CCASEL, BIT(31), 0x1); in rtw8821a_iqk()
570 /* TX_Tone_idx[9:0], TxK_Mask[29] TX_Tone = 16 */ in rtw8821a_iqk()
571 rtw_write32(rtwdev, REG_OFDM0_XA_TX_IQ_IMBALANCE, 0x38008c10); in rtw8821a_iqk()
572 /* RX_Tone_idx[9:0], RxK_Mask[29] */ in rtw8821a_iqk()
573 rtw_write32(rtwdev, REG_OFDM0_A_TX_AFE, 0x18008c10); in rtw8821a_iqk()
574 rtw_write32(rtwdev, REG_OFDM0_XB_TX_IQ_IMBALANCE, 0x02140119); in rtw8821a_iqk()
581 for (i = 0; i < rx_iqk_loop; i++) { in rtw8821a_iqk()
582 if (rtw_hci_type(rtwdev) == RTW_HCI_TYPE_PCIE && i == 0) in rtw8821a_iqk()
583 rtw_write32(rtwdev, REG_TSSI_TRK_SW, 0x28161100); /* Good */ in rtw8821a_iqk()
585 rtw_write32(rtwdev, REG_TSSI_TRK_SW, 0x28160d00); in rtw8821a_iqk()
599 if (tx_average == 0) in rtw8821a_iqk()
602 for (i = 0; i < tx_average; i++) in rtw8821a_iqk()
605 i, (tx_x0[i] >> 21) & 0x000007ff, in rtw8821a_iqk()
606 i, (tx_y0[i] >> 21) & 0x000007ff); in rtw8821a_iqk()
612 rtw8821a_iqk_tx_fill(rtwdev, 0x200, 0x0); in rtw8821a_iqk()
614 if (rx_average == 0) in rtw8821a_iqk()
617 for (i = 0; i < rx_average; i++) { in rtw8821a_iqk()
619 "rx_x0[0][%d] = %x ;; rx_y0[0][%d] = %x\n", in rtw8821a_iqk()
620 i, (rx_x0[0][i] >> 21) & 0x000007ff, in rtw8821a_iqk()
621 i, (rx_y0[0][i] >> 21) & 0x000007ff); in rtw8821a_iqk()
626 i, (rx_x0[1][i] >> 21) & 0x000007ff, in rtw8821a_iqk()
627 i, (rx_y0[1][i] >> 21) & 0x000007ff); in rtw8821a_iqk()
630 rx_finish1 = rtw88xxa_iqk_finish(rx_average, 4, rx_x0[0], rx_y0[0], in rtw8821a_iqk()
652 rtw8821a_iqk_rx_fill(rtwdev, 0x200, 0x0); in rtw8821a_iqk()
658 0x520, 0x550, 0x808, 0xa04, 0x90c, 0xc00, 0x838, 0x82c in rtw8821a_do_iqk()
661 0xc5c, 0xc60, 0xc64, 0xc68 in rtw8821a_do_iqk()
664 0x65, 0x8f, 0x0 in rtw8821a_do_iqk()
700 GENMASK(17, 16), 0x03); in rtw8821a_pwr_track()
746 rtw_write8_mask(rtwdev, REG_BT_TDMA_TIME, BIT_MASK_SAMPLE_RATE, 0x5); in rtw8821a_coex_cfg_init()
754 rtw_write8(rtwdev, REG_BT_STAT_CTRL, 0x3); in rtw8821a_coex_cfg_init()
780 rtw_write32_mask(rtwdev, REG_RFE_CTRL8, 0x30000000, 0x1); in rtw8821a_coex_cfg_ant_switch()
788 rtw_write32_mask(rtwdev, REG_RFE_CTRL8, 0x30000000, 0x1); in rtw8821a_coex_cfg_ant_switch()
797 rtw_write32_mask(rtwdev, REG_RFE_CTRL8, 0x30000000, 0x1); in rtw8821a_coex_cfg_ant_switch()
805 rtw_write32_mask(rtwdev, REG_RFE_CTRL8, 0x30000000, in rtw8821a_coex_cfg_ant_switch()
806 share_ant ? 0x2 : 0x1); in rtw8821a_coex_cfg_ant_switch()
814 rtw_write32_mask(rtwdev, REG_RFE_CTRL8, 0x30000000, in rtw8821a_coex_cfg_ant_switch()
815 share_ant ? 0x2 : 0x1); in rtw8821a_coex_cfg_ant_switch()
894 {0, 0, 0, 0, 0}, /* SDIO */
895 {0, 0, 0, 0, 0}, /* PCI */
896 {8, 0, 0, 0, 1}, /* 2 bulk out endpoints */
897 {8, 0, 8, 0, 1}, /* 3 bulk out endpoints */
898 {8, 0, 8, 4, 1}, /* 4 bulk out endpoints */
940 [0] = { .addr = REG_RXIGI_A, .mask = 0x7f },
944 [0] = { .phy_pg_tbl = &rtw8821a_bb_pg_tbl,
958 * tdma case 112 (A2DP) byte 0 had to be modified from 0x61 to 0x51,
960 * rtw_8821au 1-2:1.2: [BTCoex], Bt_info[1], len=7, data=[81 00 0a 01 00 00]
967 {0x55555555, 0x55555555}, /* case-0 */
968 {0x55555555, 0x55555555},
969 {0x66555555, 0x66555555},
970 {0xaaaaaaaa, 0xaaaaaaaa},
971 {0x5a5a5a5a, 0x5a5a5a5a},
972 {0xfafafafa, 0xfafafafa}, /* case-5 */
973 {0x6a5a5555, 0xaaaaaaaa},
974 {0x6a5a56aa, 0x6a5a56aa},
975 {0x6a5a5a5a, 0x6a5a5a5a},
976 {0x66555555, 0x5a5a5a5a},
977 {0x66555555, 0x6a5a5a5a}, /* case-10 */
978 {0x66555555, 0xaaaaaaaa},
979 {0x66555555, 0x6a5a5aaa},
980 {0x66555555, 0x6aaa6aaa},
981 {0x66555555, 0x6a5a5aaa},
982 {0x66555555, 0xaaaaaaaa}, /* case-15 */
983 {0xffff55ff, 0xfafafafa},
984 {0xffff55ff, 0x6afa5afa},
985 {0xaaffffaa, 0xfafafafa},
986 {0xaa5555aa, 0x5a5a5a5a},
987 {0xaa5555aa, 0x6a5a5a5a}, /* case-20 */
988 {0xaa5555aa, 0xaaaaaaaa},
989 {0xffffffff, 0x55555555},
990 {0xffffffff, 0x5a5a5a5a},
991 {0xffffffff, 0x5a5a5a5a},
992 {0xffffffff, 0x5a5a5aaa}, /* case-25 */
993 {0x55555555, 0x5a5a5a5a},
994 {0x55555555, 0xaaaaaaaa},
995 {0x66555555, 0x6a5a6a5a},
996 {0x66556655, 0x66556655},
997 {0x66556aaa, 0x6a5a6aaa}, /* case-30 */
998 {0xffffffff, 0x5aaa5aaa},
999 {0x56555555, 0x5a5a5aaa}
1004 {0xffffffff, 0xffffffff}, /* case-100 */
1005 {0xffff55ff, 0xfafafafa},
1006 {0x66555555, 0x66555555},
1007 {0xaaaaaaaa, 0xaaaaaaaa},
1008 {0x5a5a5a5a, 0x5a5a5a5a},
1009 {0xffffffff, 0xffffffff}, /* case-105 */
1010 {0x5afa5afa, 0x5afa5afa},
1011 {0x55555555, 0xfafafafa},
1012 {0x66555555, 0xfafafafa},
1013 {0x66555555, 0x5a5a5a5a},
1014 {0x66555555, 0x6a5a5a5a}, /* case-110 */
1015 {0x66555555, 0xaaaaaaaa},
1016 {0xffff55ff, 0xfafafafa},
1017 {0xffff55ff, 0x5afa5afa},
1018 {0xffff55ff, 0xaaaaaaaa},
1019 {0xffff55ff, 0xffff55ff}, /* case-115 */
1020 {0xaaffffaa, 0x5afa5afa},
1021 {0xaaffffaa, 0xaaaaaaaa},
1022 {0xffffffff, 0xfafafafa},
1023 {0xffff55ff, 0xfafafafa},
1024 {0xffffffff, 0xaaaaaaaa}, /* case-120 */
1025 {0xffff55ff, 0x5afa5afa},
1026 {0xffff55ff, 0x5afa5afa},
1027 {0x55ff55ff, 0x55ff55ff}
1032 { {0x00, 0x00, 0x00, 0x00, 0x00} }, /* case-0 */
1033 { {0x61, 0x45, 0x03, 0x11, 0x11} }, /* case-1 */
1034 { {0x61, 0x3a, 0x03, 0x11, 0x11} },
1035 { {0x61, 0x35, 0x03, 0x11, 0x11} },
1036 { {0x61, 0x20, 0x03, 0x11, 0x11} },
1037 { {0x61, 0x3a, 0x03, 0x11, 0x11} }, /* case-5 */
1038 { {0x61, 0x45, 0x03, 0x11, 0x10} },
1039 { {0x61, 0x35, 0x03, 0x11, 0x10} },
1040 { {0x61, 0x30, 0x03, 0x11, 0x10} },
1041 { {0x61, 0x20, 0x03, 0x11, 0x10} },
1042 { {0x61, 0x10, 0x03, 0x11, 0x10} }, /* case-10 */
1043 { {0x61, 0x08, 0x03, 0x11, 0x15} },
1044 { {0x61, 0x08, 0x03, 0x10, 0x14} },
1045 { {0x51, 0x08, 0x03, 0x10, 0x54} },
1046 { {0x51, 0x08, 0x03, 0x10, 0x55} },
1047 { {0x51, 0x08, 0x07, 0x10, 0x54} }, /* case-15 */
1048 { {0x51, 0x45, 0x03, 0x10, 0x50} },
1049 { {0x51, 0x3a, 0x03, 0x11, 0x50} },
1050 { {0x51, 0x30, 0x03, 0x10, 0x50} },
1051 { {0x51, 0x21, 0x03, 0x10, 0x50} },
1052 { {0x51, 0x10, 0x03, 0x10, 0x50} }, /* case-20 */
1053 { {0x51, 0x4a, 0x03, 0x10, 0x50} },
1054 { {0x51, 0x08, 0x03, 0x30, 0x54} },
1055 { {0x55, 0x08, 0x03, 0x10, 0x54} },
1056 { {0x65, 0x10, 0x03, 0x11, 0x10} },
1057 { {0x51, 0x10, 0x03, 0x10, 0x51} }, /* case-25 */
1058 { {0x51, 0x21, 0x03, 0x10, 0x50} },
1059 { {0x61, 0x08, 0x03, 0x11, 0x11} }
1064 { {0x00, 0x00, 0x00, 0x40, 0x00} }, /* case-100 */
1065 { {0x61, 0x45, 0x03, 0x11, 0x11} },
1066 { {0x61, 0x25, 0x03, 0x11, 0x11} },
1067 { {0x61, 0x35, 0x03, 0x11, 0x11} },
1068 { {0x61, 0x20, 0x03, 0x11, 0x11} },
1069 { {0x61, 0x10, 0x03, 0x11, 0x11} }, /* case-105 */
1070 { {0x61, 0x45, 0x03, 0x11, 0x10} },
1071 { {0x61, 0x30, 0x03, 0x11, 0x10} },
1072 { {0x61, 0x30, 0x03, 0x11, 0x10} },
1073 { {0x61, 0x20, 0x03, 0x11, 0x10} },
1074 { {0x61, 0x10, 0x03, 0x11, 0x10} }, /* case-110 */
1075 { {0x61, 0x10, 0x03, 0x11, 0x11} },
1076 { {0x51, 0x08, 0x03, 0x10, 0x14} }, /* a2dp high rssi */
1077 { {0x51, 0x08, 0x03, 0x10, 0x54} }, /* a2dp not high rssi */
1078 { {0x51, 0x08, 0x03, 0x10, 0x55} },
1079 { {0x51, 0x08, 0x07, 0x10, 0x54} }, /* case-115 */
1080 { {0x51, 0x45, 0x03, 0x10, 0x50} },
1081 { {0x51, 0x3a, 0x03, 0x10, 0x50} },
1082 { {0x51, 0x30, 0x03, 0x10, 0x50} },
1083 { {0x51, 0x21, 0x03, 0x10, 0x50} },
1084 { {0x51, 0x21, 0x03, 0x10, 0x50} }, /* case-120 */
1085 { {0x51, 0x10, 0x03, 0x10, 0x50} }
1090 {0, 0, false, 7}, /* for normal */
1091 {0, 20, false, 7}, /* for WL-CPT */
1099 {0, 0, false, 7}, /* for normal */
1100 {0, 20, false, 7}, /* for WL-CPT */
1104 {0, 28, true, 5}
1109 static const struct coex_5g_afh_map afh_5g_8821a[] = { {0, 0, 0} };
1112 {0xCB0, MASKDWORD, RTW_REG_DOMAIN_MAC32},
1113 {0xCB4, MASKDWORD, RTW_REG_DOMAIN_MAC32},
1114 {0xCBA, MASKBYTE0, RTW_REG_DOMAIN_MAC8},
1115 {0, 0, RTW_REG_DOMAIN_NL},
1116 {0x430, MASKDWORD, RTW_REG_DOMAIN_MAC32},
1117 {0x434, MASKDWORD, RTW_REG_DOMAIN_MAC32},
1118 {0x42a, MASKLWORD, RTW_REG_DOMAIN_MAC16},
1119 {0x426, MASKBYTE0, RTW_REG_DOMAIN_MAC8},
1120 {0x45e, BIT(3), RTW_REG_DOMAIN_MAC8},
1121 {0x454, MASKLWORD, RTW_REG_DOMAIN_MAC16},
1122 {0, 0, RTW_REG_DOMAIN_NL},
1123 {0x4c, BIT(24) | BIT(23), RTW_REG_DOMAIN_MAC32},
1124 {0x64, BIT(0), RTW_REG_DOMAIN_MAC8},
1125 {0x4c6, BIT(4), RTW_REG_DOMAIN_MAC8},
1126 {0x40, BIT(5), RTW_REG_DOMAIN_MAC8},
1127 {0x1, RFREG_MASK, RTW_REG_DOMAIN_RF_A},
1128 {0, 0, RTW_REG_DOMAIN_NL},
1129 {0x550, MASKDWORD, RTW_REG_DOMAIN_MAC32},
1130 {0x522, MASKBYTE0, RTW_REG_DOMAIN_MAC8},
1131 {0x953, BIT(1), RTW_REG_DOMAIN_MAC8},
1132 {0xc50, MASKBYTE0, RTW_REG_DOMAIN_MAC8},
1133 {0x60A, MASKBYTE0, RTW_REG_DOMAIN_MAC8},
1147 .ptct_efuse_size = 0,
1153 .max_power_index = 0x3f,
1154 .csi_buf_pg_num = 0,
1157 .dig_min = 0x20,
1160 .lps_deep_mode_supported = 0,
1161 .sys_func_en = 0xFD,
1187 .bt_desired_ver = 0x62, /* But for 2 ant it's 0x5c */
1209 .bt_afh_span_bw20 = 0x20,
1210 .bt_afh_span_bw40 = 0x30,