cfg_mlme_he_caps.h 16 KB

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