phydm_adaptivity.h 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. /******************************************************************************
  2. *
  3. * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
  4. *
  5. * This program is free software; you can redistribute it and/or modify it
  6. * under the terms of version 2 of the GNU General Public License as
  7. * published by the Free Software Foundation.
  8. *
  9. * This program is distributed in the hope that it will be useful, but WITHOUT
  10. * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11. * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
  12. * more details.
  13. *
  14. * You should have received a copy of the GNU General Public License along with
  15. * this program; if not, write to the Free Software Foundation, Inc.,
  16. * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
  17. *
  18. *
  19. ******************************************************************************/
  20. #ifndef __PHYDMADAPTIVITY_H__
  21. #define __PHYDMADAPTIVITY_H__
  22. #define ADAPTIVITY_VERSION "9.5.2" /*20170420 changed by Kevin, change th_l2h_ini setting for 5G: v2.1.0*/
  23. #define pwdb_upper_bound 7
  24. #define dfir_loss 7
  25. #if (DM_ODM_SUPPORT_TYPE & (ODM_WIN))
  26. enum phydm_regulation_type {
  27. REGULATION_FCC = 0,
  28. REGULATION_MKK = 1,
  29. REGULATION_ETSI = 2,
  30. REGULATION_WW = 3,
  31. MAX_REGULATION_NUM = 4
  32. };
  33. #endif
  34. enum phydm_adapinfo_e {
  35. PHYDM_ADAPINFO_CARRIER_SENSE_ENABLE = 0,
  36. PHYDM_ADAPINFO_DCBACKOFF,
  37. PHYDM_ADAPINFO_DYNAMICLINKADAPTIVITY,
  38. PHYDM_ADAPINFO_TH_L2H_INI,
  39. PHYDM_ADAPINFO_TH_EDCCA_HL_DIFF,
  40. PHYDM_ADAPINFO_AP_NUM_TH
  41. };
  42. enum phydm_set_lna {
  43. phydm_disable_lna = 0,
  44. phydm_enable_lna = 1,
  45. };
  46. enum phydm_trx_mux_type {
  47. phydm_shutdown = 0,
  48. phydm_standby_mode = 1,
  49. phydm_tx_mode = 2,
  50. phydm_rx_mode = 3
  51. };
  52. enum phydm_mac_edcca_type {
  53. phydm_ignore_edcca = 0,
  54. phydm_dont_ignore_edcca = 1
  55. };
  56. struct _ADAPTIVITY_STATISTICS {
  57. s8 th_l2h_ini_backup;
  58. s8 th_edcca_hl_diff_backup;
  59. s8 igi_base;
  60. u8 igi_target;
  61. u8 nhm_wait;
  62. s8 h2l_lb;
  63. s8 l2h_lb;
  64. boolean is_first_link;
  65. boolean is_check;
  66. boolean dynamic_link_adaptivity;
  67. u8 ap_num_th;
  68. u8 adajust_igi_level;
  69. boolean acs_for_adaptivity;
  70. s8 backup_l2h;
  71. s8 backup_h2l;
  72. boolean is_stop_edcca;
  73. #if (DM_ODM_SUPPORT_TYPE & ODM_WIN)
  74. RT_WORK_ITEM phydm_pause_edcca_work_item;
  75. RT_WORK_ITEM phydm_resume_edcca_work_item;
  76. #endif
  77. u32 adaptivity_dbg_port; /*N:0x208, AC:0x209*/
  78. };
  79. void
  80. phydm_pause_edcca(
  81. void *p_dm_void,
  82. boolean is_pasue_edcca
  83. );
  84. void
  85. phydm_check_adaptivity(
  86. void *p_dm_void
  87. );
  88. void
  89. phydm_check_environment(
  90. void *p_dm_void
  91. );
  92. void
  93. phydm_nhm_counter_statistics_init(
  94. void *p_dm_void
  95. );
  96. void
  97. phydm_nhm_counter_statistics(
  98. void *p_dm_void
  99. );
  100. void
  101. phydm_nhm_counter_statistics_reset(
  102. void *p_dm_void
  103. );
  104. void
  105. phydm_get_nhm_counter_statistics(
  106. void *p_dm_void
  107. );
  108. void
  109. phydm_mac_edcca_state(
  110. void *p_dm_void,
  111. enum phydm_mac_edcca_type state
  112. );
  113. void
  114. phydm_set_edcca_threshold(
  115. void *p_dm_void,
  116. s8 H2L,
  117. s8 L2H
  118. );
  119. void
  120. phydm_set_trx_mux(
  121. void *p_dm_void,
  122. enum phydm_trx_mux_type tx_mode,
  123. enum phydm_trx_mux_type rx_mode
  124. );
  125. boolean
  126. phydm_cal_nhm_cnt(
  127. void *p_dm_void
  128. );
  129. void
  130. phydm_search_pwdb_lower_bound(
  131. void *p_dm_void
  132. );
  133. void
  134. phydm_adaptivity_info_init(
  135. void *p_dm_void,
  136. enum phydm_adapinfo_e cmn_info,
  137. u32 value
  138. );
  139. void
  140. phydm_adaptivity_init(
  141. void *p_dm_void
  142. );
  143. void
  144. phydm_adaptivity(
  145. void *p_dm_void
  146. );
  147. void
  148. phydm_set_edcca_threshold_api(
  149. void *p_dm_void,
  150. u8 IGI
  151. );
  152. #if (DM_ODM_SUPPORT_TYPE == ODM_WIN)
  153. void
  154. phydm_disable_edcca(
  155. void *p_dm_void
  156. );
  157. void
  158. phydm_dynamic_edcca(
  159. void *p_dm_void
  160. );
  161. void
  162. phydm_adaptivity_bsod(
  163. void *p_dm_void
  164. );
  165. #endif
  166. void
  167. phydm_pause_edcca_work_item_callback(
  168. #if (DM_ODM_SUPPORT_TYPE == ODM_WIN)
  169. struct _ADAPTER *adapter
  170. #else
  171. void *p_dm_void
  172. #endif
  173. );
  174. void
  175. phydm_resume_edcca_work_item_callback(
  176. #if (DM_ODM_SUPPORT_TYPE == ODM_WIN)
  177. struct _ADAPTER *adapter
  178. #else
  179. void *p_dm_void
  180. #endif
  181. );
  182. void
  183. phydm_set_l2h_th_ini(
  184. void *p_dm_void
  185. );
  186. void
  187. phydm_set_forgetting_factor(
  188. void *p_dm_void
  189. );
  190. #endif