cfg_mlme_he_caps.h 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772
  1. /*
  2. * Copyright (c) 2012-2019 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. * DOC: This file contains centralized definitions of converged configuration.
  20. */
  21. #ifndef __CFG_MLME_HE_CAPS_H
  22. #define __CFG_MLME_HE_CAPS_H
  23. #define CFG_HE_CONTROL CFG_BOOL( \
  24. "he_control", \
  25. 0, \
  26. "HE Control")
  27. #define CFG_HE_TWT_REQUESTOR CFG_BOOL( \
  28. "he_twt_requestor", \
  29. 0, \
  30. "HE Twt Requestor")
  31. #define CFG_HE_TWT_RESPONDER CFG_BOOL( \
  32. "he_twt_responder", \
  33. 0, \
  34. "HE Twt Responder")
  35. #define CFG_HE_FRAGMENTATION CFG_UINT( \
  36. "he_fragmentation", \
  37. 0, \
  38. 3, \
  39. 0, \
  40. CFG_VALUE_OR_DEFAULT, \
  41. "HE Fragmentation")
  42. #define CFG_HE_MAX_FRAG_MSDU CFG_UINT( \
  43. "he_max_frag_msdu", \
  44. 0, \
  45. 7, \
  46. 0, \
  47. CFG_VALUE_OR_DEFAULT, \
  48. "HE Max Frag Msdu")
  49. #define CFG_HE_MIN_FRAG_SIZE CFG_UINT( \
  50. "he_min_frag_size", \
  51. 0, \
  52. 3, \
  53. 0, \
  54. CFG_VALUE_OR_DEFAULT, \
  55. "HE Min Frag Size")
  56. #define CFG_HE_TRIG_PAD CFG_UINT( \
  57. "he_trig_pad", \
  58. 0, \
  59. 2, \
  60. 0, \
  61. CFG_VALUE_OR_DEFAULT, \
  62. "HE Trig Pad")
  63. #define CFG_HE_MTID_AGGR_RX CFG_UINT( \
  64. "he_mtid_aggr_rx", \
  65. 0, \
  66. 7, \
  67. 0, \
  68. CFG_VALUE_OR_DEFAULT, \
  69. "HE Mtid Aggr")
  70. #define CFG_HE_LINK_ADAPTATION CFG_UINT( \
  71. "he_link_adaptation", \
  72. 0, \
  73. 3, \
  74. 0, \
  75. CFG_VALUE_OR_DEFAULT, \
  76. "HE Link Adaptation")
  77. #define CFG_HE_ALL_ACK CFG_BOOL( \
  78. "he_all_ack", \
  79. 0, \
  80. "HE All Ack")
  81. #define CFG_HE_TRIGD_RSP_SCHEDULING CFG_BOOL( \
  82. "he_trigd_rsp_scheduling", \
  83. 0, \
  84. "HE Trigd Rsp Scheduling")
  85. #define CFG_HE_BUFFER_STATUS_RPT CFG_BOOL( \
  86. "he_buffer_status_rpt", \
  87. 0, \
  88. "HE Buffer Status Rpt")
  89. #define CFG_HE_BCAST_TWT CFG_BOOL( \
  90. "he_bcast_twt", \
  91. 0, \
  92. "HE Bcast twt")
  93. #define CFG_HE_BA_32BIT CFG_BOOL( \
  94. "he_ba_32bit", \
  95. 0, \
  96. "HE BA 32Bit")
  97. #define CFG_HE_MU_CASCADING CFG_BOOL( \
  98. "he_mu_cascading", \
  99. 0, \
  100. "HE Mu Cascading")
  101. #define CFG_HE_MULTI_TID CFG_BOOL( \
  102. "he_multi_tid", \
  103. 0, \
  104. "HE Multi Tid")
  105. #define CFG_HE_OMI CFG_BOOL( \
  106. "he_omi", \
  107. 0, \
  108. "HE Omi")
  109. #define CFG_HE_OFDMA_RA CFG_BOOL( \
  110. "he_ofdma_ra", \
  111. 0, \
  112. "HE Ofdma Ra")
  113. #define CFG_HE_MAX_AMPDU_LEN CFG_UINT( \
  114. "he_max_ampdu_len", \
  115. 0, \
  116. 3, \
  117. 0, \
  118. CFG_VALUE_OR_DEFAULT, \
  119. "HE Max Ampdu Len")
  120. #define CFG_HE_AMSDU_FRAG CFG_BOOL( \
  121. "he_amspdu_frag", \
  122. 0, \
  123. "HE Amsdu Frag")
  124. #define CFG_HE_FLEX_TWT_SCHED CFG_BOOL( \
  125. "he_flex_twt_sched", \
  126. 0, \
  127. "HE Flex Twt Sched")
  128. #define CFG_HE_RX_CTRL CFG_BOOL( \
  129. "he_rx_ctrl", \
  130. 0, \
  131. "HE Rx Ctrl")
  132. #define CFG_HE_BSRP_AMPDU_AGGR CFG_BOOL( \
  133. "he_bsrp_ampdu_aggr", \
  134. 0, \
  135. "He Bspr Ampdu Aggr")
  136. #define CFG_HE_QTP CFG_BOOL( \
  137. "he_qtp", \
  138. 0, \
  139. "He Qtp")
  140. #define CFG_HE_A_BQR CFG_BOOL( \
  141. "he_a_bqr", \
  142. 0, \
  143. "He A Bqr")
  144. #define CFG_HE_SR_RESPONDER CFG_BOOL( \
  145. "he_sr_responder", \
  146. 0, \
  147. "He Sr Responder")
  148. #define CFG_HE_NDP_FEEDBACK_SUPP CFG_BOOL( \
  149. "he_ndp_feedback_supp", \
  150. 0, \
  151. "He Ndp Feedback Supp")
  152. #define CFG_HE_OPS_SUPP CFG_BOOL( \
  153. "he_ops_supp", \
  154. 0, \
  155. "He Ops Supp")
  156. #define CFG_HE_AMSDU_IN_AMPDU CFG_BOOL( \
  157. "he_amsdu_in_ampdu", \
  158. 0, \
  159. "He Amsdu In Ampdu")
  160. #define CFG_HE_MTID_AGGR_TX CFG_UINT( \
  161. "he_mtid_aggr_tx", \
  162. 0, \
  163. 0x7, \
  164. 0, \
  165. CFG_VALUE_OR_DEFAULT, \
  166. "He MTid Aggr Tx")
  167. #define CFG_HE_SUB_CH_SEL_TX CFG_BOOL( \
  168. "he_sub_ch_sel_tx", \
  169. 0, \
  170. "He Sub cg sel tx")
  171. #define CFG_HE_UL_2X996_RU CFG_BOOL( \
  172. "he_ul_2x996_ru", \
  173. 0, \
  174. "He Ul 2x996 Ru")
  175. #define CFG_HE_OM_CTRL_UL_MU_DIS_RX CFG_BOOL( \
  176. "he_om_ctrl_ul_mu_dis_rx", \
  177. 0, \
  178. "He Om Ctrl Ul My Dis Rx")
  179. #define CFG_HE_DYNAMIC_SMPS CFG_BOOL( \
  180. "he_dynamic_smps", \
  181. 0, \
  182. "He Dyanmic SMPS")
  183. #define CFG_HE_PUNCTURED_SOUNDING CFG_BOOL( \
  184. "he_punctured_sounding", \
  185. 0, \
  186. "He Punctured Sounding")
  187. #define CFG_HE_HT_VHT_TRG_FRM_RX CFG_BOOL( \
  188. "ht_vht_trg_frm_rx", \
  189. 0, \
  190. "HT VHT Trigger frame Rx")
  191. #define CFG_HE_CHAN_WIDTH CFG_UINT( \
  192. "he_chan_width", \
  193. 0, \
  194. 0x3F, \
  195. 0, \
  196. CFG_VALUE_OR_DEFAULT, \
  197. "He Chan Width")
  198. #define CFG_HE_RX_PREAM_PUNC CFG_UINT( \
  199. "he_rx_pream_punc", \
  200. 0, \
  201. 0xF, \
  202. 0, \
  203. CFG_VALUE_OR_DEFAULT, \
  204. "He Rx Pream Punc")
  205. #define CFG_HE_CLASS_OF_DEVICE CFG_BOOL( \
  206. "he_class_of_device", \
  207. 0, \
  208. "He Class Of Device")
  209. #define CFG_HE_LDPC CFG_BOOL( \
  210. "he_ldpc", \
  211. 0, \
  212. "He Ldpc")
  213. #define CFG_HE_LTF_PPDU CFG_UINT( \
  214. "he_ltf_ppdu", \
  215. 0, \
  216. 3, \
  217. 0, \
  218. CFG_VALUE_OR_DEFAULT, \
  219. "He Ltf Ppdu")
  220. #define CFG_HE_MIDAMBLE_RX_MAX_NSTS CFG_UINT( \
  221. "he_midamble_rx_max_nsts", \
  222. 0, \
  223. 3, \
  224. 0, \
  225. CFG_VALUE_OR_DEFAULT, \
  226. "He Midamble Rx Max Nsts")
  227. #define CFG_HE_LTF_NDP CFG_UINT( \
  228. "he_ltf_ndp", \
  229. 0, \
  230. 3, \
  231. 0, \
  232. CFG_VALUE_OR_DEFAULT, \
  233. "He Ltf Ndp")
  234. #define CFG_HE_TX_STBC_LT80 CFG_BOOL( \
  235. "he_tx_stbc_lt80_sta", \
  236. 0, \
  237. "He Tx Stbc Lt80")
  238. #define CFG_HE_RX_STBC_LT80 CFG_BOOL( \
  239. "he_rx_stbc_lt80", \
  240. 0, \
  241. "He Rx Stbc Lt80")
  242. #define CFG_HE_DOPPLER CFG_UINT( \
  243. "he_doppler", \
  244. 0, \
  245. 3, \
  246. 0, \
  247. CFG_VALUE_OR_DEFAULT, \
  248. "He Doppler")
  249. #define CFG_HE_UL_MUMIMO CFG_UINT( \
  250. "he_ul_mumimo", \
  251. 0, \
  252. 3, \
  253. 0, \
  254. CFG_VALUE_OR_DEFAULT, \
  255. "He Ul Mumimo")
  256. #define CFG_HE_DCM_TX CFG_UINT( \
  257. "he_dcm_tx", \
  258. 0, \
  259. 7, \
  260. 0, \
  261. CFG_VALUE_OR_DEFAULT, \
  262. "He Dcm Tx")
  263. #define CFG_HE_DCM_RX CFG_UINT( \
  264. "he_dcm_rx", \
  265. 0, \
  266. 7, \
  267. 0, \
  268. CFG_VALUE_OR_DEFAULT, \
  269. "He Dcm Rx")
  270. #define CFG_HE_MU_PPDU CFG_BOOL( \
  271. "he_mu_ppdu", \
  272. 0, \
  273. "He Mu Ppdu")
  274. #define CFG_HE_SU_BEAMFORMER CFG_BOOL( \
  275. "he_su_beamformer", \
  276. 0, \
  277. "He Su Beamformer")
  278. #define CFG_HE_SU_BEAMFORMEE CFG_BOOL( \
  279. "he_su_beamformee", \
  280. 0, \
  281. "He Su Beamformee")
  282. #define CFG_HE_MU_BEAMFORMER CFG_BOOL( \
  283. "he_mu_beamformer", \
  284. 0, \
  285. "He Mu Beamformer")
  286. #define CFG_HE_BFEE_STS_LT80 CFG_UINT( \
  287. "he_bfee_sts_lt80", \
  288. 0, \
  289. 7, \
  290. 0, \
  291. CFG_VALUE_OR_DEFAULT, \
  292. "He Mu Bfee Sts Lt80")
  293. #define CFG_HE_BFEE_STS_GT80 CFG_UINT( \
  294. "he_bfee_sts_lt80", \
  295. 0, \
  296. 7, \
  297. 0, \
  298. CFG_VALUE_OR_DEFAULT, \
  299. "He Mu Bfee Sts Gt80")
  300. #define CFG_HE_NUM_SOUND_LT80 CFG_UINT( \
  301. "he_num_sound_lt80", \
  302. 0, \
  303. 7, \
  304. 0, \
  305. CFG_VALUE_OR_DEFAULT, \
  306. "He Num Sound Lt80")
  307. #define CFG_HE_NUM_SOUND_GT80 CFG_UINT( \
  308. "he_num_sound_gt80", \
  309. 0, \
  310. 7, \
  311. 0, \
  312. CFG_VALUE_OR_DEFAULT, \
  313. "He Num Sound Gt80")
  314. #define CFG_HE_SU_FEED_TONE16 CFG_BOOL( \
  315. "he_su_feed_tone16", \
  316. 0, \
  317. "He Su Feed Tone16")
  318. #define CFG_HE_MU_FEED_TONE16 CFG_BOOL( \
  319. "he_mu_feed_tone16", \
  320. 0, \
  321. "He Mu Feed Tone16")
  322. #define CFG_HE_CODEBOOK_SU CFG_BOOL( \
  323. "he_codebook_su", \
  324. 0, \
  325. "He Codebook Su")
  326. #define CFG_HE_CODEBOOK_MU CFG_BOOL( \
  327. "he_codebook_mu", \
  328. 0, \
  329. "He Codebook Mu")
  330. #define CFG_HE_BFRM_FEED CFG_UINT( \
  331. "he_bfrm_feed", \
  332. 0, \
  333. 7, \
  334. 0, \
  335. CFG_VALUE_OR_DEFAULT, \
  336. "He Bfrm Feed")
  337. #define CFG_HE_ER_SU_PPDU CFG_BOOL( \
  338. "he_bfrm_feed", \
  339. 0, \
  340. "He Er Su Ppdu")
  341. #define CFG_HE_DL_PART_BW CFG_BOOL( \
  342. "he_dl_part_bw", \
  343. 0, \
  344. "He Dl Part Bw")
  345. #define CFG_HE_PPET_PRESENT CFG_BOOL( \
  346. "he_ppet_present", \
  347. 0, \
  348. "He Pper Present")
  349. #define CFG_HE_SRP CFG_BOOL( \
  350. "he_srp", \
  351. 0, \
  352. "He Srp")
  353. #define CFG_HE_POWER_BOOST CFG_BOOL( \
  354. "he_power_boost", \
  355. 0, \
  356. "He Power Boost")
  357. #define CFG_HE_4x_LTF_GI CFG_BOOL( \
  358. "he_4x_ltf_gi", \
  359. 0, \
  360. "He 4x Ltf Gi")
  361. #define CFG_HE_MAX_NC CFG_UINT( \
  362. "he_max_nc", \
  363. 0, \
  364. 7, \
  365. 0, \
  366. CFG_VALUE_OR_DEFAULT, \
  367. "He Max Nc")
  368. #define CFG_HE_RX_STBC_GT80 CFG_BOOL( \
  369. "he_rx_stbc_gt80", \
  370. 0, \
  371. "He Rx Stbc Gt80")
  372. #define CFG_HE_TX_STBC_GT80 CFG_BOOL( \
  373. "he_Tx_stbc_gt80", \
  374. 0, \
  375. "He Tx Stbc Gt80")
  376. #define CFG_HE_ER_4x_LTF_GI CFG_BOOL( \
  377. "he_er_4x_ltf_gi", \
  378. 0, \
  379. "He Er 4x Ltf Gi")
  380. #define CFG_HE_PPDU_20_IN_40MHZ_2G CFG_BOOL( \
  381. "he_ppdu_20_in_40mhz_2g", \
  382. 0, \
  383. "He Ppdu 20 In 40Mhz 2g")
  384. #define CFG_HE_PPDU_20_IN_160_80P80MHZ CFG_BOOL( \
  385. "he_ppdu_20_in_160_80p80mhz", \
  386. 0, \
  387. "He Ppdu 20 In 160 80p80mhz")
  388. #define CFG_HE_PPDU_80_IN_160_80P80MHZ CFG_BOOL( \
  389. "he_ppdu_80_in_160_80p80mhz", \
  390. 0, \
  391. "He Ppdu 80 In 160 80p80mhz")
  392. #define CFG_HE_ER_1X_HE_LTF_GI CFG_BOOL( \
  393. "he_er_1x_he_ltf_gi", \
  394. 0, \
  395. "He Er 1x He Ltf Gi")
  396. #define CFG_HE_MIDAMBLE_TXRX_1X_HE_LTF CFG_BOOL( \
  397. "he_midamble_txrx_1x_he_ltf", \
  398. 0, \
  399. "He Midamble Tx Rx 1x He Ltf")
  400. #define CFG_HE_DCM_MAX_BW CFG_UINT( \
  401. "he_dcm_max_bw", \
  402. 0, \
  403. 3, \
  404. 0, \
  405. CFG_VALUE_OR_DEFAULT, \
  406. "He Dcm Max Bw")
  407. #define CFG_HE_LONGER_16_SIGB_OFDM_SYM CFG_BOOL( \
  408. "he_longer_16_sigb_ofdm_sys", \
  409. 0, \
  410. "He Longer 16 Sigb Ofdm Sys")
  411. #define CFG_HE_NON_TRIG_CQI_FEEDBACK CFG_BOOL( \
  412. "he_rx_mcs_map_lt_80", \
  413. 0, \
  414. "He Non Trig Cqi Feedback")
  415. #define CFG_HE_TX_1024_QAM_LT_242_RU CFG_BOOL( \
  416. "he_tx_1024_qam_lt_242_ru", \
  417. 0, \
  418. "He Tx 1024 Qam Lt 242 Ru")
  419. #define CFG_HE_RX_1024_QAM_LT_242_RU CFG_BOOL( \
  420. "he_rx_1024_qam_lt_242_ru", \
  421. 0, \
  422. "He Rx 1024 Qam Lt 242 Ru")
  423. #define CFG_HE_RX_FULL_BW_MU_CMPR_SIGB CFG_BOOL( \
  424. "he_rx_full_bw_cmpr_sigb", \
  425. 0, \
  426. "He Rx Full Bw Mu Cmpr Sigb")
  427. #define CFG_HE_RX_FULL_BW_MU_NON_CMPR_SIGB CFG_BOOL( \
  428. "he_rx_full_bw_mu_non_cmpr_sigb", \
  429. 0, \
  430. "He Rx Full Bw Mu Non Cmpr Sigb")
  431. #define CFG_HE_RX_MCS_MAP_LT_80 CFG_UINT( \
  432. "he_rx_mcs_map_lt_80", \
  433. 0, \
  434. 0xFFFF, \
  435. 0xFFF0, \
  436. CFG_VALUE_OR_DEFAULT, \
  437. "He Rx Mcs Map Lt 80")
  438. #define CFG_HE_TX_MCS_MAP_LT_80 CFG_UINT( \
  439. "he_tx_mcs_map_lt_80", \
  440. 0, \
  441. 0xFFFF, \
  442. 0xFFF0, \
  443. CFG_VALUE_OR_DEFAULT, \
  444. "He Tx Mcs Map Lt 80")
  445. #define CFG_HE_RX_MCS_MAP_160 CFG_UINT( \
  446. "he_rx_mcs_map_160", \
  447. 0, \
  448. 0xFFFF, \
  449. 0xFFF0, \
  450. CFG_VALUE_OR_DEFAULT, \
  451. "He Rx Mcs Map 160")
  452. #define CFG_HE_TX_MCS_MAP_160 CFG_UINT( \
  453. "he_tx_mcs_map_160", \
  454. 0, \
  455. 0xFFFF, \
  456. 0xFFF0, \
  457. CFG_VALUE_OR_DEFAULT, \
  458. "He Tx Mcs Map 160")
  459. #define CFG_HE_RX_MCS_MAP_80_80 CFG_UINT( \
  460. "he_rx_mcs_map_80_80", \
  461. 0, \
  462. 0xFFFF, \
  463. 0xFFF0, \
  464. CFG_VALUE_OR_DEFAULT, \
  465. "He Rx Mcs Map 80 80")
  466. #define CFG_HE_TX_MCS_MAP_80_80 CFG_UINT( \
  467. "he_tx_mcs_map_80_80", \
  468. 0, \
  469. 0xFFFF, \
  470. 0xFFF0, \
  471. CFG_VALUE_OR_DEFAULT, \
  472. "He tx Mcs Map 80 80")
  473. #define CFG_HE_OPS_BASIC_MCS_NSS CFG_UINT( \
  474. "cfg_he_ops_basic_mcs_nss", \
  475. 0x0000, \
  476. 0xFFFF, \
  477. 0xFFFC, \
  478. CFG_VALUE_OR_DEFAULT, \
  479. "He Ops Basic Mcs NSS")
  480. /* 11AX related INI configuration */
  481. /*
  482. * <ini>
  483. * he_dynamic_frag_support - configure dynamic fragmentation
  484. * @Min: 0
  485. * @Max: 3
  486. * @Default: 0
  487. *
  488. * This ini is used to configure dynamic fragmentation.
  489. *
  490. * Related: NA
  491. *
  492. * Supported Feature: 11AX
  493. *
  494. * Usage: Internal/External
  495. *
  496. * </ini>
  497. */
  498. #define CFG_HE_DYNAMIC_FRAGMENTATION CFG_INI_UINT( \
  499. "he_dynamic_frag_support", \
  500. 0, \
  501. 3, \
  502. 0, \
  503. CFG_VALUE_OR_DEFAULT, \
  504. "HE Dynamic Fragmentation")
  505. /*
  506. * <ini>
  507. * enable_ul_mimo- Enable UL MIMO.
  508. * @Min: 0
  509. * @Max: 1
  510. * @Default: 0
  511. *
  512. * This ini is used to enable or disable UL MIMO.
  513. *
  514. * Related: NA
  515. *
  516. * Supported Feature: 11AX
  517. *
  518. * Usage: External
  519. *
  520. * </ini>
  521. */
  522. #define CFG_ENABLE_UL_MIMO CFG_INI_BOOL( \
  523. "enable_ul_mimo", \
  524. 0, \
  525. "He Enble Ul Mimo Name")
  526. /*
  527. * <ini>
  528. * enable_ul_ofdma- Enable UL OFDMA.
  529. * @Min: 0
  530. * @Max: 1
  531. * @Default: 0
  532. *
  533. * This ini is used to enable or disable UL OFDMA.
  534. *
  535. * Related: NA
  536. *
  537. * Supported Feature: 11AX
  538. *
  539. * Usage: External
  540. *
  541. * </ini>
  542. */
  543. #define CFG_ENABLE_UL_OFDMA CFG_INI_BOOL( \
  544. "enable_ul_ofdma", \
  545. 0, \
  546. "He Enable Ul Ofdma Name")
  547. /*
  548. * <ini>
  549. * he_sta_obsspd- 11AX HE OBSS PD bit field
  550. * @Min: 0
  551. * @Max: uin32_t max
  552. * @Default: 0x15b8c2ae
  553. *
  554. * 4 Byte value with each byte representing a signed value for following params:
  555. * Param Bit position Default
  556. * OBSS_PD min (primary) 7:0 -82 (0xae)
  557. * OBSS_PD max (primary) 15:8 -62 (0xc2)
  558. * Secondary channel Ed 23:16 -72 (0xb8)
  559. * TX_PWR(ref) 31:24 21 (0x15)
  560. * This bit field value is directly applied to FW
  561. *
  562. * Related: NA
  563. *
  564. * Supported Feature: 11AX
  565. *
  566. * Usage: External
  567. *
  568. * </ini>
  569. */
  570. #define CFG_HE_STA_OBSSPD CFG_INI_UINT( \
  571. "he_sta_obsspd", \
  572. 0, \
  573. 0xFFFFFFFF, \
  574. 0x15b8c2ae, \
  575. CFG_VALUE_OR_DEFAULT, \
  576. "He Mu Bfee Sts Gt80")
  577. #define CFG_HE_CAPS_ALL \
  578. CFG(CFG_HE_CONTROL) \
  579. CFG(CFG_HE_TWT_REQUESTOR) \
  580. CFG(CFG_HE_TWT_RESPONDER) \
  581. CFG(CFG_HE_FRAGMENTATION) \
  582. CFG(CFG_HE_MAX_FRAG_MSDU) \
  583. CFG(CFG_HE_MIN_FRAG_SIZE) \
  584. CFG(CFG_HE_TRIG_PAD) \
  585. CFG(CFG_HE_MTID_AGGR_RX) \
  586. CFG(CFG_HE_LINK_ADAPTATION) \
  587. CFG(CFG_HE_ALL_ACK) \
  588. CFG(CFG_HE_TRIGD_RSP_SCHEDULING) \
  589. CFG(CFG_HE_BUFFER_STATUS_RPT) \
  590. CFG(CFG_HE_BCAST_TWT) \
  591. CFG(CFG_HE_BA_32BIT) \
  592. CFG(CFG_HE_MU_CASCADING) \
  593. CFG(CFG_HE_MULTI_TID) \
  594. CFG(CFG_HE_OMI) \
  595. CFG(CFG_HE_OFDMA_RA) \
  596. CFG(CFG_HE_MAX_AMPDU_LEN) \
  597. CFG(CFG_HE_AMSDU_FRAG) \
  598. CFG(CFG_HE_FLEX_TWT_SCHED) \
  599. CFG(CFG_HE_RX_CTRL) \
  600. CFG(CFG_HE_BSRP_AMPDU_AGGR) \
  601. CFG(CFG_HE_QTP) \
  602. CFG(CFG_HE_A_BQR) \
  603. CFG(CFG_HE_SR_RESPONDER) \
  604. CFG(CFG_HE_NDP_FEEDBACK_SUPP) \
  605. CFG(CFG_HE_OPS_SUPP) \
  606. CFG(CFG_HE_AMSDU_IN_AMPDU) \
  607. CFG(CFG_HE_CHAN_WIDTH) \
  608. CFG(CFG_HE_MTID_AGGR_TX) \
  609. CFG(CFG_HE_SUB_CH_SEL_TX) \
  610. CFG(CFG_HE_UL_2X996_RU) \
  611. CFG(CFG_HE_OM_CTRL_UL_MU_DIS_RX) \
  612. CFG(CFG_HE_RX_PREAM_PUNC) \
  613. CFG(CFG_HE_CLASS_OF_DEVICE) \
  614. CFG(CFG_HE_LDPC) \
  615. CFG(CFG_HE_LTF_PPDU) \
  616. CFG(CFG_HE_MIDAMBLE_RX_MAX_NSTS) \
  617. CFG(CFG_HE_LTF_NDP) \
  618. CFG(CFG_HE_TX_STBC_LT80) \
  619. CFG(CFG_HE_RX_STBC_LT80) \
  620. CFG(CFG_HE_DOPPLER) \
  621. CFG(CFG_HE_UL_MUMIMO) \
  622. CFG(CFG_HE_DCM_TX) \
  623. CFG(CFG_HE_DCM_RX) \
  624. CFG(CFG_HE_MU_PPDU) \
  625. CFG(CFG_HE_SU_BEAMFORMER) \
  626. CFG(CFG_HE_SU_BEAMFORMEE) \
  627. CFG(CFG_HE_MU_BEAMFORMER) \
  628. CFG(CFG_HE_BFEE_STS_LT80) \
  629. CFG(CFG_HE_BFEE_STS_GT80) \
  630. CFG(CFG_HE_NUM_SOUND_LT80) \
  631. CFG(CFG_HE_NUM_SOUND_GT80) \
  632. CFG(CFG_HE_SU_FEED_TONE16) \
  633. CFG(CFG_HE_MU_FEED_TONE16) \
  634. CFG(CFG_HE_CODEBOOK_SU) \
  635. CFG(CFG_HE_CODEBOOK_MU) \
  636. CFG(CFG_HE_BFRM_FEED) \
  637. CFG(CFG_HE_ER_SU_PPDU) \
  638. CFG(CFG_HE_DL_PART_BW) \
  639. CFG(CFG_HE_PPET_PRESENT) \
  640. CFG(CFG_HE_SRP) \
  641. CFG(CFG_HE_POWER_BOOST) \
  642. CFG(CFG_HE_4x_LTF_GI) \
  643. CFG(CFG_HE_MAX_NC) \
  644. CFG(CFG_HE_RX_STBC_GT80) \
  645. CFG(CFG_HE_TX_STBC_GT80) \
  646. CFG(CFG_HE_ER_4x_LTF_GI) \
  647. CFG(CFG_HE_PPDU_20_IN_40MHZ_2G) \
  648. CFG(CFG_HE_PPDU_20_IN_160_80P80MHZ) \
  649. CFG(CFG_HE_PPDU_80_IN_160_80P80MHZ) \
  650. CFG(CFG_HE_ER_1X_HE_LTF_GI) \
  651. CFG(CFG_HE_MIDAMBLE_TXRX_1X_HE_LTF) \
  652. CFG(CFG_HE_DCM_MAX_BW) \
  653. CFG(CFG_HE_LONGER_16_SIGB_OFDM_SYM) \
  654. CFG(CFG_HE_NON_TRIG_CQI_FEEDBACK) \
  655. CFG(CFG_HE_TX_1024_QAM_LT_242_RU) \
  656. CFG(CFG_HE_RX_1024_QAM_LT_242_RU) \
  657. CFG(CFG_HE_RX_FULL_BW_MU_CMPR_SIGB) \
  658. CFG(CFG_HE_RX_FULL_BW_MU_NON_CMPR_SIGB) \
  659. CFG(CFG_HE_RX_MCS_MAP_LT_80) \
  660. CFG(CFG_HE_TX_MCS_MAP_LT_80) \
  661. CFG(CFG_HE_RX_MCS_MAP_160) \
  662. CFG(CFG_HE_TX_MCS_MAP_160) \
  663. CFG(CFG_HE_RX_MCS_MAP_80_80) \
  664. CFG(CFG_HE_TX_MCS_MAP_80_80) \
  665. CFG(CFG_HE_OPS_BASIC_MCS_NSS) \
  666. CFG(CFG_HE_DYNAMIC_FRAGMENTATION) \
  667. CFG(CFG_ENABLE_UL_MIMO) \
  668. CFG(CFG_ENABLE_UL_OFDMA) \
  669. CFG(CFG_HE_STA_OBSSPD)
  670. #endif /* __CFG_MLME_HE_CAPS_H */