Lines Matching refs:rtwdev

109 static void rtw_phy_cck_pd_init(struct rtw_dev *rtwdev)  in rtw_phy_cck_pd_init()  argument
111 struct rtw_dm_info *dm_info = &rtwdev->dm_info; in rtw_phy_cck_pd_init()
122 void rtw_phy_init(struct rtw_dev *rtwdev) in rtw_phy_init() argument
124 struct rtw_chip_info *chip = rtwdev->chip; in rtw_phy_init()
125 struct rtw_dm_info *dm_info = &rtwdev->dm_info; in rtw_phy_init()
139 dm_info->igi_history[0] = rtw_read32_mask(rtwdev, addr, mask); in rtw_phy_init()
140 rtw_phy_cck_pd_init(rtwdev); in rtw_phy_init()
146 void rtw_phy_dig_write(struct rtw_dev *rtwdev, u8 igi) in rtw_phy_dig_write() argument
148 struct rtw_chip_info *chip = rtwdev->chip; in rtw_phy_dig_write()
149 struct rtw_hal *hal = &rtwdev->hal; in rtw_phy_dig_write()
155 rtw_write32_mask(rtwdev, dig_cck->addr, dig_cck->mask, igi >> 1); in rtw_phy_dig_write()
161 rtw_write32_mask(rtwdev, addr, mask, igi); in rtw_phy_dig_write()
165 static void rtw_phy_stat_false_alarm(struct rtw_dev *rtwdev) in rtw_phy_stat_false_alarm() argument
167 struct rtw_chip_info *chip = rtwdev->chip; in rtw_phy_stat_false_alarm()
169 chip->ops->false_alarm_statistics(rtwdev); in rtw_phy_stat_false_alarm()
196 struct rtw_dev *rtwdev; member
203 struct rtw_dev *rtwdev = iter_data->rtwdev; in rtw_phy_stat_rssi_iter() local
210 rtw_fw_send_rssi_info(rtwdev, si); in rtw_phy_stat_rssi_iter()
215 static void rtw_phy_stat_rssi(struct rtw_dev *rtwdev) in rtw_phy_stat_rssi() argument
217 struct rtw_dm_info *dm_info = &rtwdev->dm_info; in rtw_phy_stat_rssi()
220 data.rtwdev = rtwdev; in rtw_phy_stat_rssi()
222 rtw_iterate_stas_atomic(rtwdev, rtw_phy_stat_rssi_iter, &data); in rtw_phy_stat_rssi()
228 static void rtw_phy_stat_rate_cnt(struct rtw_dev *rtwdev) in rtw_phy_stat_rate_cnt() argument
230 struct rtw_dm_info *dm_info = &rtwdev->dm_info; in rtw_phy_stat_rate_cnt()
236 static void rtw_phy_statistics(struct rtw_dev *rtwdev) in rtw_phy_statistics() argument
238 rtw_phy_stat_rssi(rtwdev); in rtw_phy_statistics()
239 rtw_phy_stat_false_alarm(rtwdev); in rtw_phy_statistics()
240 rtw_phy_stat_rate_cnt(rtwdev); in rtw_phy_statistics()
399 static void rtw_phy_dig(struct rtw_dev *rtwdev) in rtw_phy_dig() argument
401 struct rtw_dm_info *dm_info = &rtwdev->dm_info; in rtw_phy_dig()
409 if (test_bit(RTW_FLAG_DIG_DISABLE, rtwdev->flags)) in rtw_phy_dig()
415 linked = !!rtwdev->sta_cnt; in rtw_phy_dig()
449 rtw_phy_dig_write(rtwdev, cur_igi); in rtw_phy_dig()
454 struct rtw_dev *rtwdev = data; in rtw_phy_ra_info_update_iter() local
457 rtw_update_sta_info(rtwdev, si); in rtw_phy_ra_info_update_iter()
460 static void rtw_phy_ra_info_update(struct rtw_dev *rtwdev) in rtw_phy_ra_info_update() argument
462 if (rtwdev->watch_dog_cnt & 0x3) in rtw_phy_ra_info_update()
465 rtw_iterate_stas_atomic(rtwdev, rtw_phy_ra_info_update_iter, rtwdev); in rtw_phy_ra_info_update()
468 static void rtw_phy_dpk_track(struct rtw_dev *rtwdev) in rtw_phy_dpk_track() argument
470 struct rtw_chip_info *chip = rtwdev->chip; in rtw_phy_dpk_track()
473 chip->ops->dpk_track(rtwdev); in rtw_phy_dpk_track()
479 static u8 rtw_phy_cck_pd_lv_unlink(struct rtw_dev *rtwdev) in rtw_phy_cck_pd_lv_unlink() argument
481 struct rtw_dm_info *dm_info = &rtwdev->dm_info; in rtw_phy_cck_pd_lv_unlink()
500 static u8 rtw_phy_cck_pd_lv_link(struct rtw_dev *rtwdev) in rtw_phy_cck_pd_lv_link() argument
502 struct rtw_dm_info *dm_info = &rtwdev->dm_info; in rtw_phy_cck_pd_lv_link()
521 static u8 rtw_phy_cck_pd_lv(struct rtw_dev *rtwdev) in rtw_phy_cck_pd_lv() argument
523 if (!rtw_is_assoc(rtwdev)) in rtw_phy_cck_pd_lv()
524 return rtw_phy_cck_pd_lv_unlink(rtwdev); in rtw_phy_cck_pd_lv()
526 return rtw_phy_cck_pd_lv_link(rtwdev); in rtw_phy_cck_pd_lv()
529 static void rtw_phy_cck_pd(struct rtw_dev *rtwdev) in rtw_phy_cck_pd() argument
531 struct rtw_dm_info *dm_info = &rtwdev->dm_info; in rtw_phy_cck_pd()
532 struct rtw_chip_info *chip = rtwdev->chip; in rtw_phy_cck_pd()
536 if (rtwdev->hal.current_band_type != RTW_BAND_2G) in rtw_phy_cck_pd()
544 level = rtw_phy_cck_pd_lv(rtwdev); in rtw_phy_cck_pd()
550 chip->ops->cck_pd_set(rtwdev, level); in rtw_phy_cck_pd()
553 static void rtw_phy_pwr_track(struct rtw_dev *rtwdev) in rtw_phy_pwr_track() argument
555 rtwdev->chip->ops->pwr_track(rtwdev); in rtw_phy_pwr_track()
558 void rtw_phy_dynamic_mechanism(struct rtw_dev *rtwdev) in rtw_phy_dynamic_mechanism() argument
561 rtw_phy_statistics(rtwdev); in rtw_phy_dynamic_mechanism()
562 rtw_phy_dig(rtwdev); in rtw_phy_dynamic_mechanism()
563 rtw_phy_cck_pd(rtwdev); in rtw_phy_dynamic_mechanism()
564 rtw_phy_ra_info_update(rtwdev); in rtw_phy_dynamic_mechanism()
565 rtw_phy_dpk_track(rtwdev); in rtw_phy_dynamic_mechanism()
566 rtw_phy_pwr_track(rtwdev); in rtw_phy_dynamic_mechanism()
687 u32 rtw_phy_read_rf(struct rtw_dev *rtwdev, enum rtw_rf_path rf_path, in rtw_phy_read_rf() argument
690 struct rtw_hal *hal = &rtwdev->hal; in rtw_phy_read_rf()
691 struct rtw_chip_info *chip = rtwdev->chip; in rtw_phy_read_rf()
696 rtw_err(rtwdev, "unsupported rf path (%d)\n", rf_path); in rtw_phy_read_rf()
704 val = rtw_read32_mask(rtwdev, direct_addr, mask); in rtw_phy_read_rf()
710 u32 rtw_phy_read_rf_sipi(struct rtw_dev *rtwdev, enum rtw_rf_path rf_path, in rtw_phy_read_rf_sipi() argument
713 struct rtw_hal *hal = &rtwdev->hal; in rtw_phy_read_rf_sipi()
714 struct rtw_chip_info *chip = rtwdev->chip; in rtw_phy_read_rf_sipi()
723 rtw_err(rtwdev, "unsupported rf path (%d)\n", rf_path); in rtw_phy_read_rf_sipi()
728 rtw_err(rtwdev, "rf_sipi_read_addr isn't defined\n"); in rtw_phy_read_rf_sipi()
737 val32 = rtw_read32(rtwdev, rf_sipi_addr->hssi_2); in rtw_phy_read_rf_sipi()
739 rtw_write32(rtwdev, rf_sipi_addr->hssi_2, val32); in rtw_phy_read_rf_sipi()
742 val32 = rtw_read32(rtwdev, rf_sipi_addr_a->hssi_2); in rtw_phy_read_rf_sipi()
743 rtw_write32(rtwdev, rf_sipi_addr_a->hssi_2, val32 & ~LSSI_READ_EDGE_MASK); in rtw_phy_read_rf_sipi()
744 rtw_write32(rtwdev, rf_sipi_addr_a->hssi_2, val32 | LSSI_READ_EDGE_MASK); in rtw_phy_read_rf_sipi()
748 en_pi = rtw_read32_mask(rtwdev, rf_sipi_addr->hssi_1, BIT(8)); in rtw_phy_read_rf_sipi()
751 val32 = rtw_read32_mask(rtwdev, r_addr, LSSI_READ_DATA_MASK); in rtw_phy_read_rf_sipi()
759 bool rtw_phy_write_rf_reg_sipi(struct rtw_dev *rtwdev, enum rtw_rf_path rf_path, in rtw_phy_write_rf_reg_sipi() argument
762 struct rtw_hal *hal = &rtwdev->hal; in rtw_phy_write_rf_reg_sipi()
763 struct rtw_chip_info *chip = rtwdev->chip; in rtw_phy_write_rf_reg_sipi()
770 rtw_err(rtwdev, "unsupported rf path (%d)\n", rf_path); in rtw_phy_write_rf_reg_sipi()
778 old_data = chip->ops->read_rf(rtwdev, rf_path, addr, RFREG_MASK); in rtw_phy_write_rf_reg_sipi()
781 rtw_err(rtwdev, "Write fail, rf is disabled\n"); in rtw_phy_write_rf_reg_sipi()
791 rtw_write32(rtwdev, sipi_addr[rf_path], data_and_addr); in rtw_phy_write_rf_reg_sipi()
799 bool rtw_phy_write_rf_reg(struct rtw_dev *rtwdev, enum rtw_rf_path rf_path, in rtw_phy_write_rf_reg() argument
802 struct rtw_hal *hal = &rtwdev->hal; in rtw_phy_write_rf_reg()
803 struct rtw_chip_info *chip = rtwdev->chip; in rtw_phy_write_rf_reg()
808 rtw_err(rtwdev, "unsupported rf path (%d)\n", rf_path); in rtw_phy_write_rf_reg()
816 rtw_write32_mask(rtwdev, direct_addr, mask, data); in rtw_phy_write_rf_reg()
823 bool rtw_phy_write_rf_reg_mix(struct rtw_dev *rtwdev, enum rtw_rf_path rf_path, in rtw_phy_write_rf_reg_mix() argument
827 return rtw_phy_write_rf_reg(rtwdev, rf_path, addr, mask, data); in rtw_phy_write_rf_reg_mix()
829 return rtw_phy_write_rf_reg_sipi(rtwdev, rf_path, addr, mask, data); in rtw_phy_write_rf_reg_mix()
833 void rtw_phy_setup_phy_cond(struct rtw_dev *rtwdev, u32 pkg) in rtw_phy_setup_phy_cond() argument
835 struct rtw_hal *hal = &rtwdev->hal; in rtw_phy_setup_phy_cond()
836 struct rtw_efuse *efuse = &rtwdev->efuse; in rtw_phy_setup_phy_cond()
844 switch (rtw_hci_type(rtwdev)) { in rtw_phy_setup_phy_cond()
859 rtw_dbg(rtwdev, RTW_DBG_PHY, "phy cond=0x%08x\n", *((u32 *)&hal->phy_cond)); in rtw_phy_setup_phy_cond()
862 static bool check_positive(struct rtw_dev *rtwdev, struct rtw_phy_cond cond) in check_positive() argument
864 struct rtw_hal *hal = &rtwdev->hal; in check_positive()
882 void rtw_parse_tbl_phy_cond(struct rtw_dev *rtwdev, const struct rtw_table *tbl) in rtw_parse_tbl_phy_cond() argument
909 if (check_positive(rtwdev, pos_cond)) { in rtw_parse_tbl_phy_cond()
920 (*tbl->do_cfg)(rtwdev, tbl, p->cfg.addr, p->cfg.data); in rtw_parse_tbl_phy_cond()
928 static u8 tbl_to_dec_pwr_by_rate(struct rtw_dev *rtwdev, u32 hex, u8 i) in tbl_to_dec_pwr_by_rate() argument
930 if (rtwdev->chip->is_pwr_by_rate_dec) in tbl_to_dec_pwr_by_rate()
937 rtw_phy_get_rate_values_of_txpwr_by_rate(struct rtw_dev *rtwdev, in rtw_phy_get_rate_values_of_txpwr_by_rate() argument
951 pwr_by_rate[i] = tbl_to_dec_pwr_by_rate(rtwdev, val, i); in rtw_phy_get_rate_values_of_txpwr_by_rate()
961 pwr_by_rate[i] = tbl_to_dec_pwr_by_rate(rtwdev, val, i); in rtw_phy_get_rate_values_of_txpwr_by_rate()
976 tbl_to_dec_pwr_by_rate(rtwdev, val, i); in rtw_phy_get_rate_values_of_txpwr_by_rate()
991 pwr_by_rate[i] = tbl_to_dec_pwr_by_rate(rtwdev, val, i); in rtw_phy_get_rate_values_of_txpwr_by_rate()
1001 pwr_by_rate[i] = tbl_to_dec_pwr_by_rate(rtwdev, val, i); in rtw_phy_get_rate_values_of_txpwr_by_rate()
1011 pwr_by_rate[i] = tbl_to_dec_pwr_by_rate(rtwdev, val, i); in rtw_phy_get_rate_values_of_txpwr_by_rate()
1021 pwr_by_rate[i] = tbl_to_dec_pwr_by_rate(rtwdev, val, i); in rtw_phy_get_rate_values_of_txpwr_by_rate()
1029 pwr_by_rate[i - 1] = tbl_to_dec_pwr_by_rate(rtwdev, in rtw_phy_get_rate_values_of_txpwr_by_rate()
1042 pwr_by_rate[i] = tbl_to_dec_pwr_by_rate(rtwdev, val, i); in rtw_phy_get_rate_values_of_txpwr_by_rate()
1054 pwr_by_rate[i] = tbl_to_dec_pwr_by_rate(rtwdev, val, i); in rtw_phy_get_rate_values_of_txpwr_by_rate()
1066 pwr_by_rate[i] = tbl_to_dec_pwr_by_rate(rtwdev, val, i); in rtw_phy_get_rate_values_of_txpwr_by_rate()
1078 pwr_by_rate[i] = tbl_to_dec_pwr_by_rate(rtwdev, val, i); in rtw_phy_get_rate_values_of_txpwr_by_rate()
1090 pwr_by_rate[i] = tbl_to_dec_pwr_by_rate(rtwdev, val, i); in rtw_phy_get_rate_values_of_txpwr_by_rate()
1102 pwr_by_rate[i] = tbl_to_dec_pwr_by_rate(rtwdev, val, i); in rtw_phy_get_rate_values_of_txpwr_by_rate()
1114 pwr_by_rate[i] = tbl_to_dec_pwr_by_rate(rtwdev, val, i); in rtw_phy_get_rate_values_of_txpwr_by_rate()
1126 pwr_by_rate[i] = tbl_to_dec_pwr_by_rate(rtwdev, val, i); in rtw_phy_get_rate_values_of_txpwr_by_rate()
1138 pwr_by_rate[i] = tbl_to_dec_pwr_by_rate(rtwdev, val, i); in rtw_phy_get_rate_values_of_txpwr_by_rate()
1150 pwr_by_rate[i] = tbl_to_dec_pwr_by_rate(rtwdev, val, i); in rtw_phy_get_rate_values_of_txpwr_by_rate()
1162 pwr_by_rate[i] = tbl_to_dec_pwr_by_rate(rtwdev, val, i); in rtw_phy_get_rate_values_of_txpwr_by_rate()
1174 pwr_by_rate[i] = tbl_to_dec_pwr_by_rate(rtwdev, val, i); in rtw_phy_get_rate_values_of_txpwr_by_rate()
1186 pwr_by_rate[i] = tbl_to_dec_pwr_by_rate(rtwdev, val, i); in rtw_phy_get_rate_values_of_txpwr_by_rate()
1198 pwr_by_rate[i] = tbl_to_dec_pwr_by_rate(rtwdev, val, i); in rtw_phy_get_rate_values_of_txpwr_by_rate()
1210 pwr_by_rate[i] = tbl_to_dec_pwr_by_rate(rtwdev, val, i); in rtw_phy_get_rate_values_of_txpwr_by_rate()
1222 pwr_by_rate[i] = tbl_to_dec_pwr_by_rate(rtwdev, val, i); in rtw_phy_get_rate_values_of_txpwr_by_rate()
1232 pwr_by_rate[i] = tbl_to_dec_pwr_by_rate(rtwdev, val, i); in rtw_phy_get_rate_values_of_txpwr_by_rate()
1236 rtw_warn(rtwdev, "invalid tx power index addr 0x%08x\n", addr); in rtw_phy_get_rate_values_of_txpwr_by_rate()
1241 static void rtw_phy_store_tx_power_by_rate(struct rtw_dev *rtwdev, in rtw_phy_store_tx_power_by_rate() argument
1245 struct rtw_hal *hal = &rtwdev->hal; in rtw_phy_store_tx_power_by_rate()
1253 rtw_phy_get_rate_values_of_txpwr_by_rate(rtwdev, regaddr, bitmask, data, in rtw_phy_store_tx_power_by_rate()
1273 void rtw_parse_tbl_bb_pg(struct rtw_dev *rtwdev, const struct rtw_table *tbl) in rtw_parse_tbl_bb_pg() argument
1283 rtw_phy_store_tx_power_by_rate(rtwdev, p->band, p->rf_path, in rtw_parse_tbl_bb_pg()
1322 static void rtw_phy_set_tx_power_limit(struct rtw_dev *rtwdev, u8 regd, u8 band, in rtw_phy_set_tx_power_limit() argument
1325 struct rtw_hal *hal = &rtwdev->hal; in rtw_phy_set_tx_power_limit()
1326 u8 max_power_index = rtwdev->chip->max_power_index; in rtw_phy_set_tx_power_limit()
1357 rtw_xref_5g_txpwr_lmt(struct rtw_dev *rtwdev, u8 regd, in rtw_xref_5g_txpwr_lmt() argument
1360 struct rtw_hal *hal = &rtwdev->hal; in rtw_xref_5g_txpwr_lmt()
1361 u8 max_power_index = rtwdev->chip->max_power_index; in rtw_xref_5g_txpwr_lmt()
1377 rtw_xref_txpwr_lmt_by_rs(struct rtw_dev *rtwdev, u8 regd, u8 bw, u8 ch_idx) in rtw_xref_txpwr_lmt_by_rs() argument
1387 rtw_xref_5g_txpwr_lmt(rtwdev, regd, bw, ch_idx, rs_ht, rs_vht); in rtw_xref_txpwr_lmt_by_rs()
1393 rtw_xref_5g_txpwr_lmt_by_ch(struct rtw_dev *rtwdev, u8 regd, u8 bw) in rtw_xref_5g_txpwr_lmt_by_ch() argument
1398 rtw_xref_txpwr_lmt_by_rs(rtwdev, regd, bw, ch_idx); in rtw_xref_5g_txpwr_lmt_by_ch()
1403 rtw_xref_txpwr_lmt_by_bw(struct rtw_dev *rtwdev, u8 regd) in rtw_xref_txpwr_lmt_by_bw() argument
1408 rtw_xref_5g_txpwr_lmt_by_ch(rtwdev, regd, bw); in rtw_xref_txpwr_lmt_by_bw()
1412 static void rtw_xref_txpwr_lmt(struct rtw_dev *rtwdev) in rtw_xref_txpwr_lmt() argument
1417 rtw_xref_txpwr_lmt_by_bw(rtwdev, regd); in rtw_xref_txpwr_lmt()
1420 void rtw_parse_tbl_txpwr_lmt(struct rtw_dev *rtwdev, in rtw_parse_tbl_txpwr_lmt() argument
1427 rtw_phy_set_tx_power_limit(rtwdev, p->regd, p->band, in rtw_parse_tbl_txpwr_lmt()
1431 rtw_xref_txpwr_lmt(rtwdev); in rtw_parse_tbl_txpwr_lmt()
1435 void rtw_phy_cfg_mac(struct rtw_dev *rtwdev, const struct rtw_table *tbl, in rtw_phy_cfg_mac() argument
1438 rtw_write8(rtwdev, addr, data); in rtw_phy_cfg_mac()
1442 void rtw_phy_cfg_agc(struct rtw_dev *rtwdev, const struct rtw_table *tbl, in rtw_phy_cfg_agc() argument
1445 rtw_write32(rtwdev, addr, data); in rtw_phy_cfg_agc()
1449 void rtw_phy_cfg_bb(struct rtw_dev *rtwdev, const struct rtw_table *tbl, in rtw_phy_cfg_bb() argument
1465 rtw_write32(rtwdev, addr, data); in rtw_phy_cfg_bb()
1469 void rtw_phy_cfg_rf(struct rtw_dev *rtwdev, const struct rtw_table *tbl, in rtw_phy_cfg_rf() argument
1477 rtw_write_rf(rtwdev, tbl->rf_path, addr, RFREG_MASK, data); in rtw_phy_cfg_rf()
1483 static void rtw_load_rfk_table(struct rtw_dev *rtwdev) in rtw_load_rfk_table() argument
1485 struct rtw_chip_info *chip = rtwdev->chip; in rtw_load_rfk_table()
1486 struct rtw_dpk_info *dpk_info = &rtwdev->dm_info.dpk_info; in rtw_load_rfk_table()
1491 rtw_write32_mask(rtwdev, 0x1e24, BIT(17), 0x1); in rtw_load_rfk_table()
1492 rtw_write32_mask(rtwdev, 0x1cd0, BIT(28), 0x1); in rtw_load_rfk_table()
1493 rtw_write32_mask(rtwdev, 0x1cd0, BIT(29), 0x1); in rtw_load_rfk_table()
1494 rtw_write32_mask(rtwdev, 0x1cd0, BIT(30), 0x1); in rtw_load_rfk_table()
1495 rtw_write32_mask(rtwdev, 0x1cd0, BIT(31), 0x0); in rtw_load_rfk_table()
1497 rtw_load_table(rtwdev, chip->rfk_init_tbl); in rtw_load_rfk_table()
1502 void rtw_phy_load_tables(struct rtw_dev *rtwdev) in rtw_phy_load_tables() argument
1504 struct rtw_chip_info *chip = rtwdev->chip; in rtw_phy_load_tables()
1507 rtw_load_table(rtwdev, chip->mac_tbl); in rtw_phy_load_tables()
1508 rtw_load_table(rtwdev, chip->bb_tbl); in rtw_phy_load_tables()
1509 rtw_load_table(rtwdev, chip->agc_tbl); in rtw_phy_load_tables()
1510 rtw_load_rfk_table(rtwdev); in rtw_phy_load_tables()
1512 for (rf_path = 0; rf_path < rtwdev->hal.rf_path_num; rf_path++) { in rtw_phy_load_tables()
1516 rtw_load_table(rtwdev, tbl); in rtw_phy_load_tables()
1610 static s8 rtw_phy_get_dis_dpd_by_rate_diff(struct rtw_dev *rtwdev, u16 rate) in rtw_phy_get_dis_dpd_by_rate_diff() argument
1612 struct rtw_chip_info *chip = rtwdev->chip; in rtw_phy_get_dis_dpd_by_rate_diff()
1641 static u8 rtw_phy_get_2g_tx_power_index(struct rtw_dev *rtwdev, in rtw_phy_get_2g_tx_power_index() argument
1646 struct rtw_chip_info *chip = rtwdev->chip; in rtw_phy_get_2g_tx_power_index()
1688 static u8 rtw_phy_get_5g_tx_power_index(struct rtw_dev *rtwdev, in rtw_phy_get_5g_tx_power_index() argument
1693 struct rtw_chip_info *chip = rtwdev->chip; in rtw_phy_get_5g_tx_power_index()
1742 static s8 rtw_phy_get_tx_power_limit(struct rtw_dev *rtwdev, u8 band, in rtw_phy_get_tx_power_limit() argument
1746 struct rtw_hal *hal = &rtwdev->hal; in rtw_phy_get_tx_power_limit()
1748 s8 power_limit = (s8)rtwdev->chip->max_power_index; in rtw_phy_get_tx_power_limit()
1800 return (s8)rtwdev->chip->max_power_index; in rtw_phy_get_tx_power_limit()
1803 void rtw_get_tx_power_params(struct rtw_dev *rtwdev, u8 path, u8 rate, u8 bw, in rtw_get_tx_power_params() argument
1806 struct rtw_hal *hal = &rtwdev->hal; in rtw_get_tx_power_params()
1807 struct rtw_dm_info *dm_info = &rtwdev->dm_info; in rtw_get_tx_power_params()
1815 pwr_idx = &rtwdev->efuse.txpwr_idx_table[path]; in rtw_get_tx_power_params()
1821 *base = rtw_phy_get_2g_tx_power_index(rtwdev, in rtw_get_tx_power_params()
1827 *base = rtw_phy_get_5g_tx_power_index(rtwdev, in rtw_get_tx_power_params()
1833 *limit = rtw_phy_get_tx_power_limit(rtwdev, band, bw, path, in rtw_get_tx_power_params()
1840 rtw_phy_get_tx_power_index(struct rtw_dev *rtwdev, u8 rf_path, u8 rate, in rtw_phy_get_tx_power_index() argument
1847 rtw_get_tx_power_params(rtwdev, rf_path, rate, bandwidth, in rtw_phy_get_tx_power_index()
1853 if (rtwdev->chip->en_dis_dpd) in rtw_phy_get_tx_power_index()
1854 offset += rtw_phy_get_dis_dpd_by_rate_diff(rtwdev, rate); in rtw_phy_get_tx_power_index()
1858 if (tx_power > rtwdev->chip->max_power_index) in rtw_phy_get_tx_power_index()
1859 tx_power = rtwdev->chip->max_power_index; in rtw_phy_get_tx_power_index()
1865 static void rtw_phy_set_tx_power_index_by_rs(struct rtw_dev *rtwdev, in rtw_phy_set_tx_power_index_by_rs() argument
1868 struct rtw_hal *hal = &rtwdev->hal; in rtw_phy_set_tx_power_index_by_rs()
1869 u8 regd = rtwdev->regd.txpwr_regd; in rtw_phy_set_tx_power_index_by_rs()
1885 pwr_idx = rtw_phy_get_tx_power_index(rtwdev, path, rate, in rtw_phy_set_tx_power_index_by_rs()
1896 static void rtw_phy_set_tx_power_level_by_path(struct rtw_dev *rtwdev, in rtw_phy_set_tx_power_level_by_path() argument
1899 struct rtw_hal *hal = &rtwdev->hal; in rtw_phy_set_tx_power_level_by_path()
1909 rtw_phy_set_tx_power_index_by_rs(rtwdev, ch, path, rs); in rtw_phy_set_tx_power_level_by_path()
1912 void rtw_phy_set_tx_power_level(struct rtw_dev *rtwdev, u8 channel) in rtw_phy_set_tx_power_level() argument
1914 struct rtw_chip_info *chip = rtwdev->chip; in rtw_phy_set_tx_power_level()
1915 struct rtw_hal *hal = &rtwdev->hal; in rtw_phy_set_tx_power_level()
1921 rtw_phy_set_tx_power_level_by_path(rtwdev, channel, path); in rtw_phy_set_tx_power_level()
1923 chip->ops->set_tx_power_index(rtwdev); in rtw_phy_set_tx_power_level()
2007 static void rtw_phy_init_tx_power_limit(struct rtw_dev *rtwdev, in rtw_phy_init_tx_power_limit() argument
2010 struct rtw_hal *hal = &rtwdev->hal; in rtw_phy_init_tx_power_limit()
2011 s8 max_power_index = (s8)rtwdev->chip->max_power_index; in rtw_phy_init_tx_power_limit()
2023 void rtw_phy_init_tx_power(struct rtw_dev *rtwdev) in rtw_phy_init_tx_power() argument
2025 struct rtw_hal *hal = &rtwdev->hal; in rtw_phy_init_tx_power()
2040 rtw_phy_init_tx_power_limit(rtwdev, regd, bw, in rtw_phy_init_tx_power()
2044 void rtw_phy_config_swing_table(struct rtw_dev *rtwdev, in rtw_phy_config_swing_table() argument
2047 const struct rtw_pwr_track_tbl *tbl = rtwdev->chip->pwr_track_tbl; in rtw_phy_config_swing_table()
2048 u8 channel = rtwdev->hal.current_channel; in rtw_phy_config_swing_table()
2051 if (rtwdev->dm_info.tx_rate <= DESC_RATE11M) { in rtw_phy_config_swing_table()
2086 void rtw_phy_pwrtrack_avg(struct rtw_dev *rtwdev, u8 thermal, u8 path) in rtw_phy_pwrtrack_avg() argument
2088 struct rtw_dm_info *dm_info = &rtwdev->dm_info; in rtw_phy_pwrtrack_avg()
2096 bool rtw_phy_pwrtrack_thermal_changed(struct rtw_dev *rtwdev, u8 thermal, in rtw_phy_pwrtrack_thermal_changed() argument
2099 struct rtw_dm_info *dm_info = &rtwdev->dm_info; in rtw_phy_pwrtrack_thermal_changed()
2109 u8 rtw_phy_pwrtrack_get_delta(struct rtw_dev *rtwdev, u8 path) in rtw_phy_pwrtrack_get_delta() argument
2111 struct rtw_dm_info *dm_info = &rtwdev->dm_info; in rtw_phy_pwrtrack_get_delta()
2115 therm_efuse = rtwdev->efuse.thermal_meter[path]; in rtw_phy_pwrtrack_get_delta()
2122 s8 rtw_phy_pwrtrack_get_pwridx(struct rtw_dev *rtwdev, in rtw_phy_pwrtrack_get_pwridx() argument
2126 struct rtw_dm_info *dm_info = &rtwdev->dm_info; in rtw_phy_pwrtrack_get_pwridx()
2131 rtw_warn(rtwdev, "power track table overflow\n"); in rtw_phy_pwrtrack_get_pwridx()
2136 rtw_warn(rtwdev, "swing table not configured\n"); in rtw_phy_pwrtrack_get_pwridx()
2144 rtw_warn(rtwdev, "invalid swing table index\n"); in rtw_phy_pwrtrack_get_pwridx()
2149 rtwdev->efuse.thermal_meter[therm_path]) in rtw_phy_pwrtrack_get_pwridx()
2156 bool rtw_phy_pwrtrack_need_iqk(struct rtw_dev *rtwdev) in rtw_phy_pwrtrack_need_iqk() argument
2158 struct rtw_dm_info *dm_info = &rtwdev->dm_info; in rtw_phy_pwrtrack_need_iqk()
2162 if (delta_iqk >= rtwdev->chip->iqk_threshold) { in rtw_phy_pwrtrack_need_iqk()