1 /* 2 * Copyright (c) 2012-2021 The Linux Foundation. All rights reserved. 3 * 4 * Permission to use, copy, modify, and/or distribute this software for 5 * any purpose with or without fee is hereby granted, provided that the 6 * above copyright notice and this permission notice appear in all 7 * copies. 8 * 9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 10 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 11 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE 12 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 13 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 14 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 15 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 16 * PERFORMANCE OF THIS SOFTWARE. 17 */ 18 19 /** 20 * DOC: This file contains centralized definitions of converged configuration. 21 */ 22 23 #ifndef __CFG_MLME_HT_CAPS_H 24 #define __CFG_MLME_HT_CAPS_H 25 26 /* 27 * <ini> 28 * gTxLdpcEnable - Config Param to enable Tx LDPC capability 29 * @Min: 0 30 * @Max: 3 31 * @Default: 3 32 * 33 * This ini is used to enable/disable Tx LDPC capability 34 * 0 - disable 35 * 1 - HT LDPC enable 36 * 2 - VHT LDPC enable 37 * 3 - HT & VHT LDPC enable 38 * 39 * Related: STA/SAP/P2P/IBSS/NAN. 40 * 41 * Supported Feature: Concurrency/Standalone 42 * 43 * Usage: External 44 * 45 * </ini> 46 */ 47 #define CFG_TX_LDPC_ENABLE CFG_INI_UINT( \ 48 "gTxLdpcEnable", \ 49 0, \ 50 3, \ 51 3, \ 52 CFG_VALUE_OR_DEFAULT, \ 53 "Tx LDPC capability") 54 55 /* 56 * <ini> 57 * gEnableRXLDPC - Config Param to enable Rx LDPC capability 58 * @Min: 0 59 * @Max: 1 60 * @Default: 1 61 * 62 * This ini is used to enable/disable Rx LDPC capability 63 * 0 - disable Rx LDPC 64 * 1 - enable Rx LDPC 65 * 66 * Related: STA/SAP/P2P/IBSS/NAN. 67 * 68 * Supported Feature: Concurrency/Standalone 69 * 70 * Usage: External 71 * 72 * </ini> 73 */ 74 #define CFG_RX_LDPC_ENABLE CFG_INI_BOOL( \ 75 "gEnableRXLDPC", \ 76 1, \ 77 "Rx LDPC capability") 78 79 /* 80 * <ini> 81 * gEnableTXSTBC - Enables/disables Tx STBC capability in STA mode 82 * @Min: 0 83 * @Max: 1 84 * @Default: 1 85 * 86 * This ini is used to set default Tx STBC capability 87 * 88 * Related: None 89 * 90 * Supported Feature: STA 91 * 92 * Usage: External 93 * 94 * </ini> 95 */ 96 #define CFG_TX_STBC_ENABLE CFG_INI_BOOL( \ 97 "gEnableTXSTBC", \ 98 1, \ 99 "Tx STBC capability") 100 101 /* 102 * <ini> 103 * gEnableRXSTBC - Enables/disables Rx STBC capability in STA mode 104 * @Min: 0 105 * @Max: 1 106 * @Default: 1 107 * 108 * This ini is used to set default Rx STBC capability 109 * 110 * Related: None 111 * 112 * Supported Feature: STA 113 * 114 * Usage: External 115 * 116 * </ini> 117 */ 118 #define CFG_RX_STBC_ENABLE CFG_INI_BOOL( \ 119 "gEnableRXSTBC", \ 120 1, \ 121 "Rx STBC capability") 122 123 /* 124 * <ini> 125 * gShortGI20Mhz - Short Guard Interval for HT20 126 * @Min: 0 127 * @Max: 1 128 * @Default: 1 129 * 130 * This ini is used to set default short interval for HT20 131 * 132 * Related: None 133 * 134 * Supported Feature: STA 135 * 136 * Usage: External 137 * 138 * </ini> 139 */ 140 #define CFG_SHORT_GI_20MHZ CFG_INI_BOOL( \ 141 "gShortGI20Mhz", \ 142 1, \ 143 "Short Guard Interval for HT20") 144 145 /* 146 * <ini> 147 * gShortGI40Mhz - It will check gShortGI20Mhz and 148 * gShortGI40Mhz from session entry 149 * @Min: 0 150 * @Max: 1 151 * @Default: 1 152 * 153 * This ini is used to set default gShortGI40Mhz 154 * 155 * Related: None 156 * 157 * Supported Feature: STA 158 * 159 * Usage: External 160 * 161 * </ini> 162 */ 163 #define CFG_SHORT_GI_40MHZ CFG_INI_BOOL( \ 164 "gShortGI40Mhz", \ 165 1, \ 166 "Short Guard Interval for HT40") 167 168 #define CFG_HT_CAP_INFO CFG_UINT( \ 169 "ht_cap_info", \ 170 0, \ 171 65535, \ 172 364, \ 173 CFG_VALUE_OR_DEFAULT, \ 174 "HT cap info") 175 176 /* 177 * <ini> 178 * gShortPreamble - Set Short Preamble 179 * @Min: 0 180 * @Max: 1 181 * @Default: 1 182 * 183 * This ini is used to set default short Preamble 184 * 185 * Related: None 186 * 187 * Supported Feature: STA 188 * 189 * Usage: External 190 * 191 * </ini> 192 */ 193 #define CFG_SHORT_PREAMBLE CFG_INI_BOOL( \ 194 "gShortPreamble", \ 195 1, \ 196 "Short Preamble") 197 198 #define CFG_HT_AMPDU_PARAMS CFG_UINT( \ 199 "ht_ampdu_params", \ 200 0, \ 201 255, \ 202 0, \ 203 CFG_VALUE_OR_DEFAULT, \ 204 "HT AMPDU Params") 205 206 #define CFG_EXT_HT_CAP_INFO CFG_UINT( \ 207 "ext_ht_cap_info", \ 208 0, \ 209 65535, \ 210 1024, \ 211 CFG_VALUE_OR_DEFAULT, \ 212 "HT Ext Cap Info") 213 214 #define CFG_HT_INFO_FIELD_1 CFG_UINT( \ 215 "ht_info_field_1", \ 216 0, \ 217 255, \ 218 15, \ 219 CFG_VALUE_OR_DEFAULT, \ 220 "HT Info Field 1") 221 222 #define CFG_HT_INFO_FIELD_2 CFG_UINT( \ 223 "ht_info_field_2", \ 224 0, \ 225 65535, \ 226 0, \ 227 CFG_VALUE_OR_DEFAULT, \ 228 "HT Info Field 2") 229 230 #define CFG_HT_INFO_FIELD_3 CFG_UINT( \ 231 "ht_info_field_3", \ 232 0, \ 233 65535, \ 234 0, \ 235 CFG_VALUE_OR_DEFAULT, \ 236 "HT Info Field 3") 237 238 /* 239 * <ini> 240 * gEnableHtSMPS - Enable the SM Power Save 241 * @Min: 0 242 * @Max: 1 243 * @Default: 0 244 * 245 * This ini is used to enable SM Power Save 246 * 247 * Related: None 248 * 249 * Supported Feature: STA 250 * 251 * Usage: External 252 * 253 * </ini> 254 */ 255 #define CFG_ENABLE_HT_SMPS CFG_INI_BOOL( \ 256 "gEnableHtSMPS", \ 257 0, \ 258 "Enable HT SM PowerSave") 259 260 /* 261 * <ini> 262 * gHtSMPS - SMPS Mode 263 * @Min: 0 264 * @Max: 3 265 * @Default: 3 266 * 267 * This ini is used to set default SM Power Save Antenna mode 268 * 0 - Static 269 * 1 - Dynamic 270 * 2 - Reserved/Invalid 271 * 3 - Disabled 272 * 273 * Related: None 274 * 275 * Supported Feature: STA 276 * 277 * Usage: External 278 * 279 * </ini> 280 */ 281 #define CFG_HT_SMPS_MODE CFG_INI_UINT( \ 282 "gHtSMPS", \ 283 0, \ 284 3, \ 285 3, \ 286 CFG_VALUE_OR_DEFAULT, \ 287 "HT SM Power Save Config") 288 289 /* 290 * <ini> 291 * gMaxAmsduNum - Max number of MSDU's in aggregate 292 * @Min: 0 293 * @Max: 15 294 * @Default: 0 295 * 296 * gMaxAmsduNum is the number of MSDU's transmitted in the aggregated 297 * frame. Setting it to a value larger than 1 enables transmit aggregation. 298 * Set the value to 0 to enable FW automode selection where it decides 299 * the maximum number of MSDUs in AMSDU based on connection mode. 300 * 301 * It is a PHY parameter that applies to all vdev's in firmware. 302 * 303 * Supported Feature: 11n aggregation 304 * 305 * Usage: Internal 306 * 307 * </ini> 308 */ 309 #define CFG_MAX_AMSDU_NUM CFG_INI_UINT( \ 310 "gMaxAmsduNum", \ 311 0, \ 312 15, \ 313 0, \ 314 CFG_VALUE_OR_DEFAULT, \ 315 "Max AMSDU Number") 316 317 /* 318 * <ini> 319 * gMaxRxAmpduFactor - Provide the maximum ampdu factor. 320 * @Min: 0 321 * @Max: 3 322 * @Default: 3 323 * 324 * This ini is used to set default maxampdu factor 325 * 326 * Related: None 327 * 328 * Supported Feature: STA 329 * 330 * Usage: External 331 * 332 * </ini> 333 */ 334 #define CFG_MAX_RX_AMPDU_FACTOR CFG_INI_UINT( \ 335 "gMaxRxAmpduFactor", \ 336 0, \ 337 3, \ 338 3, \ 339 CFG_VALUE_OR_DEFAULT, \ 340 "Max Rx AMPDU Factor") 341 342 /* 343 * <ini> 344 * ght_mpdu_density - Configuration option for HT MPDU density 345 * @Min: 0 346 * @Max: 7 347 * @Default: 4 348 * 349 * This ini is used to set default MPDU Density 350 * 351 * Related: None 352 * 353 * Supported Feature: STA 354 * 355 * Usage: External 356 * 357 * As per (Table 8-125 802.11-2012) 358 * 0 for no restriction 359 * 1 for 1/4 micro sec 360 * 2 for 1/2 micro sec 361 * 3 for 1 micro sec 362 * 4 for 2 micro sec 363 * 5 for 4 micro sec 364 * 6 for 8 micro sec 365 * 7 for 16 micro sec 366 * 367 * </ini> 368 */ 369 #define CFG_MPDU_DENSITY CFG_INI_UINT( \ 370 "ght_mpdu_density", \ 371 0, \ 372 7, \ 373 4, \ 374 CFG_VALUE_OR_DEFAULT, \ 375 "MPDU Density") 376 377 /* 378 * <ini> 379 * gShortSlotTimeEnabled - It will set slot timing slot. 380 * @Min: 0 381 * @Max: 1 382 * @Default: 1 383 * 384 * This ini is used to set default timing slot. 385 * 386 * Related: None 387 * 388 * Supported Feature: STA 389 * 390 * Usage: External 391 * 392 * </ini> 393 */ 394 #define CFG_SHORT_SLOT_TIME_ENABLED CFG_INI_BOOL( \ 395 "gShortSlotTimeEnabled", \ 396 1, \ 397 "Short Slot Time Enabled") 398 399 #define CFG_HT_CAPS_ALL \ 400 CFG(CFG_HT_CAP_INFO) \ 401 CFG(CFG_TX_LDPC_ENABLE) \ 402 CFG(CFG_RX_LDPC_ENABLE) \ 403 CFG(CFG_TX_STBC_ENABLE) \ 404 CFG(CFG_RX_STBC_ENABLE) \ 405 CFG(CFG_SHORT_GI_20MHZ) \ 406 CFG(CFG_SHORT_GI_40MHZ) \ 407 CFG(CFG_SHORT_PREAMBLE) \ 408 CFG(CFG_HT_AMPDU_PARAMS) \ 409 CFG(CFG_EXT_HT_CAP_INFO) \ 410 CFG(CFG_HT_INFO_FIELD_1) \ 411 CFG(CFG_HT_INFO_FIELD_2) \ 412 CFG(CFG_HT_INFO_FIELD_3) \ 413 CFG(CFG_ENABLE_HT_SMPS) \ 414 CFG(CFG_HT_SMPS_MODE) \ 415 CFG(CFG_MAX_AMSDU_NUM) \ 416 CFG(CFG_MAX_RX_AMPDU_FACTOR) \ 417 CFG(CFG_MPDU_DENSITY) \ 418 CFG(CFG_SHORT_SLOT_TIME_ENABLED) 419 420 #endif /* __CFG_MLME_HT_CAPS_H */ 421