1 2 /****************************************************************************** 3 * 4 * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved. 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 * You should have received a copy of the GNU General Public License along with 16 * this program; if not, write to the Free Software Foundation, Inc., 17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA 18 * 19 * 20 ******************************************************************************/ 21 22 #ifndef __PHYDMADAPTIVITY_H__ 23 #define __PHYDMADAPTIVITY_H__ 24 25 #define ADAPTIVITY_VERSION "9.3.3" /*20151230 changed by Kevin, modify 0x524[11] when adaptivity is enabled*/ 26 27 #define PwdBUpperBound 7 28 #define DFIRloss 5 29 30 #if (DM_ODM_SUPPORT_TYPE & (ODM_WIN)) 31 typedef enum _tag_PhyDM_REGULATION_Type { 32 REGULATION_FCC = 0, 33 REGULATION_MKK = 1, 34 REGULATION_ETSI = 2, 35 REGULATION_WW = 3, 36 37 MAX_REGULATION_NUM = 4 38 } PhyDM_REGULATION_TYPE; 39 #endif 40 41 typedef enum _PHYDM_ADAPTIVITY_Info_Definition { 42 PHYDM_ADAPINFO_CARRIER_SENSE_ENABLE = 0, 43 PHYDM_ADAPINFO_DCBACKOFF, 44 PHYDM_ADAPINFO_DYNAMICLINKADAPTIVITY, 45 PHYDM_ADAPINFO_TH_L2H_INI, 46 PHYDM_ADAPINFO_TH_EDCCA_HL_DIFF, 47 PHYDM_ADAPINFO_AP_NUM_TH 48 49 } PHYDM_ADAPINFO_E; 50 51 52 53 typedef enum tag_PhyDM_set_LNA { 54 PhyDM_disable_LNA = 0, 55 PhyDM_enable_LNA = 1, 56 } PhyDM_set_LNA; 57 58 59 typedef enum tag_PhyDM_TRx_MUX_Type 60 { 61 PhyDM_SHUTDOWN = 0, 62 PhyDM_STANDBY_MODE = 1, 63 PhyDM_TX_MODE = 2, 64 PhyDM_RX_MODE = 3 65 }PhyDM_Trx_MUX_Type; 66 67 typedef enum tag_PhyDM_MACEDCCA_Type 68 { 69 PhyDM_IGNORE_EDCCA = 0, 70 PhyDM_DONT_IGNORE_EDCCA = 1 71 }PhyDM_MACEDCCA_Type; 72 73 typedef struct _ADAPTIVITY_STATISTICS { 74 s1Byte TH_L2H_ini_backup; 75 s1Byte TH_EDCCA_HL_diff_backup; 76 s1Byte IGI_Base; 77 u1Byte IGI_target; 78 u1Byte NHMWait; 79 s1Byte H2L_lb; 80 s1Byte L2H_lb; 81 BOOLEAN bFirstLink; 82 BOOLEAN bCheck; 83 BOOLEAN DynamicLinkAdaptivity; 84 u1Byte APNumTH; 85 u1Byte AdajustIGILevel; 86 BOOLEAN AcsForAdaptivity; 87 s1Byte backupL2H; 88 s1Byte backupH2L; 89 BOOLEAN bStopEDCCA; 90 #if (DM_ODM_SUPPORT_TYPE & ODM_WIN) 91 RT_WORK_ITEM phydm_pauseEDCCAWorkItem; 92 RT_WORK_ITEM phydm_resumeEDCCAWorkItem; 93 #endif 94 } ADAPTIVITY_STATISTICS, *PADAPTIVITY_STATISTICS; 95 96 VOID 97 phydm_pauseEDCCA( 98 IN PVOID pDM_VOID, 99 IN BOOLEAN bPasueEDCCA 100 ); 101 102 VOID 103 Phydm_CheckAdaptivity( 104 IN PVOID pDM_VOID 105 ); 106 107 VOID 108 Phydm_CheckEnvironment( 109 IN PVOID pDM_VOID 110 ); 111 112 VOID 113 Phydm_NHMCounterStatisticsInit( 114 IN PVOID pDM_VOID 115 ); 116 117 VOID 118 Phydm_NHMCounterStatistics( 119 IN PVOID pDM_VOID 120 ); 121 122 VOID 123 Phydm_NHMCounterStatisticsReset( 124 IN PVOID pDM_VOID 125 ); 126 127 VOID 128 Phydm_GetNHMCounterStatistics( 129 IN PVOID pDM_VOID 130 ); 131 132 VOID 133 Phydm_MACEDCCAState( 134 IN PVOID pDM_VOID, 135 IN PhyDM_MACEDCCA_Type State 136 ); 137 138 VOID 139 Phydm_SetEDCCAThreshold( 140 IN PVOID pDM_VOID, 141 IN s1Byte H2L, 142 IN s1Byte L2H 143 ); 144 145 VOID 146 Phydm_SetTRxMux( 147 IN PVOID pDM_VOID, 148 IN PhyDM_Trx_MUX_Type txMode, 149 IN PhyDM_Trx_MUX_Type rxMode 150 ); 151 152 BOOLEAN 153 Phydm_CalNHMcnt( 154 IN PVOID pDM_VOID 155 ); 156 157 VOID 158 Phydm_SearchPwdBLowerBound( 159 IN PVOID pDM_VOID 160 ); 161 162 VOID 163 phydm_adaptivityInfoInit( 164 IN PVOID pDM_VOID, 165 IN PHYDM_ADAPINFO_E CmnInfo, 166 IN u4Byte Value 167 ); 168 169 VOID 170 Phydm_AdaptivityInit( 171 IN PVOID pDM_VOID 172 ); 173 174 VOID 175 Phydm_Adaptivity( 176 IN PVOID pDM_VOID, 177 IN u1Byte IGI 178 ); 179 180 VOID 181 phydm_setEDCCAThresholdAPI( 182 IN PVOID pDM_VOID, 183 IN u1Byte IGI 184 ); 185 186 #if (DM_ODM_SUPPORT_TYPE == ODM_WIN) 187 VOID 188 Phydm_DisableEDCCA( 189 IN PVOID pDM_VOID 190 ); 191 192 VOID 193 Phydm_DynamicEDCCA( 194 IN PVOID pDM_VOID 195 ); 196 197 VOID 198 Phydm_AdaptivityBSOD( 199 IN PVOID pDM_VOID 200 ); 201 202 #endif 203 204 VOID 205 phydm_pauseEDCCA_WorkItemCallback( 206 #if (DM_ODM_SUPPORT_TYPE == ODM_WIN) 207 IN PADAPTER Adapter 208 #else 209 IN PVOID pDM_VOID 210 #endif 211 ); 212 213 VOID 214 phydm_resumeEDCCA_WorkItemCallback( 215 #if (DM_ODM_SUPPORT_TYPE == ODM_WIN) 216 IN PADAPTER Adapter 217 #else 218 IN PVOID pDM_VOID 219 #endif 220 ); 221 222 #endif 223