1 /* SPDX-License-Identifier: GPL-2.0 */
2 /******************************************************************************
4 * Copyright(c) 2007 - 2016 Realtek Corporation.
7 * wlanfae <wlanfae@realtek.com>
8 * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
11 * Larry Finger <Larry.Finger@lwfinger.net>
13 *****************************************************************************/
15 #ifndef __PHYDMADAPTIVITY_H__
16 #define __PHYDMADAPTIVITY_H__
18 /*20160902 changed by Kevin, refine method for searching pwdb lower bound*/
19 #define ADAPTIVITY_VERSION "9.3.5"
21 #define pwdb_upper_bound 7
25 PHYDM_ADAPINFO_CARRIER_SENSE_ENABLE = 0,
26 PHYDM_ADAPINFO_DCBACKOFF,
27 PHYDM_ADAPINFO_DYNAMICLINKADAPTIVITY,
28 PHYDM_ADAPINFO_TH_L2H_INI,
29 PHYDM_ADAPINFO_TH_EDCCA_HL_DIFF,
30 PHYDM_ADAPINFO_AP_NUM_TH
35 phydm_disable_lna = 0,
39 enum phydm_trx_mux_type {
41 phydm_standby_mode = 1,
46 enum phydm_mac_edcca_type {
47 phydm_ignore_edcca = 0,
48 phydm_dont_ignore_edcca = 1
51 struct adaptivity_statistics {
53 s8 th_edcca_hl_diff_backup;
61 bool dynamic_link_adaptivity;
64 bool acs_for_adaptivity;
70 void phydm_pause_edcca(void *dm_void, bool is_pasue_edcca);
72 void phydm_check_adaptivity(void *dm_void);
74 void phydm_check_environment(void *dm_void);
76 void phydm_nhm_counter_statistics_init(void *dm_void);
78 void phydm_nhm_counter_statistics(void *dm_void);
80 void phydm_nhm_counter_statistics_reset(void *dm_void);
82 void phydm_get_nhm_counter_statistics(void *dm_void);
84 void phydm_mac_edcca_state(void *dm_void, enum phydm_mac_edcca_type state);
86 void phydm_set_edcca_threshold(void *dm_void, s8 H2L, s8 L2H);
88 void phydm_set_trx_mux(void *dm_void, enum phydm_trx_mux_type tx_mode,
89 enum phydm_trx_mux_type rx_mode);
91 bool phydm_cal_nhm_cnt(void *dm_void);
93 void phydm_search_pwdb_lower_bound(void *dm_void);
95 void phydm_adaptivity_info_init(void *dm_void, enum phydm_adapinfo cmn_info,
98 void phydm_adaptivity_init(void *dm_void);
100 void phydm_adaptivity(void *dm_void);
102 void phydm_set_edcca_threshold_api(void *dm_void, u8 IGI);
104 void phydm_pause_edcca_work_item_callback(void *dm_void);
106 void phydm_resume_edcca_work_item_callback(void *dm_void);