1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /****************************************************************************** 3 * 4 * Copyright(c) 2007 - 2017 Realtek Corporation. 5 * 6 * This program is free software; you can redistribute it and/or modify it 7 * under the terms of version 2 of the GNU General Public License as 8 * published by the Free Software Foundation. 9 * 10 * This program is distributed in the hope that it will be useful, but WITHOUT 11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 13 * more details. 14 * 15 *****************************************************************************/ 16 #ifndef __HAL_DM_H__ 17 #define __HAL_DM_H__ 18 19 #define adapter_to_phydm(adapter) (&(GET_HAL_DATA(adapter)->odmpriv)) 20 #define dvobj_to_phydm(dvobj) adapter_to_phydm(dvobj_get_primary_adapter(dvobj)) 21 #ifdef CONFIG_TDMADIG 22 void rtw_phydm_tdmadig(_adapter *adapter, u8 state); 23 #endif 24 void rtw_phydm_priv_init(_adapter *adapter); 25 void Init_ODM_ComInfo(_adapter *adapter); 26 void rtw_phydm_init(_adapter *adapter); 27 28 void rtw_hal_turbo_edca(_adapter *adapter); 29 u8 rtw_phydm_is_iqk_in_progress(_adapter *adapter); 30 31 void GetHalODMVar( 32 PADAPTER Adapter, 33 HAL_ODM_VARIABLE eVariable, 34 void *pValue1, 35 void *pValue2); 36 void SetHalODMVar( 37 PADAPTER Adapter, 38 HAL_ODM_VARIABLE eVariable, 39 void *pValue1, 40 BOOLEAN bSet); 41 42 void rtw_phydm_ra_registed(_adapter *adapter, struct sta_info *psta); 43 44 #ifdef CONFIG_DYNAMIC_SOML 45 void rtw_dyn_soml_byte_update(_adapter *adapter, u8 data_rate, u32 size); 46 void rtw_dyn_soml_para_set(_adapter *adapter, u8 train_num, u8 intvl, 47 u8 period, u8 delay); 48 void rtw_dyn_soml_config(_adapter *adapter); 49 #endif 50 #ifdef RTW_DYNAMIC_RRSR 51 void rtw_phydm_set_rrsr(_adapter *adapter, u32 rrsr_value, bool write_rrsr); 52 #endif 53 void rtw_phydm_watchdog(_adapter *adapter, bool in_lps); 54 55 void rtw_hal_update_iqk_fw_offload_cap(_adapter *adapter); 56 void dump_sta_info(void *sel, struct sta_info *psta); 57 void dump_sta_traffic(void *sel, _adapter *adapter, struct sta_info *psta); 58 59 #ifdef CONFIG_DBG_RF_CAL 60 void rtw_hal_iqk_test(_adapter *adapter, bool recovery, bool clear, bool segment); 61 void rtw_hal_lck_test(_adapter *adapter); 62 #endif 63 64 s8 rtw_dm_get_min_rssi(_adapter *adapter); 65 s8 rtw_phydm_get_min_rssi(_adapter *adapter); 66 u8 rtw_phydm_get_cur_igi(_adapter *adapter); 67 bool rtw_phydm_get_edcca_flag(_adapter *adapter); 68 69 70 #ifdef CONFIG_LPS_LCLK_WD_TIMER 71 extern void phydm_rssi_monitor_check(void *p_dm_void); 72 73 void rtw_phydm_wd_lps_lclk_hdl(_adapter *adapter); 74 void rtw_phydm_watchdog_in_lps_lclk(_adapter *adapter); 75 #endif 76 #ifdef CONFIG_TDMADIG 77 enum rtw_tdmadig_state{ 78 TDMADIG_INIT, 79 TDMADIG_NON_INIT, 80 }; 81 #endif 82 enum phy_cnt { 83 FA_OFDM, 84 FA_CCK, 85 FA_TOTAL, 86 CCA_OFDM, 87 CCA_CCK, 88 CCA_ALL, 89 CRC32_OK_VHT, 90 CRC32_OK_HT, 91 CRC32_OK_LEGACY, 92 CRC32_OK_CCK, 93 CRC32_ERROR_VHT, 94 CRC32_ERROR_HT, 95 CRC32_ERROR_LEGACY, 96 CRC32_ERROR_CCK, 97 }; 98 u32 rtw_phydm_get_phy_cnt(_adapter *adapter, enum phy_cnt cnt); 99 #if ((RTL8822B_SUPPORT == 1) || (RTL8821C_SUPPORT == 1) || (RTL8814B_SUPPORT == 1) || (RTL8822C_SUPPORT == 1)) 100 void rtw_phydm_iqk_trigger(_adapter *adapter); 101 #endif 102 void rtw_phydm_read_efuse(_adapter *adapter); 103 bool rtw_phydm_set_crystal_cap(_adapter *adapter, u8 crystal_cap); 104 105 #ifdef CONFIG_SUPPORT_DYNAMIC_TXPWR 106 void rtw_phydm_set_dyntxpwr(_adapter *adapter, u8 *desc, u8 mac_id); 107 #endif 108 #ifdef CONFIG_RTW_TX_2PATH_EN 109 void rtw_phydm_tx_2path_en(_adapter *adapter); 110 #endif 111 #ifdef CONFIG_LPS_PG 112 void rtw_phydm_lps_pg_hdl(_adapter *adapter, struct sta_info *sta, bool in_lpspg); 113 #endif 114 #ifdef CONFIG_LPS_PWR_TRACKING 115 void rtw_phydm_pwr_tracking_directly(_adapter *adapter); 116 #endif 117 118 #ifdef CONFIG_CTRL_TXSS_BY_TP 119 void rtw_phydm_trx_cfg(_adapter *adapter, bool tx_1ss); 120 #endif 121 122 #endif /* __HAL_DM_H__ */ 123