Lines Matching refs:rtldm
385 struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); in rtl8821ae_dm_txpower_track_adjust() local
392 pwr_val = rtldm->swing_idx_ofdm_base[RF90_PATH_A] - in rtl8821ae_dm_txpower_track_adjust()
393 rtldm->swing_idx_ofdm[RF90_PATH_A]; in rtl8821ae_dm_txpower_track_adjust()
396 pwr_val = rtldm->swing_idx_ofdm[RF90_PATH_A] - in rtl8821ae_dm_txpower_track_adjust()
397 rtldm->swing_idx_ofdm_base[RF90_PATH_A]; in rtl8821ae_dm_txpower_track_adjust()
400 if (rtldm->swing_idx_cck <= rtldm->swing_idx_cck_base) { in rtl8821ae_dm_txpower_track_adjust()
402 pwr_val = rtldm->swing_idx_cck_base - in rtl8821ae_dm_txpower_track_adjust()
403 rtldm->swing_idx_cck; in rtl8821ae_dm_txpower_track_adjust()
406 pwr_val = rtldm->swing_idx_cck - in rtl8821ae_dm_txpower_track_adjust()
407 rtldm->swing_idx_cck_base; in rtl8821ae_dm_txpower_track_adjust()
422 struct rtl_dm *rtldm = rtl_dm(rtlpriv); in rtl8821ae_dm_clear_txpower_tracking_state() local
426 rtldm->swing_idx_cck_base = rtldm->default_cck_index; in rtl8821ae_dm_clear_txpower_tracking_state()
427 rtldm->swing_idx_cck = rtldm->default_cck_index; in rtl8821ae_dm_clear_txpower_tracking_state()
428 rtldm->cck_index = 0; in rtl8821ae_dm_clear_txpower_tracking_state()
431 rtldm->swing_idx_ofdm_base[p] = rtldm->default_ofdm_index; in rtl8821ae_dm_clear_txpower_tracking_state()
432 rtldm->swing_idx_ofdm[p] = rtldm->default_ofdm_index; in rtl8821ae_dm_clear_txpower_tracking_state()
433 rtldm->ofdm_index[p] = rtldm->default_ofdm_index; in rtl8821ae_dm_clear_txpower_tracking_state()
435 rtldm->power_index_offset[p] = 0; in rtl8821ae_dm_clear_txpower_tracking_state()
436 rtldm->delta_power_index[p] = 0; in rtl8821ae_dm_clear_txpower_tracking_state()
437 rtldm->delta_power_index_last[p] = 0; in rtl8821ae_dm_clear_txpower_tracking_state()
439 rtldm->absolute_ofdm_swing_idx[p] = 0; in rtl8821ae_dm_clear_txpower_tracking_state()
440 rtldm->remnant_ofdm_swing_idx[p] = 0; in rtl8821ae_dm_clear_txpower_tracking_state()
443 rtldm->modify_txagc_flag_path_a = false; in rtl8821ae_dm_clear_txpower_tracking_state()
445 rtldm->modify_txagc_flag_path_b = false; in rtl8821ae_dm_clear_txpower_tracking_state()
446 rtldm->remnant_cck_idx = 0; in rtl8821ae_dm_clear_txpower_tracking_state()
447 rtldm->thermalvalue = rtlefuse->eeprom_thermalmeter; in rtl8821ae_dm_clear_txpower_tracking_state()
448 rtldm->thermalvalue_iqk = rtlefuse->eeprom_thermalmeter; in rtl8821ae_dm_clear_txpower_tracking_state()
449 rtldm->thermalvalue_lck = rtlefuse->eeprom_thermalmeter; in rtl8821ae_dm_clear_txpower_tracking_state()
472 struct rtl_dm *rtldm = rtl_dm(rtlpriv); in rtl8821ae_dm_initialize_txpower_tracking_thermalmeter() local
478 rtldm->thermalvalue = rtlefuse->eeprom_thermalmeter; in rtl8821ae_dm_initialize_txpower_tracking_thermalmeter()
479 rtldm->thermalvalue_iqk = rtlefuse->eeprom_thermalmeter; in rtl8821ae_dm_initialize_txpower_tracking_thermalmeter()
480 rtldm->thermalvalue_lck = rtlefuse->eeprom_thermalmeter; in rtl8821ae_dm_initialize_txpower_tracking_thermalmeter()
483 rtldm->default_ofdm_index = in rtl8821ae_dm_initialize_txpower_tracking_thermalmeter()
486 rtldm->default_cck_index = 24; in rtl8821ae_dm_initialize_txpower_tracking_thermalmeter()
488 rtldm->swing_idx_cck_base = rtldm->default_cck_index; in rtl8821ae_dm_initialize_txpower_tracking_thermalmeter()
489 rtldm->cck_index = rtldm->default_cck_index; in rtl8821ae_dm_initialize_txpower_tracking_thermalmeter()
492 rtldm->swing_idx_ofdm_base[p] = in rtl8821ae_dm_initialize_txpower_tracking_thermalmeter()
493 rtldm->default_ofdm_index; in rtl8821ae_dm_initialize_txpower_tracking_thermalmeter()
494 rtldm->ofdm_index[p] = rtldm->default_ofdm_index; in rtl8821ae_dm_initialize_txpower_tracking_thermalmeter()
495 rtldm->delta_power_index[p] = 0; in rtl8821ae_dm_initialize_txpower_tracking_thermalmeter()
496 rtldm->power_index_offset[p] = 0; in rtl8821ae_dm_initialize_txpower_tracking_thermalmeter()
497 rtldm->delta_power_index_last[p] = 0; in rtl8821ae_dm_initialize_txpower_tracking_thermalmeter()
1064 struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); in rtl8821ae_dm_iq_calibrate() local
1068 if (rtldm->linked_interval < 3) in rtl8821ae_dm_iq_calibrate()
1069 rtldm->linked_interval++; in rtl8821ae_dm_iq_calibrate()
1071 if (rtldm->linked_interval == 2) { in rtl8821ae_dm_iq_calibrate()
1078 rtldm->linked_interval = 0; in rtl8821ae_dm_iq_calibrate()
1088 struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); in rtl8812ae_get_delta_swing_table() local
1090 u8 rate = rtldm->tx_rate; in rtl8812ae_get_delta_swing_table()
1130 struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); in rtl8821ae_dm_update_init_rate() local
1137 rtldm->tx_rate = rate; in rtl8821ae_dm_update_init_rate()
1329 struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); in rtl8812ae_dm_txpwr_track_set_pwr() local
1336 if (rtldm->tx_rate != 0xFF) in rtl8812ae_dm_txpwr_track_set_pwr()
1338 rtl8821ae_hw_rate_to_mrate(hw, rtldm->tx_rate); in rtl8812ae_dm_txpwr_track_set_pwr()
1424 (rtldm->ofdm_index[RF90_PATH_A] > in rtl8812ae_dm_txpwr_track_set_pwr()
1427 rtldm->ofdm_index[RF90_PATH_A]; in rtl8812ae_dm_txpwr_track_set_pwr()
1431 rtldm->ofdm_index[RF90_PATH_A], in rtl8812ae_dm_txpwr_track_set_pwr()
1440 rtldm->ofdm_index[RF90_PATH_B] > in rtl8812ae_dm_txpwr_track_set_pwr()
1443 rtldm->ofdm_index[RF90_PATH_B]; in rtl8812ae_dm_txpwr_track_set_pwr()
1447 rtldm->ofdm_index[RF90_PATH_B], in rtl8812ae_dm_txpwr_track_set_pwr()
1456 rtldm->default_ofdm_index, in rtl8812ae_dm_txpwr_track_set_pwr()
1457 rtldm->absolute_ofdm_swing_idx[rf_path], in rtl8812ae_dm_txpwr_track_set_pwr()
1460 final_ofdm_swing_index = rtldm->default_ofdm_index + in rtl8812ae_dm_txpwr_track_set_pwr()
1461 rtldm->absolute_ofdm_swing_idx[rf_path]; in rtl8812ae_dm_txpwr_track_set_pwr()
1466 rtldm->remnant_cck_idx = in rtl8812ae_dm_txpwr_track_set_pwr()
1472 rtldm->remnant_ofdm_swing_idx[rf_path] = in rtl8812ae_dm_txpwr_track_set_pwr()
1479 rtldm->modify_txagc_flag_path_a = true; in rtl8812ae_dm_txpwr_track_set_pwr()
1489 rtldm->remnant_ofdm_swing_idx[rf_path]); in rtl8812ae_dm_txpwr_track_set_pwr()
1491 rtldm->remnant_cck_idx = final_ofdm_swing_index; in rtl8812ae_dm_txpwr_track_set_pwr()
1493 rtldm->remnant_ofdm_swing_idx[rf_path] = in rtl8812ae_dm_txpwr_track_set_pwr()
1499 rtldm->modify_txagc_flag_path_a = true; in rtl8812ae_dm_txpwr_track_set_pwr()
1507 rtldm->remnant_ofdm_swing_idx[rf_path]); in rtl8812ae_dm_txpwr_track_set_pwr()
1516 if (rtldm->modify_txagc_flag_path_a) { in rtl8812ae_dm_txpwr_track_set_pwr()
1517 rtldm->remnant_cck_idx = 0; in rtl8812ae_dm_txpwr_track_set_pwr()
1518 rtldm->remnant_ofdm_swing_idx[rf_path] = 0; in rtl8812ae_dm_txpwr_track_set_pwr()
1523 rtldm->modify_txagc_flag_path_a = false; in rtl8812ae_dm_txpwr_track_set_pwr()
1534 rtldm->remnant_ofdm_swing_idx[rf_path] = in rtl8812ae_dm_txpwr_track_set_pwr()
1542 rtldm->modify_txagc_flag_path_b = true; in rtl8812ae_dm_txpwr_track_set_pwr()
1551 rtldm->remnant_ofdm_swing_idx[rf_path]); in rtl8812ae_dm_txpwr_track_set_pwr()
1553 rtldm->remnant_ofdm_swing_idx[rf_path] = in rtl8812ae_dm_txpwr_track_set_pwr()
1559 rtldm->modify_txagc_flag_path_b = true; in rtl8812ae_dm_txpwr_track_set_pwr()
1567 rtldm->remnant_ofdm_swing_idx[rf_path]); in rtl8812ae_dm_txpwr_track_set_pwr()
1576 if (rtldm->modify_txagc_flag_path_b) { in rtl8812ae_dm_txpwr_track_set_pwr()
1577 rtldm->remnant_ofdm_swing_idx[rf_path] = 0; in rtl8812ae_dm_txpwr_track_set_pwr()
1583 rtldm->modify_txagc_flag_path_b = in rtl8812ae_dm_txpwr_track_set_pwr()
1601 struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); in rtl8812ae_dm_txpower_tracking_callback_thermalmeter() local
1625 rtldm->txpower_trackinginit = true; in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1629 rtldm->swing_idx_cck_base, in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1630 rtldm->swing_idx_ofdm_base[RF90_PATH_A], in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1631 rtldm->default_ofdm_index); in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1639 if (!rtldm->txpower_track_control || in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1651 rtldm->thermalvalue_avg[rtldm->thermalvalue_avg_index] = thermal_value; in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1652 rtldm->thermalvalue_avg_index++; in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1653 if (rtldm->thermalvalue_avg_index == AVG_THERMAL_NUM_8812A) in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1655 rtldm->thermalvalue_avg_index = 0; in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1658 if (rtldm->thermalvalue_avg[i]) { in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1659 thermal_value_avg += rtldm->thermalvalue_avg[i]; in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1676 delta = (thermal_value > rtldm->thermalvalue) ? in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1677 (thermal_value - rtldm->thermalvalue) : in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1678 (rtldm->thermalvalue - thermal_value); in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1679 delta_lck = (thermal_value > rtldm->thermalvalue_lck) ? in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1680 (thermal_value - rtldm->thermalvalue_lck) : in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1681 (rtldm->thermalvalue_lck - thermal_value); in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1682 delta_iqk = (thermal_value > rtldm->thermalvalue_iqk) ? in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1683 (thermal_value - rtldm->thermalvalue_iqk) : in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1684 (rtldm->thermalvalue_iqk - thermal_value); in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1697 rtldm->thermalvalue_lck = thermal_value; in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1703 if (delta > 0 && rtldm->txpower_track_control) { in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1720 rtldm->delta_power_index_last[RF90_PATH_A] = in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1721 rtldm->delta_power_index[RF90_PATH_A]; in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1722 rtldm->delta_power_index[RF90_PATH_A] = in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1725 rtldm->absolute_ofdm_swing_idx[RF90_PATH_A] = in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1731 rtldm->absolute_ofdm_swing_idx[RF90_PATH_A]); in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1736 rtldm->delta_power_index_last[RF90_PATH_B] = in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1737 rtldm->delta_power_index[RF90_PATH_B]; in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1738 rtldm->delta_power_index[RF90_PATH_B] = in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1741 rtldm->absolute_ofdm_swing_idx[RF90_PATH_B] = in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1747 rtldm->absolute_ofdm_swing_idx[RF90_PATH_B]); in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1753 rtldm->delta_power_index_last[RF90_PATH_A] = in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1754 rtldm->delta_power_index[RF90_PATH_A]; in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1755 rtldm->delta_power_index[RF90_PATH_A] = in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1758 rtldm->absolute_ofdm_swing_idx[RF90_PATH_A] = in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1763 rtldm->absolute_ofdm_swing_idx[RF90_PATH_A]); in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1769 rtldm->delta_power_index_last[RF90_PATH_B] = in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1770 rtldm->delta_power_index[RF90_PATH_B]; in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1771 rtldm->delta_power_index[RF90_PATH_B] = in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1774 rtldm->absolute_ofdm_swing_idx[RF90_PATH_B] = in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1780 rtldm->absolute_ofdm_swing_idx[RF90_PATH_B]); in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1788 if (rtldm->delta_power_index[p] == in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1789 rtldm->delta_power_index_last[p]) in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1792 rtldm->power_index_offset[p] = 0; in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1794 rtldm->power_index_offset[p] = in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1795 rtldm->delta_power_index[p] - in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1796 rtldm->delta_power_index_last[p]; in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1803 rtldm->power_index_offset[p], in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1804 rtldm->delta_power_index[p] , in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1805 rtldm->delta_power_index_last[p]); in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1807 rtldm->ofdm_index[p] = in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1808 rtldm->swing_idx_ofdm_base[p] + in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1809 rtldm->power_index_offset[p]; in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1810 rtldm->cck_index = in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1811 rtldm->swing_idx_cck_base + in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1812 rtldm->power_index_offset[p]; in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1814 rtldm->swing_idx_cck = rtldm->cck_index; in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1815 rtldm->swing_idx_ofdm[p] = rtldm->ofdm_index[p]; in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1821 rtldm->swing_idx_cck, in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1822 rtldm->swing_idx_cck_base, in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1823 rtldm->power_index_offset[p]); in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1826 rtldm->swing_idx_ofdm[p], in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1828 rtldm->swing_idx_ofdm_base[p], in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1829 rtldm->power_index_offset[p]); in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1833 if (rtldm->ofdm_index[p] > TXSCALE_TABLE_SIZE - 1) in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1834 rtldm->ofdm_index[p] = TXSCALE_TABLE_SIZE - 1; in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1835 else if (rtldm->ofdm_index[p] < ofdm_min_index) in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1836 rtldm->ofdm_index[p] = ofdm_min_index; in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1840 if (rtldm->cck_index > TXSCALE_TABLE_SIZE - 1) in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1841 rtldm->cck_index = TXSCALE_TABLE_SIZE - 1; in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1842 else if (rtldm->cck_index < 0) in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1843 rtldm->cck_index = 0; in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1847 rtldm->txpower_track_control, in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1849 rtldm->thermalvalue); in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1852 rtldm->power_index_offset[p] = 0; in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1857 rtldm->cck_index, rtldm->swing_idx_cck_base); in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1861 rtldm->ofdm_index[p], in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1863 rtldm->swing_idx_ofdm_base[p]); in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1866 if ((rtldm->power_index_offset[RF90_PATH_A] != 0 || in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1867 rtldm->power_index_offset[RF90_PATH_B] != 0) && in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1868 rtldm->txpower_track_control) { in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1879 if (thermal_value > rtldm->thermalvalue) { in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1882 rtldm->power_index_offset[RF90_PATH_A], in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1885 rtldm->thermalvalue); in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1889 rtldm->power_index_offset[RF90_PATH_B], in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1892 rtldm->thermalvalue); in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1893 } else if (thermal_value < rtldm->thermalvalue) { /*Low temperature*/ in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1896 rtldm->power_index_offset[RF90_PATH_A], in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1899 rtldm->thermalvalue); in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1903 rtldm->power_index_offset[RF90_PATH_B], in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1906 rtldm->thermalvalue); in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1931 rtldm->swing_idx_cck_base = rtldm->swing_idx_cck; in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1933 rtldm->swing_idx_ofdm_base[p] = in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1934 rtldm->swing_idx_ofdm[p]; in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1938 rtldm->thermalvalue, thermal_value); in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1940 rtldm->thermalvalue = thermal_value; in rtl8812ae_dm_txpower_tracking_callback_thermalmeter()
1956 struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); in rtl8821ae_get_delta_swing_table() local
1958 u8 rate = rtldm->tx_rate; in rtl8821ae_get_delta_swing_table()
2019 struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); in rtl8821ae_dm_txpwr_track_set_pwr() local
2026 if (rtldm->tx_rate != 0xFF) in rtl8821ae_dm_txpwr_track_set_pwr()
2027 tx_rate = rtl8821ae_hw_rate_to_mrate(hw, rtldm->tx_rate); in rtl8821ae_dm_txpwr_track_set_pwr()
2081 (rtldm->ofdm_index[RF90_PATH_A] > in rtl8821ae_dm_txpwr_track_set_pwr()
2084 rtldm->ofdm_index[RF90_PATH_A]; in rtl8821ae_dm_txpwr_track_set_pwr()
2087 rtldm->ofdm_index[RF90_PATH_A], in rtl8821ae_dm_txpwr_track_set_pwr()
2096 rtldm->default_ofdm_index, in rtl8821ae_dm_txpwr_track_set_pwr()
2097 rtldm->absolute_ofdm_swing_idx[rf_path], in rtl8821ae_dm_txpwr_track_set_pwr()
2101 rtldm->default_ofdm_index + in rtl8821ae_dm_txpwr_track_set_pwr()
2102 rtldm->absolute_ofdm_swing_idx[rf_path]; in rtl8821ae_dm_txpwr_track_set_pwr()
2106 rtldm->remnant_cck_idx = in rtl8821ae_dm_txpwr_track_set_pwr()
2110 rtldm->remnant_ofdm_swing_idx[rf_path] = in rtl8821ae_dm_txpwr_track_set_pwr()
2118 rtldm->modify_txagc_flag_path_a = true; in rtl8821ae_dm_txpwr_track_set_pwr()
2128 rtldm->remnant_ofdm_swing_idx[rf_path]); in rtl8821ae_dm_txpwr_track_set_pwr()
2130 rtldm->remnant_cck_idx = final_ofdm_swing_index; in rtl8821ae_dm_txpwr_track_set_pwr()
2132 rtldm->remnant_ofdm_swing_idx[rf_path] = in rtl8821ae_dm_txpwr_track_set_pwr()
2138 rtldm->modify_txagc_flag_path_a = true; in rtl8821ae_dm_txpwr_track_set_pwr()
2146 rtldm->remnant_ofdm_swing_idx[rf_path]); in rtl8821ae_dm_txpwr_track_set_pwr()
2155 if (rtldm->modify_txagc_flag_path_a) { in rtl8821ae_dm_txpwr_track_set_pwr()
2156 rtldm->remnant_cck_idx = 0; in rtl8821ae_dm_txpwr_track_set_pwr()
2157 rtldm->remnant_ofdm_swing_idx[rf_path] = 0; in rtl8821ae_dm_txpwr_track_set_pwr()
2163 rtldm->modify_txagc_flag_path_a = false; in rtl8821ae_dm_txpwr_track_set_pwr()
2181 struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); in rtl8821ae_dm_txpower_tracking_callback_thermalmeter() local
2207 rtldm->txpower_trackinginit = true; in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2212 rtldm->swing_idx_cck_base, in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2213 rtldm->swing_idx_ofdm_base[RF90_PATH_A], in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2214 rtldm->default_ofdm_index); in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2218 if (!rtldm->txpower_track_control || in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2231 rtldm->thermalvalue_avg[rtldm->thermalvalue_avg_index] = thermal_value; in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2232 rtldm->thermalvalue_avg_index++; in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2233 if (rtldm->thermalvalue_avg_index == AVG_THERMAL_NUM_8812A) in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2235 rtldm->thermalvalue_avg_index = 0; in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2238 if (rtldm->thermalvalue_avg[i]) { in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2239 thermal_value_avg += rtldm->thermalvalue_avg[i]; in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2256 delta = (thermal_value > rtldm->thermalvalue) ? in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2257 (thermal_value - rtldm->thermalvalue) : in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2258 (rtldm->thermalvalue - thermal_value); in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2259 delta_lck = (thermal_value > rtldm->thermalvalue_lck) ? in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2260 (thermal_value - rtldm->thermalvalue_lck) : in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2261 (rtldm->thermalvalue_lck - thermal_value); in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2262 delta_iqk = (thermal_value > rtldm->thermalvalue_iqk) ? in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2263 (thermal_value - rtldm->thermalvalue_iqk) : in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2264 (rtldm->thermalvalue_iqk - thermal_value); in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2276 rtldm->thermalvalue_lck = thermal_value; in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2282 if (delta > 0 && rtldm->txpower_track_control) { in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2299 rtldm->delta_power_index_last[RF90_PATH_A] = in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2300 rtldm->delta_power_index[RF90_PATH_A]; in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2301 rtldm->delta_power_index[RF90_PATH_A] = in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2304 rtldm->absolute_ofdm_swing_idx[RF90_PATH_A] = in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2310 rtldm->absolute_ofdm_swing_idx[RF90_PATH_A]); in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2316 rtldm->delta_power_index_last[RF90_PATH_A] = in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2317 rtldm->delta_power_index[RF90_PATH_A]; in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2318 rtldm->delta_power_index[RF90_PATH_A] = in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2321 rtldm->absolute_ofdm_swing_idx[RF90_PATH_A] = in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2326 rtldm->absolute_ofdm_swing_idx[RF90_PATH_A]); in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2336 if (rtldm->delta_power_index[p] == in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2337 rtldm->delta_power_index_last[p]) in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2339 rtldm->power_index_offset[p] = 0; in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2341 rtldm->power_index_offset[p] = in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2342 rtldm->delta_power_index[p] - in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2343 rtldm->delta_power_index_last[p]; in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2349 rtldm->power_index_offset[p], in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2350 rtldm->delta_power_index[p] , in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2351 rtldm->delta_power_index_last[p]); in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2353 rtldm->ofdm_index[p] = in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2354 rtldm->swing_idx_ofdm_base[p] + in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2355 rtldm->power_index_offset[p]; in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2356 rtldm->cck_index = in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2357 rtldm->swing_idx_cck_base + in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2358 rtldm->power_index_offset[p]; in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2360 rtldm->swing_idx_cck = rtldm->cck_index; in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2361 rtldm->swing_idx_ofdm[p] = rtldm->ofdm_index[p]; in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2367 rtldm->swing_idx_cck, in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2368 rtldm->swing_idx_cck_base, in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2369 rtldm->power_index_offset[p]); in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2372 rtldm->swing_idx_ofdm[p], in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2374 rtldm->swing_idx_ofdm_base[p], in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2375 rtldm->power_index_offset[p]); in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2379 if (rtldm->ofdm_index[p] > TXSCALE_TABLE_SIZE - 1) in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2380 rtldm->ofdm_index[p] = TXSCALE_TABLE_SIZE - 1; in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2381 else if (rtldm->ofdm_index[p] < ofdm_min_index) in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2382 rtldm->ofdm_index[p] = ofdm_min_index; in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2386 if (rtldm->cck_index > TXSCALE_TABLE_SIZE - 1) in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2387 rtldm->cck_index = TXSCALE_TABLE_SIZE - 1; in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2388 else if (rtldm->cck_index < 0) in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2389 rtldm->cck_index = 0; in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2393 rtldm->txpower_track_control, in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2395 rtldm->thermalvalue); in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2398 rtldm->power_index_offset[p] = 0; in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2403 rtldm->cck_index, rtldm->swing_idx_cck_base); in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2407 rtldm->ofdm_index[p], in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2409 rtldm->swing_idx_ofdm_base[p]); in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2412 if ((rtldm->power_index_offset[RF90_PATH_A] != 0 || in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2413 rtldm->power_index_offset[RF90_PATH_B] != 0) && in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2414 rtldm->txpower_track_control) { in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2425 if (thermal_value > rtldm->thermalvalue) { in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2428 rtldm->power_index_offset[RF90_PATH_A], in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2431 rtldm->thermalvalue); in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2432 } else if (thermal_value < rtldm->thermalvalue) { /*Low temperature*/ in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2435 rtldm->power_index_offset[RF90_PATH_A], in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2438 rtldm->thermalvalue); in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2463 rtldm->swing_idx_cck_base = rtldm->swing_idx_cck; in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2465 rtldm->swing_idx_ofdm_base[p] = rtldm->swing_idx_ofdm[p]; in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2469 rtldm->thermalvalue, thermal_value); in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2471 rtldm->thermalvalue = thermal_value; in rtl8821ae_dm_txpower_tracking_callback_thermalmeter()
2646 struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); in rtl8821ae_dm_check_edca_turbo() local
2675 cur_tx_ok_cnt = rtlpriv->stats.txbytesunicast - rtldm->last_tx_ok_cnt; in rtl8821ae_dm_check_edca_turbo()
2676 cur_rx_ok_cnt = rtlpriv->stats.rxbytesunicast - rtldm->last_rx_ok_cnt; in rtl8821ae_dm_check_edca_turbo()
2678 rtldm->last_tx_ok_cnt = rtlpriv->stats.txbytesunicast; in rtl8821ae_dm_check_edca_turbo()
2679 rtldm->last_rx_ok_cnt = rtlpriv->stats.rxbytesunicast; in rtl8821ae_dm_check_edca_turbo()
2738 rtldm->last_tx_ok_cnt = rtlpriv->stats.txbytesunicast; in rtl8821ae_dm_check_edca_turbo()
2739 rtldm->last_rx_ok_cnt = rtlpriv->stats.rxbytesunicast; in rtl8821ae_dm_check_edca_turbo()
2780 struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); in rtl8821ae_dm_dynamic_atc_switch() local
2788 if (rtldm->atc_status == ATC_STATUS_OFF) { in rtl8821ae_dm_dynamic_atc_switch()
2790 rtldm->atc_status = ATC_STATUS_ON; in rtl8821ae_dm_dynamic_atc_switch()
2795 "atc_status = %d\n", rtldm->atc_status); in rtl8821ae_dm_dynamic_atc_switch()
2797 if (rtldm->crystal_cap != rtlpriv->efuse.crystalcap) { in rtl8821ae_dm_dynamic_atc_switch()
2798 rtldm->crystal_cap = rtlpriv->efuse.crystalcap; in rtl8821ae_dm_dynamic_atc_switch()
2799 crystal_cap = rtldm->crystal_cap & 0x3f; in rtl8821ae_dm_dynamic_atc_switch()
2811 rtldm->crystal_cap); in rtl8821ae_dm_dynamic_atc_switch()
2814 cfo_khz_a = (int)(rtldm->cfo_tail[0] * 3125) / 1280; in rtl8821ae_dm_dynamic_atc_switch()
2815 cfo_khz_b = (int)(rtldm->cfo_tail[1] * 3125) / 1280; in rtl8821ae_dm_dynamic_atc_switch()
2816 packet_count = rtldm->packet_count; in rtl8821ae_dm_dynamic_atc_switch()
2819 if (packet_count == rtldm->packet_count_pre) { in rtl8821ae_dm_dynamic_atc_switch()
2825 rtldm->packet_count_pre = packet_count; in rtl8821ae_dm_dynamic_atc_switch()
2828 rtldm->packet_count); in rtl8821ae_dm_dynamic_atc_switch()
2841 cfo_ave_diff = (rtldm->cfo_ave_pre >= cfo_ave) ? in rtl8821ae_dm_dynamic_atc_switch()
2842 (rtldm->cfo_ave_pre - cfo_ave) : in rtl8821ae_dm_dynamic_atc_switch()
2843 (cfo_ave - rtldm->cfo_ave_pre); in rtl8821ae_dm_dynamic_atc_switch()
2845 if (cfo_ave_diff > 20 && rtldm->large_cfo_hit == 0) { in rtl8821ae_dm_dynamic_atc_switch()
2848 rtldm->large_cfo_hit = 1; in rtl8821ae_dm_dynamic_atc_switch()
2851 rtldm->large_cfo_hit = 0; in rtl8821ae_dm_dynamic_atc_switch()
2853 rtldm->cfo_ave_pre = cfo_ave; in rtl8821ae_dm_dynamic_atc_switch()
2858 if (cfo_ave >= -rtldm->cfo_threshold && in rtl8821ae_dm_dynamic_atc_switch()
2859 cfo_ave <= rtldm->cfo_threshold && in rtl8821ae_dm_dynamic_atc_switch()
2860 rtldm->is_freeze == 0) { in rtl8821ae_dm_dynamic_atc_switch()
2861 if (rtldm->cfo_threshold == CFO_THRESHOLD_XTAL) { in rtl8821ae_dm_dynamic_atc_switch()
2862 rtldm->cfo_threshold = CFO_THRESHOLD_XTAL + 10; in rtl8821ae_dm_dynamic_atc_switch()
2863 rtldm->is_freeze = 1; in rtl8821ae_dm_dynamic_atc_switch()
2865 rtldm->cfo_threshold = CFO_THRESHOLD_XTAL; in rtl8821ae_dm_dynamic_atc_switch()
2870 rtldm->cfo_threshold); in rtl8821ae_dm_dynamic_atc_switch()
2873 if (cfo_ave > rtldm->cfo_threshold && rtldm->crystal_cap < 0x3f) in rtl8821ae_dm_dynamic_atc_switch()
2880 rtldm->crystal_cap, adjust_xtal); in rtl8821ae_dm_dynamic_atc_switch()
2884 rtldm->is_freeze = 0; in rtl8821ae_dm_dynamic_atc_switch()
2885 rtldm->crystal_cap += adjust_xtal; in rtl8821ae_dm_dynamic_atc_switch()
2887 if (rtldm->crystal_cap > 0x3f) in rtl8821ae_dm_dynamic_atc_switch()
2888 rtldm->crystal_cap = 0x3f; in rtl8821ae_dm_dynamic_atc_switch()
2889 else if (rtldm->crystal_cap < 0) in rtl8821ae_dm_dynamic_atc_switch()
2890 rtldm->crystal_cap = 0; in rtl8821ae_dm_dynamic_atc_switch()
2892 crystal_cap = rtldm->crystal_cap & 0x3f; in rtl8821ae_dm_dynamic_atc_switch()
2904 rtldm->crystal_cap); in rtl8821ae_dm_dynamic_atc_switch()
2956 struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); in rtl8821ae_dm_set_tx_ant_by_tx_info() local
2957 struct fast_ant_training *pfat_table = &rtldm->fat_table; in rtl8821ae_dm_set_tx_ant_by_tx_info()