wmi-tlv.h 53 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632
  1. /*
  2. * Copyright (c) 2005-2011 Atheros Communications Inc.
  3. * Copyright (c) 2011-2014 Qualcomm Atheros, Inc.
  4. *
  5. * Permission to use, copy, modify, and/or distribute this software for any
  6. * purpose with or without fee is hereby granted, provided that the above
  7. * copyright notice and this permission notice appear in all copies.
  8. *
  9. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  10. * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
  11. * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
  12. * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  13. * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  14. * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  15. * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  16. */
  17. #ifndef _WMI_TLV_H
  18. #define _WMI_TLV_H
  19. #define WMI_TLV_CMD(grp_id) (((grp_id) << 12) | 0x1)
  20. #define WMI_TLV_EV(grp_id) (((grp_id) << 12) | 0x1)
  21. #define WMI_TLV_CMD_UNSUPPORTED 0
  22. #define WMI_TLV_PDEV_PARAM_UNSUPPORTED 0
  23. #define WMI_TLV_VDEV_PARAM_UNSUPPORTED 0
  24. enum wmi_tlv_grp_id {
  25. WMI_TLV_GRP_START = 0x3,
  26. WMI_TLV_GRP_SCAN = WMI_TLV_GRP_START,
  27. WMI_TLV_GRP_PDEV,
  28. WMI_TLV_GRP_VDEV,
  29. WMI_TLV_GRP_PEER,
  30. WMI_TLV_GRP_MGMT,
  31. WMI_TLV_GRP_BA_NEG,
  32. WMI_TLV_GRP_STA_PS,
  33. WMI_TLV_GRP_DFS,
  34. WMI_TLV_GRP_ROAM,
  35. WMI_TLV_GRP_OFL_SCAN,
  36. WMI_TLV_GRP_P2P,
  37. WMI_TLV_GRP_AP_PS,
  38. WMI_TLV_GRP_RATECTL,
  39. WMI_TLV_GRP_PROFILE,
  40. WMI_TLV_GRP_SUSPEND,
  41. WMI_TLV_GRP_BCN_FILTER,
  42. WMI_TLV_GRP_WOW,
  43. WMI_TLV_GRP_RTT,
  44. WMI_TLV_GRP_SPECTRAL,
  45. WMI_TLV_GRP_STATS,
  46. WMI_TLV_GRP_ARP_NS_OFL,
  47. WMI_TLV_GRP_NLO_OFL,
  48. WMI_TLV_GRP_GTK_OFL,
  49. WMI_TLV_GRP_CSA_OFL,
  50. WMI_TLV_GRP_CHATTER,
  51. WMI_TLV_GRP_TID_ADDBA,
  52. WMI_TLV_GRP_MISC,
  53. WMI_TLV_GRP_GPIO,
  54. WMI_TLV_GRP_FWTEST,
  55. WMI_TLV_GRP_TDLS,
  56. WMI_TLV_GRP_RESMGR,
  57. WMI_TLV_GRP_STA_SMPS,
  58. WMI_TLV_GRP_WLAN_HB,
  59. WMI_TLV_GRP_RMC,
  60. WMI_TLV_GRP_MHF_OFL,
  61. WMI_TLV_GRP_LOCATION_SCAN,
  62. WMI_TLV_GRP_OEM,
  63. WMI_TLV_GRP_NAN,
  64. WMI_TLV_GRP_COEX,
  65. WMI_TLV_GRP_OBSS_OFL,
  66. WMI_TLV_GRP_LPI,
  67. WMI_TLV_GRP_EXTSCAN,
  68. WMI_TLV_GRP_DHCP_OFL,
  69. WMI_TLV_GRP_IPA,
  70. WMI_TLV_GRP_MDNS_OFL,
  71. WMI_TLV_GRP_SAP_OFL,
  72. };
  73. enum wmi_tlv_cmd_id {
  74. WMI_TLV_INIT_CMDID = 0x1,
  75. WMI_TLV_START_SCAN_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_SCAN),
  76. WMI_TLV_STOP_SCAN_CMDID,
  77. WMI_TLV_SCAN_CHAN_LIST_CMDID,
  78. WMI_TLV_SCAN_SCH_PRIO_TBL_CMDID,
  79. WMI_TLV_SCAN_UPDATE_REQUEST_CMDID,
  80. WMI_TLV_SCAN_PROB_REQ_OUI_CMDID,
  81. WMI_TLV_PDEV_SET_REGDOMAIN_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_PDEV),
  82. WMI_TLV_PDEV_SET_CHANNEL_CMDID,
  83. WMI_TLV_PDEV_SET_PARAM_CMDID,
  84. WMI_TLV_PDEV_PKTLOG_ENABLE_CMDID,
  85. WMI_TLV_PDEV_PKTLOG_DISABLE_CMDID,
  86. WMI_TLV_PDEV_SET_WMM_PARAMS_CMDID,
  87. WMI_TLV_PDEV_SET_HT_CAP_IE_CMDID,
  88. WMI_TLV_PDEV_SET_VHT_CAP_IE_CMDID,
  89. WMI_TLV_PDEV_SET_DSCP_TID_MAP_CMDID,
  90. WMI_TLV_PDEV_SET_QUIET_MODE_CMDID,
  91. WMI_TLV_PDEV_GREEN_AP_PS_ENABLE_CMDID,
  92. WMI_TLV_PDEV_GET_TPC_CONFIG_CMDID,
  93. WMI_TLV_PDEV_SET_BASE_MACADDR_CMDID,
  94. WMI_TLV_PDEV_DUMP_CMDID,
  95. WMI_TLV_PDEV_SET_LED_CONFIG_CMDID,
  96. WMI_TLV_PDEV_GET_TEMPERATURE_CMDID,
  97. WMI_TLV_PDEV_SET_LED_FLASHING_CMDID,
  98. WMI_TLV_VDEV_CREATE_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_VDEV),
  99. WMI_TLV_VDEV_DELETE_CMDID,
  100. WMI_TLV_VDEV_START_REQUEST_CMDID,
  101. WMI_TLV_VDEV_RESTART_REQUEST_CMDID,
  102. WMI_TLV_VDEV_UP_CMDID,
  103. WMI_TLV_VDEV_STOP_CMDID,
  104. WMI_TLV_VDEV_DOWN_CMDID,
  105. WMI_TLV_VDEV_SET_PARAM_CMDID,
  106. WMI_TLV_VDEV_INSTALL_KEY_CMDID,
  107. WMI_TLV_VDEV_WNM_SLEEPMODE_CMDID,
  108. WMI_TLV_VDEV_WMM_ADDTS_CMDID,
  109. WMI_TLV_VDEV_WMM_DELTS_CMDID,
  110. WMI_TLV_VDEV_SET_WMM_PARAMS_CMDID,
  111. WMI_TLV_VDEV_SET_GTX_PARAMS_CMDID,
  112. WMI_TLV_VDEV_IPSEC_NATKEEPALIVE_FILTER_CMDID,
  113. WMI_TLV_VDEV_PLMREQ_START_CMDID,
  114. WMI_TLV_VDEV_PLMREQ_STOP_CMDID,
  115. WMI_TLV_PEER_CREATE_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_PEER),
  116. WMI_TLV_PEER_DELETE_CMDID,
  117. WMI_TLV_PEER_FLUSH_TIDS_CMDID,
  118. WMI_TLV_PEER_SET_PARAM_CMDID,
  119. WMI_TLV_PEER_ASSOC_CMDID,
  120. WMI_TLV_PEER_ADD_WDS_ENTRY_CMDID,
  121. WMI_TLV_PEER_REMOVE_WDS_ENTRY_CMDID,
  122. WMI_TLV_PEER_MCAST_GROUP_CMDID,
  123. WMI_TLV_PEER_INFO_REQ_CMDID,
  124. WMI_TLV_PEER_GET_ESTIMATED_LINKSPEED_CMDID,
  125. WMI_TLV_BCN_TX_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_MGMT),
  126. WMI_TLV_PDEV_SEND_BCN_CMDID,
  127. WMI_TLV_BCN_TMPL_CMDID,
  128. WMI_TLV_BCN_FILTER_RX_CMDID,
  129. WMI_TLV_PRB_REQ_FILTER_RX_CMDID,
  130. WMI_TLV_MGMT_TX_CMDID,
  131. WMI_TLV_PRB_TMPL_CMDID,
  132. WMI_TLV_ADDBA_CLEAR_RESP_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_BA_NEG),
  133. WMI_TLV_ADDBA_SEND_CMDID,
  134. WMI_TLV_ADDBA_STATUS_CMDID,
  135. WMI_TLV_DELBA_SEND_CMDID,
  136. WMI_TLV_ADDBA_SET_RESP_CMDID,
  137. WMI_TLV_SEND_SINGLEAMSDU_CMDID,
  138. WMI_TLV_STA_POWERSAVE_MODE_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_STA_PS),
  139. WMI_TLV_STA_POWERSAVE_PARAM_CMDID,
  140. WMI_TLV_STA_MIMO_PS_MODE_CMDID,
  141. WMI_TLV_PDEV_DFS_ENABLE_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_DFS),
  142. WMI_TLV_PDEV_DFS_DISABLE_CMDID,
  143. WMI_TLV_DFS_PHYERR_FILTER_ENA_CMDID,
  144. WMI_TLV_DFS_PHYERR_FILTER_DIS_CMDID,
  145. WMI_TLV_ROAM_SCAN_MODE = WMI_TLV_CMD(WMI_TLV_GRP_ROAM),
  146. WMI_TLV_ROAM_SCAN_RSSI_THRESHOLD,
  147. WMI_TLV_ROAM_SCAN_PERIOD,
  148. WMI_TLV_ROAM_SCAN_RSSI_CHANGE_THRESHOLD,
  149. WMI_TLV_ROAM_AP_PROFILE,
  150. WMI_TLV_ROAM_CHAN_LIST,
  151. WMI_TLV_ROAM_SCAN_CMD,
  152. WMI_TLV_ROAM_SYNCH_COMPLETE,
  153. WMI_TLV_ROAM_SET_RIC_REQUEST_CMDID,
  154. WMI_TLV_ROAM_INVOKE_CMDID,
  155. WMI_TLV_OFL_SCAN_ADD_AP_PROFILE = WMI_TLV_CMD(WMI_TLV_GRP_OFL_SCAN),
  156. WMI_TLV_OFL_SCAN_REMOVE_AP_PROFILE,
  157. WMI_TLV_OFL_SCAN_PERIOD,
  158. WMI_TLV_P2P_DEV_SET_DEVICE_INFO = WMI_TLV_CMD(WMI_TLV_GRP_P2P),
  159. WMI_TLV_P2P_DEV_SET_DISCOVERABILITY,
  160. WMI_TLV_P2P_GO_SET_BEACON_IE,
  161. WMI_TLV_P2P_GO_SET_PROBE_RESP_IE,
  162. WMI_TLV_P2P_SET_VENDOR_IE_DATA_CMDID,
  163. WMI_TLV_P2P_DISC_OFFLOAD_CONFIG_CMDID,
  164. WMI_TLV_P2P_DISC_OFFLOAD_APPIE_CMDID,
  165. WMI_TLV_P2P_DISC_OFFLOAD_PATTERN_CMDID,
  166. WMI_TLV_P2P_SET_OPPPS_PARAM_CMDID,
  167. WMI_TLV_AP_PS_PEER_PARAM_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_AP_PS),
  168. WMI_TLV_AP_PS_PEER_UAPSD_COEX_CMDID,
  169. WMI_TLV_PEER_RATE_RETRY_SCHED_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_RATECTL),
  170. WMI_TLV_WLAN_PROFILE_TRIGGER_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_PROFILE),
  171. WMI_TLV_WLAN_PROFILE_SET_HIST_INTVL_CMDID,
  172. WMI_TLV_WLAN_PROFILE_GET_PROFILE_DATA_CMDID,
  173. WMI_TLV_WLAN_PROFILE_ENABLE_PROFILE_ID_CMDID,
  174. WMI_TLV_WLAN_PROFILE_LIST_PROFILE_ID_CMDID,
  175. WMI_TLV_PDEV_SUSPEND_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_SUSPEND),
  176. WMI_TLV_PDEV_RESUME_CMDID,
  177. WMI_TLV_ADD_BCN_FILTER_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_BCN_FILTER),
  178. WMI_TLV_RMV_BCN_FILTER_CMDID,
  179. WMI_TLV_WOW_ADD_WAKE_PATTERN_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_WOW),
  180. WMI_TLV_WOW_DEL_WAKE_PATTERN_CMDID,
  181. WMI_TLV_WOW_ENABLE_DISABLE_WAKE_EVENT_CMDID,
  182. WMI_TLV_WOW_ENABLE_CMDID,
  183. WMI_TLV_WOW_HOSTWAKEUP_FROM_SLEEP_CMDID,
  184. WMI_TLV_WOW_ACER_IOAC_ADD_KEEPALIVE_CMDID,
  185. WMI_TLV_WOW_ACER_IOAC_DEL_KEEPALIVE_CMDID,
  186. WMI_TLV_WOW_ACER_IOAC_ADD_WAKE_PATTERN_CMDID,
  187. WMI_TLV_WOW_ACER_IOAC_DEL_WAKE_PATTERN_CMDID,
  188. WMI_TLV_D0_WOW_ENABLE_DISABLE_CMDID,
  189. WMI_TLV_EXTWOW_ENABLE_CMDID,
  190. WMI_TLV_EXTWOW_SET_APP_TYPE1_PARAMS_CMDID,
  191. WMI_TLV_EXTWOW_SET_APP_TYPE2_PARAMS_CMDID,
  192. WMI_TLV_RTT_MEASREQ_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_RTT),
  193. WMI_TLV_RTT_TSF_CMDID,
  194. WMI_TLV_SPECTRAL_SCAN_CONF_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_SPECTRAL),
  195. WMI_TLV_SPECTRAL_SCAN_ENABLE_CMDID,
  196. WMI_TLV_REQUEST_STATS_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_STATS),
  197. WMI_TLV_MCC_SCHED_TRAFFIC_STATS_CMDID,
  198. WMI_TLV_REQUEST_STATS_EXT_CMDID,
  199. WMI_TLV_REQUEST_LINK_STATS_CMDID,
  200. WMI_TLV_START_LINK_STATS_CMDID,
  201. WMI_TLV_CLEAR_LINK_STATS_CMDID,
  202. WMI_TLV_SET_ARP_NS_OFFLOAD_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_ARP_NS_OFL),
  203. WMI_TLV_ADD_PROACTIVE_ARP_RSP_PATTERN_CMDID,
  204. WMI_TLV_DEL_PROACTIVE_ARP_RSP_PATTERN_CMDID,
  205. WMI_TLV_NETWORK_LIST_OFFLOAD_CONFIG_CMDID =
  206. WMI_TLV_CMD(WMI_TLV_GRP_NLO_OFL),
  207. WMI_TLV_APFIND_CMDID,
  208. WMI_TLV_GTK_OFFLOAD_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_GTK_OFL),
  209. WMI_TLV_CSA_OFFLOAD_ENABLE_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_CSA_OFL),
  210. WMI_TLV_CSA_OFFLOAD_CHANSWITCH_CMDID,
  211. WMI_TLV_CHATTER_SET_MODE_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_CHATTER),
  212. WMI_TLV_CHATTER_ADD_COALESCING_FILTER_CMDID,
  213. WMI_TLV_CHATTER_DELETE_COALESCING_FILTER_CMDID,
  214. WMI_TLV_CHATTER_COALESCING_QUERY_CMDID,
  215. WMI_TLV_PEER_TID_ADDBA_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_TID_ADDBA),
  216. WMI_TLV_PEER_TID_DELBA_CMDID,
  217. WMI_TLV_STA_DTIM_PS_METHOD_CMDID,
  218. WMI_TLV_STA_UAPSD_AUTO_TRIG_CMDID,
  219. WMI_TLV_STA_KEEPALIVE_CMDID,
  220. WMI_TLV_BA_REQ_SSN_CMDID,
  221. WMI_TLV_ECHO_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_MISC),
  222. WMI_TLV_PDEV_UTF_CMDID,
  223. WMI_TLV_DBGLOG_CFG_CMDID,
  224. WMI_TLV_PDEV_QVIT_CMDID,
  225. WMI_TLV_PDEV_FTM_INTG_CMDID,
  226. WMI_TLV_VDEV_SET_KEEPALIVE_CMDID,
  227. WMI_TLV_VDEV_GET_KEEPALIVE_CMDID,
  228. WMI_TLV_FORCE_FW_HANG_CMDID,
  229. WMI_TLV_SET_MCASTBCAST_FILTER_CMDID,
  230. WMI_TLV_THERMAL_MGMT_CMDID,
  231. WMI_TLV_HOST_AUTO_SHUTDOWN_CFG_CMDID,
  232. WMI_TLV_TPC_CHAINMASK_CONFIG_CMDID,
  233. WMI_TLV_SET_ANTENNA_DIVERSITY_CMDID,
  234. WMI_TLV_GPIO_CONFIG_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_GPIO),
  235. WMI_TLV_GPIO_OUTPUT_CMDID,
  236. WMI_TLV_TXBF_CMDID,
  237. WMI_TLV_FWTEST_VDEV_MCC_SET_TBTT_MODE_CMDID =
  238. WMI_TLV_CMD(WMI_TLV_GRP_FWTEST),
  239. WMI_TLV_FWTEST_P2P_SET_NOA_PARAM_CMDID,
  240. WMI_TLV_UNIT_TEST_CMDID,
  241. WMI_TLV_TDLS_SET_STATE_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_TDLS),
  242. WMI_TLV_TDLS_PEER_UPDATE_CMDID,
  243. WMI_TLV_TDLS_SET_OFFCHAN_MODE_CMDID,
  244. WMI_TLV_RESMGR_ADAPTIVE_OCS_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_RESMGR),
  245. WMI_TLV_RESMGR_SET_CHAN_TIME_QUOTA_CMDID,
  246. WMI_TLV_RESMGR_SET_CHAN_LATENCY_CMDID,
  247. WMI_TLV_STA_SMPS_FORCE_MODE_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_STA_SMPS),
  248. WMI_TLV_STA_SMPS_PARAM_CMDID,
  249. WMI_TLV_HB_SET_ENABLE_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_WLAN_HB),
  250. WMI_TLV_HB_SET_TCP_PARAMS_CMDID,
  251. WMI_TLV_HB_SET_TCP_PKT_FILTER_CMDID,
  252. WMI_TLV_HB_SET_UDP_PARAMS_CMDID,
  253. WMI_TLV_HB_SET_UDP_PKT_FILTER_CMDID,
  254. WMI_TLV_RMC_SET_MODE_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_RMC),
  255. WMI_TLV_RMC_SET_ACTION_PERIOD_CMDID,
  256. WMI_TLV_RMC_CONFIG_CMDID,
  257. WMI_TLV_MHF_OFFLOAD_SET_MODE_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_MHF_OFL),
  258. WMI_TLV_MHF_OFFLOAD_PLUMB_ROUTING_TBL_CMDID,
  259. WMI_TLV_BATCH_SCAN_ENABLE_CMDID =
  260. WMI_TLV_CMD(WMI_TLV_GRP_LOCATION_SCAN),
  261. WMI_TLV_BATCH_SCAN_DISABLE_CMDID,
  262. WMI_TLV_BATCH_SCAN_TRIGGER_RESULT_CMDID,
  263. WMI_TLV_OEM_REQ_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_OEM),
  264. WMI_TLV_NAN_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_NAN),
  265. WMI_TLV_MODEM_POWER_STATE_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_COEX),
  266. WMI_TLV_CHAN_AVOID_UPDATE_CMDID,
  267. WMI_TLV_OBSS_SCAN_ENABLE_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_OBSS_OFL),
  268. WMI_TLV_OBSS_SCAN_DISABLE_CMDID,
  269. WMI_TLV_LPI_MGMT_SNOOPING_CONFIG_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_LPI),
  270. WMI_TLV_LPI_START_SCAN_CMDID,
  271. WMI_TLV_LPI_STOP_SCAN_CMDID,
  272. WMI_TLV_EXTSCAN_START_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_EXTSCAN),
  273. WMI_TLV_EXTSCAN_STOP_CMDID,
  274. WMI_TLV_EXTSCAN_CONFIGURE_WLAN_CHANGE_MONITOR_CMDID,
  275. WMI_TLV_EXTSCAN_CONFIGURE_HOTLIST_MONITOR_CMDID,
  276. WMI_TLV_EXTSCAN_GET_CACHED_RESULTS_CMDID,
  277. WMI_TLV_EXTSCAN_GET_WLAN_CHANGE_RESULTS_CMDID,
  278. WMI_TLV_EXTSCAN_SET_CAPABILITIES_CMDID,
  279. WMI_TLV_EXTSCAN_GET_CAPABILITIES_CMDID,
  280. WMI_TLV_SET_DHCP_SERVER_OFFLOAD_CMDID =
  281. WMI_TLV_CMD(WMI_TLV_GRP_DHCP_OFL),
  282. WMI_TLV_IPA_OFFLOAD_ENABLE_DISABLE_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_IPA),
  283. WMI_TLV_MDNS_OFFLOAD_ENABLE_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_MDNS_OFL),
  284. WMI_TLV_MDNS_SET_FQDN_CMDID,
  285. WMI_TLV_MDNS_SET_RESPONSE_CMDID,
  286. WMI_TLV_MDNS_GET_STATS_CMDID,
  287. WMI_TLV_SAP_OFL_ENABLE_CMDID = WMI_TLV_CMD(WMI_TLV_GRP_SAP_OFL),
  288. };
  289. enum wmi_tlv_event_id {
  290. WMI_TLV_SERVICE_READY_EVENTID = 0x1,
  291. WMI_TLV_READY_EVENTID,
  292. WMI_TLV_SCAN_EVENTID = WMI_TLV_EV(WMI_TLV_GRP_SCAN),
  293. WMI_TLV_PDEV_TPC_CONFIG_EVENTID = WMI_TLV_EV(WMI_TLV_GRP_PDEV),
  294. WMI_TLV_CHAN_INFO_EVENTID,
  295. WMI_TLV_PHYERR_EVENTID,
  296. WMI_TLV_PDEV_DUMP_EVENTID,
  297. WMI_TLV_TX_PAUSE_EVENTID,
  298. WMI_TLV_DFS_RADAR_EVENTID,
  299. WMI_TLV_PDEV_L1SS_TRACK_EVENTID,
  300. WMI_TLV_PDEV_TEMPERATURE_EVENTID,
  301. WMI_TLV_VDEV_START_RESP_EVENTID = WMI_TLV_EV(WMI_TLV_GRP_VDEV),
  302. WMI_TLV_VDEV_STOPPED_EVENTID,
  303. WMI_TLV_VDEV_INSTALL_KEY_COMPLETE_EVENTID,
  304. WMI_TLV_VDEV_MCC_BCN_INTERVAL_CHANGE_REQ_EVENTID,
  305. WMI_TLV_PEER_STA_KICKOUT_EVENTID = WMI_TLV_EV(WMI_TLV_GRP_PEER),
  306. WMI_TLV_PEER_INFO_EVENTID,
  307. WMI_TLV_PEER_TX_FAIL_CNT_THR_EVENTID,
  308. WMI_TLV_PEER_ESTIMATED_LINKSPEED_EVENTID,
  309. WMI_TLV_PEER_STATE_EVENTID,
  310. WMI_TLV_MGMT_RX_EVENTID = WMI_TLV_EV(WMI_TLV_GRP_MGMT),
  311. WMI_TLV_HOST_SWBA_EVENTID,
  312. WMI_TLV_TBTTOFFSET_UPDATE_EVENTID,
  313. WMI_TLV_OFFLOAD_BCN_TX_STATUS_EVENTID,
  314. WMI_TLV_OFFLOAD_PROB_RESP_TX_STATUS_EVENTID,
  315. WMI_TLV_TX_DELBA_COMPLETE_EVENTID = WMI_TLV_EV(WMI_TLV_GRP_BA_NEG),
  316. WMI_TLV_TX_ADDBA_COMPLETE_EVENTID,
  317. WMI_TLV_BA_RSP_SSN_EVENTID,
  318. WMI_TLV_AGGR_STATE_TRIG_EVENTID,
  319. WMI_TLV_ROAM_EVENTID = WMI_TLV_EV(WMI_TLV_GRP_ROAM),
  320. WMI_TLV_PROFILE_MATCH,
  321. WMI_TLV_ROAM_SYNCH_EVENTID,
  322. WMI_TLV_P2P_DISC_EVENTID = WMI_TLV_EV(WMI_TLV_GRP_P2P),
  323. WMI_TLV_P2P_NOA_EVENTID,
  324. WMI_TLV_PDEV_RESUME_EVENTID = WMI_TLV_EV(WMI_TLV_GRP_SUSPEND),
  325. WMI_TLV_WOW_WAKEUP_HOST_EVENTID = WMI_TLV_EV(WMI_TLV_GRP_WOW),
  326. WMI_TLV_D0_WOW_DISABLE_ACK_EVENTID,
  327. WMI_TLV_RTT_MEASUREMENT_REPORT_EVENTID = WMI_TLV_EV(WMI_TLV_GRP_RTT),
  328. WMI_TLV_TSF_MEASUREMENT_REPORT_EVENTID,
  329. WMI_TLV_RTT_ERROR_REPORT_EVENTID,
  330. WMI_TLV_STATS_EXT_EVENTID = WMI_TLV_EV(WMI_TLV_GRP_STATS),
  331. WMI_TLV_IFACE_LINK_STATS_EVENTID,
  332. WMI_TLV_PEER_LINK_STATS_EVENTID,
  333. WMI_TLV_RADIO_LINK_STATS_EVENTID,
  334. WMI_TLV_NLO_MATCH_EVENTID = WMI_TLV_EV(WMI_TLV_GRP_NLO_OFL),
  335. WMI_TLV_NLO_SCAN_COMPLETE_EVENTID,
  336. WMI_TLV_APFIND_EVENTID,
  337. WMI_TLV_GTK_OFFLOAD_STATUS_EVENTID = WMI_TLV_EV(WMI_TLV_GRP_GTK_OFL),
  338. WMI_TLV_GTK_REKEY_FAIL_EVENTID,
  339. WMI_TLV_CSA_HANDLING_EVENTID = WMI_TLV_EV(WMI_TLV_GRP_CSA_OFL),
  340. WMI_TLV_CHATTER_PC_QUERY_EVENTID = WMI_TLV_EV(WMI_TLV_GRP_CHATTER),
  341. WMI_TLV_ECHO_EVENTID = WMI_TLV_EV(WMI_TLV_GRP_MISC),
  342. WMI_TLV_PDEV_UTF_EVENTID,
  343. WMI_TLV_DEBUG_MESG_EVENTID,
  344. WMI_TLV_UPDATE_STATS_EVENTID,
  345. WMI_TLV_DEBUG_PRINT_EVENTID,
  346. WMI_TLV_DCS_INTERFERENCE_EVENTID,
  347. WMI_TLV_PDEV_QVIT_EVENTID,
  348. WMI_TLV_WLAN_PROFILE_DATA_EVENTID,
  349. WMI_TLV_PDEV_FTM_INTG_EVENTID,
  350. WMI_TLV_WLAN_FREQ_AVOID_EVENTID,
  351. WMI_TLV_VDEV_GET_KEEPALIVE_EVENTID,
  352. WMI_TLV_THERMAL_MGMT_EVENTID,
  353. WMI_TLV_DIAG_DATA_CONTAINER_EVENTID,
  354. WMI_TLV_HOST_AUTO_SHUTDOWN_EVENTID,
  355. WMI_TLV_UPDATE_WHAL_MIB_STATS_EVENTID,
  356. WMI_TLV_UPDATE_VDEV_RATE_STATS_EVENTID,
  357. WMI_TLV_DIAG_EVENTID,
  358. WMI_TLV_GPIO_INPUT_EVENTID = WMI_TLV_EV(WMI_TLV_GRP_GPIO),
  359. WMI_TLV_UPLOADH_EVENTID,
  360. WMI_TLV_CAPTUREH_EVENTID,
  361. WMI_TLV_RFKILL_STATE_CHANGE_EVENTID,
  362. WMI_TLV_TDLS_PEER_EVENTID = WMI_TLV_EV(WMI_TLV_GRP_TDLS),
  363. WMI_TLV_BATCH_SCAN_ENABLED_EVENTID =
  364. WMI_TLV_EV(WMI_TLV_GRP_LOCATION_SCAN),
  365. WMI_TLV_BATCH_SCAN_RESULT_EVENTID,
  366. WMI_TLV_OEM_CAPABILITY_EVENTID = WMI_TLV_EV(WMI_TLV_GRP_OEM),
  367. WMI_TLV_OEM_MEASUREMENT_REPORT_EVENTID,
  368. WMI_TLV_OEM_ERROR_REPORT_EVENTID,
  369. WMI_TLV_NAN_EVENTID = WMI_TLV_EV(WMI_TLV_GRP_NAN),
  370. WMI_TLV_LPI_RESULT_EVENTID = WMI_TLV_EV(WMI_TLV_GRP_LPI),
  371. WMI_TLV_LPI_STATUS_EVENTID,
  372. WMI_TLV_LPI_HANDOFF_EVENTID,
  373. WMI_TLV_EXTSCAN_START_STOP_EVENTID = WMI_TLV_EV(WMI_TLV_GRP_EXTSCAN),
  374. WMI_TLV_EXTSCAN_OPERATION_EVENTID,
  375. WMI_TLV_EXTSCAN_TABLE_USAGE_EVENTID,
  376. WMI_TLV_EXTSCAN_CACHED_RESULTS_EVENTID,
  377. WMI_TLV_EXTSCAN_WLAN_CHANGE_RESULTS_EVENTID,
  378. WMI_TLV_EXTSCAN_HOTLIST_MATCH_EVENTID,
  379. WMI_TLV_EXTSCAN_CAPABILITIES_EVENTID,
  380. WMI_TLV_MDNS_STATS_EVENTID = WMI_TLV_EV(WMI_TLV_GRP_MDNS_OFL),
  381. WMI_TLV_SAP_OFL_ADD_STA_EVENTID = WMI_TLV_EV(WMI_TLV_GRP_SAP_OFL),
  382. WMI_TLV_SAP_OFL_DEL_STA_EVENTID,
  383. };
  384. enum wmi_tlv_pdev_param {
  385. WMI_TLV_PDEV_PARAM_TX_CHAIN_MASK = 0x1,
  386. WMI_TLV_PDEV_PARAM_RX_CHAIN_MASK,
  387. WMI_TLV_PDEV_PARAM_TXPOWER_LIMIT2G,
  388. WMI_TLV_PDEV_PARAM_TXPOWER_LIMIT5G,
  389. WMI_TLV_PDEV_PARAM_TXPOWER_SCALE,
  390. WMI_TLV_PDEV_PARAM_BEACON_GEN_MODE,
  391. WMI_TLV_PDEV_PARAM_BEACON_TX_MODE,
  392. WMI_TLV_PDEV_PARAM_RESMGR_OFFCHAN_MODE,
  393. WMI_TLV_PDEV_PARAM_PROTECTION_MODE,
  394. WMI_TLV_PDEV_PARAM_DYNAMIC_BW,
  395. WMI_TLV_PDEV_PARAM_NON_AGG_SW_RETRY_TH,
  396. WMI_TLV_PDEV_PARAM_AGG_SW_RETRY_TH,
  397. WMI_TLV_PDEV_PARAM_STA_KICKOUT_TH,
  398. WMI_TLV_PDEV_PARAM_AC_AGGRSIZE_SCALING,
  399. WMI_TLV_PDEV_PARAM_LTR_ENABLE,
  400. WMI_TLV_PDEV_PARAM_LTR_AC_LATENCY_BE,
  401. WMI_TLV_PDEV_PARAM_LTR_AC_LATENCY_BK,
  402. WMI_TLV_PDEV_PARAM_LTR_AC_LATENCY_VI,
  403. WMI_TLV_PDEV_PARAM_LTR_AC_LATENCY_VO,
  404. WMI_TLV_PDEV_PARAM_LTR_AC_LATENCY_TIMEOUT,
  405. WMI_TLV_PDEV_PARAM_LTR_SLEEP_OVERRIDE,
  406. WMI_TLV_PDEV_PARAM_LTR_RX_OVERRIDE,
  407. WMI_TLV_PDEV_PARAM_LTR_TX_ACTIVITY_TIMEOUT,
  408. WMI_TLV_PDEV_PARAM_L1SS_ENABLE,
  409. WMI_TLV_PDEV_PARAM_DSLEEP_ENABLE,
  410. WMI_TLV_PDEV_PARAM_PCIELP_TXBUF_FLUSH,
  411. WMI_TLV_PDEV_PARAM_PCIELP_TXBUF_WATERMARK,
  412. WMI_TLV_PDEV_PARAM_PCIELP_TXBUF_TMO_EN,
  413. WMI_TLV_PDEV_PARAM_PCIELP_TXBUF_TMO_VALUE,
  414. WMI_TLV_PDEV_PARAM_PDEV_STATS_UPDATE_PERIOD,
  415. WMI_TLV_PDEV_PARAM_VDEV_STATS_UPDATE_PERIOD,
  416. WMI_TLV_PDEV_PARAM_PEER_STATS_UPDATE_PERIOD,
  417. WMI_TLV_PDEV_PARAM_BCNFLT_STATS_UPDATE_PERIOD,
  418. WMI_TLV_PDEV_PARAM_PMF_QOS,
  419. WMI_TLV_PDEV_PARAM_ARP_AC_OVERRIDE,
  420. WMI_TLV_PDEV_PARAM_DCS,
  421. WMI_TLV_PDEV_PARAM_ANI_ENABLE,
  422. WMI_TLV_PDEV_PARAM_ANI_POLL_PERIOD,
  423. WMI_TLV_PDEV_PARAM_ANI_LISTEN_PERIOD,
  424. WMI_TLV_PDEV_PARAM_ANI_OFDM_LEVEL,
  425. WMI_TLV_PDEV_PARAM_ANI_CCK_LEVEL,
  426. WMI_TLV_PDEV_PARAM_DYNTXCHAIN,
  427. WMI_TLV_PDEV_PARAM_PROXY_STA,
  428. WMI_TLV_PDEV_PARAM_IDLE_PS_CONFIG,
  429. WMI_TLV_PDEV_PARAM_POWER_GATING_SLEEP,
  430. WMI_TLV_PDEV_PARAM_RFKILL_ENABLE,
  431. WMI_TLV_PDEV_PARAM_BURST_DUR,
  432. WMI_TLV_PDEV_PARAM_BURST_ENABLE,
  433. WMI_TLV_PDEV_PARAM_HW_RFKILL_CONFIG,
  434. WMI_TLV_PDEV_PARAM_LOW_POWER_RF_ENABLE,
  435. WMI_TLV_PDEV_PARAM_L1SS_TRACK,
  436. WMI_TLV_PDEV_PARAM_HYST_EN,
  437. WMI_TLV_PDEV_PARAM_POWER_COLLAPSE_ENABLE,
  438. WMI_TLV_PDEV_PARAM_LED_SYS_STATE,
  439. WMI_TLV_PDEV_PARAM_LED_ENABLE,
  440. WMI_TLV_PDEV_PARAM_AUDIO_OVER_WLAN_LATENCY,
  441. WMI_TLV_PDEV_PARAM_AUDIO_OVER_WLAN_ENABLE,
  442. WMI_TLV_PDEV_PARAM_WHAL_MIB_STATS_UPDATE_ENABLE,
  443. WMI_TLV_PDEV_PARAM_VDEV_RATE_STATS_UPDATE_PERIOD,
  444. WMI_TLV_PDEV_PARAM_TXPOWER_REASON_NONE,
  445. WMI_TLV_PDEV_PARAM_TXPOWER_REASON_SAR,
  446. WMI_TLV_PDEV_PARAM_TXPOWER_REASON_MAX,
  447. };
  448. enum wmi_tlv_vdev_param {
  449. WMI_TLV_VDEV_PARAM_RTS_THRESHOLD = 0x1,
  450. WMI_TLV_VDEV_PARAM_FRAGMENTATION_THRESHOLD,
  451. WMI_TLV_VDEV_PARAM_BEACON_INTERVAL,
  452. WMI_TLV_VDEV_PARAM_LISTEN_INTERVAL,
  453. WMI_TLV_VDEV_PARAM_MULTICAST_RATE,
  454. WMI_TLV_VDEV_PARAM_MGMT_TX_RATE,
  455. WMI_TLV_VDEV_PARAM_SLOT_TIME,
  456. WMI_TLV_VDEV_PARAM_PREAMBLE,
  457. WMI_TLV_VDEV_PARAM_SWBA_TIME,
  458. WMI_TLV_VDEV_STATS_UPDATE_PERIOD,
  459. WMI_TLV_VDEV_PWRSAVE_AGEOUT_TIME,
  460. WMI_TLV_VDEV_HOST_SWBA_INTERVAL,
  461. WMI_TLV_VDEV_PARAM_DTIM_PERIOD,
  462. WMI_TLV_VDEV_OC_SCHEDULER_AIR_TIME_LIMIT,
  463. WMI_TLV_VDEV_PARAM_WDS,
  464. WMI_TLV_VDEV_PARAM_ATIM_WINDOW,
  465. WMI_TLV_VDEV_PARAM_BMISS_COUNT_MAX,
  466. WMI_TLV_VDEV_PARAM_BMISS_FIRST_BCNT,
  467. WMI_TLV_VDEV_PARAM_BMISS_FINAL_BCNT,
  468. WMI_TLV_VDEV_PARAM_FEATURE_WMM,
  469. WMI_TLV_VDEV_PARAM_CHWIDTH,
  470. WMI_TLV_VDEV_PARAM_CHEXTOFFSET,
  471. WMI_TLV_VDEV_PARAM_DISABLE_HTPROTECTION,
  472. WMI_TLV_VDEV_PARAM_STA_QUICKKICKOUT,
  473. WMI_TLV_VDEV_PARAM_MGMT_RATE,
  474. WMI_TLV_VDEV_PARAM_PROTECTION_MODE,
  475. WMI_TLV_VDEV_PARAM_FIXED_RATE,
  476. WMI_TLV_VDEV_PARAM_SGI,
  477. WMI_TLV_VDEV_PARAM_LDPC,
  478. WMI_TLV_VDEV_PARAM_TX_STBC,
  479. WMI_TLV_VDEV_PARAM_RX_STBC,
  480. WMI_TLV_VDEV_PARAM_INTRA_BSS_FWD,
  481. WMI_TLV_VDEV_PARAM_DEF_KEYID,
  482. WMI_TLV_VDEV_PARAM_NSS,
  483. WMI_TLV_VDEV_PARAM_BCAST_DATA_RATE,
  484. WMI_TLV_VDEV_PARAM_MCAST_DATA_RATE,
  485. WMI_TLV_VDEV_PARAM_MCAST_INDICATE,
  486. WMI_TLV_VDEV_PARAM_DHCP_INDICATE,
  487. WMI_TLV_VDEV_PARAM_UNKNOWN_DEST_INDICATE,
  488. WMI_TLV_VDEV_PARAM_AP_KEEPALIVE_MIN_IDLE_INACTIVE_TIME_SECS,
  489. WMI_TLV_VDEV_PARAM_AP_KEEPALIVE_MAX_IDLE_INACTIVE_TIME_SECS,
  490. WMI_TLV_VDEV_PARAM_AP_KEEPALIVE_MAX_UNRESPONSIVE_TIME_SECS,
  491. WMI_TLV_VDEV_PARAM_AP_ENABLE_NAWDS,
  492. WMI_TLV_VDEV_PARAM_ENABLE_RTSCTS,
  493. WMI_TLV_VDEV_PARAM_TXBF,
  494. WMI_TLV_VDEV_PARAM_PACKET_POWERSAVE,
  495. WMI_TLV_VDEV_PARAM_DROP_UNENCRY,
  496. WMI_TLV_VDEV_PARAM_TX_ENCAP_TYPE,
  497. WMI_TLV_VDEV_PARAM_AP_DETECT_OUT_OF_SYNC_SLEEPING_STA_TIME_SECS,
  498. WMI_TLV_VDEV_PARAM_EARLY_RX_ADJUST_ENABLE,
  499. WMI_TLV_VDEV_PARAM_EARLY_RX_TGT_BMISS_NUM,
  500. WMI_TLV_VDEV_PARAM_EARLY_RX_BMISS_SAMPLE_CYCLE,
  501. WMI_TLV_VDEV_PARAM_EARLY_RX_SLOP_STEP,
  502. WMI_TLV_VDEV_PARAM_EARLY_RX_INIT_SLOP,
  503. WMI_TLV_VDEV_PARAM_EARLY_RX_ADJUST_PAUSE,
  504. WMI_TLV_VDEV_PARAM_TX_PWRLIMIT,
  505. WMI_TLV_VDEV_PARAM_SNR_NUM_FOR_CAL,
  506. WMI_TLV_VDEV_PARAM_ROAM_FW_OFFLOAD,
  507. WMI_TLV_VDEV_PARAM_ENABLE_RMC,
  508. WMI_TLV_VDEV_PARAM_IBSS_MAX_BCN_LOST_MS,
  509. WMI_TLV_VDEV_PARAM_MAX_RATE,
  510. WMI_TLV_VDEV_PARAM_EARLY_RX_DRIFT_SAMPLE,
  511. WMI_TLV_VDEV_PARAM_SET_IBSS_TX_FAIL_CNT_THR,
  512. WMI_TLV_VDEV_PARAM_EBT_RESYNC_TIMEOUT,
  513. WMI_TLV_VDEV_PARAM_AGGR_TRIG_EVENT_ENABLE,
  514. WMI_TLV_VDEV_PARAM_IS_IBSS_POWER_SAVE_ALLOWED,
  515. WMI_TLV_VDEV_PARAM_IS_POWER_COLLAPSE_ALLOWED,
  516. WMI_TLV_VDEV_PARAM_IS_AWAKE_ON_TXRX_ENABLED,
  517. WMI_TLV_VDEV_PARAM_INACTIVITY_CNT,
  518. WMI_TLV_VDEV_PARAM_TXSP_END_INACTIVITY_TIME_MS,
  519. WMI_TLV_VDEV_PARAM_DTIM_POLICY,
  520. WMI_TLV_VDEV_PARAM_IBSS_PS_WARMUP_TIME_SECS,
  521. WMI_TLV_VDEV_PARAM_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_ENABLE,
  522. };
  523. enum wmi_tlv_tag {
  524. WMI_TLV_TAG_LAST_RESERVED = 15,
  525. WMI_TLV_TAG_FIRST_ARRAY_ENUM,
  526. WMI_TLV_TAG_ARRAY_UINT32 = WMI_TLV_TAG_FIRST_ARRAY_ENUM,
  527. WMI_TLV_TAG_ARRAY_BYTE,
  528. WMI_TLV_TAG_ARRAY_STRUCT,
  529. WMI_TLV_TAG_ARRAY_FIXED_STRUCT,
  530. WMI_TLV_TAG_LAST_ARRAY_ENUM = 31,
  531. WMI_TLV_TAG_STRUCT_SERVICE_READY_EVENT,
  532. WMI_TLV_TAG_STRUCT_HAL_REG_CAPABILITIES,
  533. WMI_TLV_TAG_STRUCT_WLAN_HOST_MEM_REQ,
  534. WMI_TLV_TAG_STRUCT_READY_EVENT,
  535. WMI_TLV_TAG_STRUCT_SCAN_EVENT,
  536. WMI_TLV_TAG_STRUCT_PDEV_TPC_CONFIG_EVENT,
  537. WMI_TLV_TAG_STRUCT_CHAN_INFO_EVENT,
  538. WMI_TLV_TAG_STRUCT_COMB_PHYERR_RX_HDR,
  539. WMI_TLV_TAG_STRUCT_VDEV_START_RESPONSE_EVENT,
  540. WMI_TLV_TAG_STRUCT_VDEV_STOPPED_EVENT,
  541. WMI_TLV_TAG_STRUCT_VDEV_INSTALL_KEY_COMPLETE_EVENT,
  542. WMI_TLV_TAG_STRUCT_PEER_STA_KICKOUT_EVENT,
  543. WMI_TLV_TAG_STRUCT_MGMT_RX_HDR,
  544. WMI_TLV_TAG_STRUCT_TBTT_OFFSET_EVENT,
  545. WMI_TLV_TAG_STRUCT_TX_DELBA_COMPLETE_EVENT,
  546. WMI_TLV_TAG_STRUCT_TX_ADDBA_COMPLETE_EVENT,
  547. WMI_TLV_TAG_STRUCT_ROAM_EVENT,
  548. WMI_TLV_TAG_STRUCT_WOW_EVENT_INFO,
  549. WMI_TLV_TAG_STRUCT_WOW_EVENT_INFO_SECTION_BITMAP,
  550. WMI_TLV_TAG_STRUCT_RTT_EVENT_HEADER,
  551. WMI_TLV_TAG_STRUCT_RTT_ERROR_REPORT_EVENT,
  552. WMI_TLV_TAG_STRUCT_RTT_MEAS_EVENT,
  553. WMI_TLV_TAG_STRUCT_ECHO_EVENT,
  554. WMI_TLV_TAG_STRUCT_FTM_INTG_EVENT,
  555. WMI_TLV_TAG_STRUCT_VDEV_GET_KEEPALIVE_EVENT,
  556. WMI_TLV_TAG_STRUCT_GPIO_INPUT_EVENT,
  557. WMI_TLV_TAG_STRUCT_CSA_EVENT,
  558. WMI_TLV_TAG_STRUCT_GTK_OFFLOAD_STATUS_EVENT,
  559. WMI_TLV_TAG_STRUCT_IGTK_INFO,
  560. WMI_TLV_TAG_STRUCT_DCS_INTERFERENCE_EVENT,
  561. WMI_TLV_TAG_STRUCT_ATH_DCS_CW_INT,
  562. WMI_TLV_TAG_STRUCT_ATH_DCS_WLAN_INT_STAT,
  563. WMI_TLV_TAG_STRUCT_WLAN_PROFILE_CTX_T,
  564. WMI_TLV_TAG_STRUCT_WLAN_PROFILE_T,
  565. WMI_TLV_TAG_STRUCT_PDEV_QVIT_EVENT,
  566. WMI_TLV_TAG_STRUCT_HOST_SWBA_EVENT,
  567. WMI_TLV_TAG_STRUCT_TIM_INFO,
  568. WMI_TLV_TAG_STRUCT_P2P_NOA_INFO,
  569. WMI_TLV_TAG_STRUCT_STATS_EVENT,
  570. WMI_TLV_TAG_STRUCT_AVOID_FREQ_RANGES_EVENT,
  571. WMI_TLV_TAG_STRUCT_AVOID_FREQ_RANGE_DESC,
  572. WMI_TLV_TAG_STRUCT_GTK_REKEY_FAIL_EVENT,
  573. WMI_TLV_TAG_STRUCT_INIT_CMD,
  574. WMI_TLV_TAG_STRUCT_RESOURCE_CONFIG,
  575. WMI_TLV_TAG_STRUCT_WLAN_HOST_MEMORY_CHUNK,
  576. WMI_TLV_TAG_STRUCT_START_SCAN_CMD,
  577. WMI_TLV_TAG_STRUCT_STOP_SCAN_CMD,
  578. WMI_TLV_TAG_STRUCT_SCAN_CHAN_LIST_CMD,
  579. WMI_TLV_TAG_STRUCT_CHANNEL,
  580. WMI_TLV_TAG_STRUCT_PDEV_SET_REGDOMAIN_CMD,
  581. WMI_TLV_TAG_STRUCT_PDEV_SET_PARAM_CMD,
  582. WMI_TLV_TAG_STRUCT_PDEV_SET_WMM_PARAMS_CMD,
  583. WMI_TLV_TAG_STRUCT_WMM_PARAMS,
  584. WMI_TLV_TAG_STRUCT_PDEV_SET_QUIET_CMD,
  585. WMI_TLV_TAG_STRUCT_VDEV_CREATE_CMD,
  586. WMI_TLV_TAG_STRUCT_VDEV_DELETE_CMD,
  587. WMI_TLV_TAG_STRUCT_VDEV_START_REQUEST_CMD,
  588. WMI_TLV_TAG_STRUCT_P2P_NOA_DESCRIPTOR,
  589. WMI_TLV_TAG_STRUCT_P2P_GO_SET_BEACON_IE,
  590. WMI_TLV_TAG_STRUCT_GTK_OFFLOAD_CMD,
  591. WMI_TLV_TAG_STRUCT_VDEV_UP_CMD,
  592. WMI_TLV_TAG_STRUCT_VDEV_STOP_CMD,
  593. WMI_TLV_TAG_STRUCT_VDEV_DOWN_CMD,
  594. WMI_TLV_TAG_STRUCT_VDEV_SET_PARAM_CMD,
  595. WMI_TLV_TAG_STRUCT_VDEV_INSTALL_KEY_CMD,
  596. WMI_TLV_TAG_STRUCT_PEER_CREATE_CMD,
  597. WMI_TLV_TAG_STRUCT_PEER_DELETE_CMD,
  598. WMI_TLV_TAG_STRUCT_PEER_FLUSH_TIDS_CMD,
  599. WMI_TLV_TAG_STRUCT_PEER_SET_PARAM_CMD,
  600. WMI_TLV_TAG_STRUCT_PEER_ASSOC_COMPLETE_CMD,
  601. WMI_TLV_TAG_STRUCT_VHT_RATE_SET,
  602. WMI_TLV_TAG_STRUCT_BCN_TMPL_CMD,
  603. WMI_TLV_TAG_STRUCT_PRB_TMPL_CMD,
  604. WMI_TLV_TAG_STRUCT_BCN_PRB_INFO,
  605. WMI_TLV_TAG_STRUCT_PEER_TID_ADDBA_CMD,
  606. WMI_TLV_TAG_STRUCT_PEER_TID_DELBA_CMD,
  607. WMI_TLV_TAG_STRUCT_STA_POWERSAVE_MODE_CMD,
  608. WMI_TLV_TAG_STRUCT_STA_POWERSAVE_PARAM_CMD,
  609. WMI_TLV_TAG_STRUCT_STA_DTIM_PS_METHOD_CMD,
  610. WMI_TLV_TAG_STRUCT_ROAM_SCAN_MODE,
  611. WMI_TLV_TAG_STRUCT_ROAM_SCAN_RSSI_THRESHOLD,
  612. WMI_TLV_TAG_STRUCT_ROAM_SCAN_PERIOD,
  613. WMI_TLV_TAG_STRUCT_ROAM_SCAN_RSSI_CHANGE_THRESHOLD,
  614. WMI_TLV_TAG_STRUCT_PDEV_SUSPEND_CMD,
  615. WMI_TLV_TAG_STRUCT_PDEV_RESUME_CMD,
  616. WMI_TLV_TAG_STRUCT_ADD_BCN_FILTER_CMD,
  617. WMI_TLV_TAG_STRUCT_RMV_BCN_FILTER_CMD,
  618. WMI_TLV_TAG_STRUCT_WOW_ENABLE_CMD,
  619. WMI_TLV_TAG_STRUCT_WOW_HOSTWAKEUP_FROM_SLEEP_CMD,
  620. WMI_TLV_TAG_STRUCT_STA_UAPSD_AUTO_TRIG_CMD,
  621. WMI_TLV_TAG_STRUCT_STA_UAPSD_AUTO_TRIG_PARAM,
  622. WMI_TLV_TAG_STRUCT_SET_ARP_NS_OFFLOAD_CMD,
  623. WMI_TLV_TAG_STRUCT_ARP_OFFLOAD_TUPLE,
  624. WMI_TLV_TAG_STRUCT_NS_OFFLOAD_TUPLE,
  625. WMI_TLV_TAG_STRUCT_FTM_INTG_CMD,
  626. WMI_TLV_TAG_STRUCT_STA_KEEPALIVE_CMD,
  627. WMI_TLV_TAG_STRUCT_STA_KEEPALVE_ARP_RESPONSE,
  628. WMI_TLV_TAG_STRUCT_P2P_SET_VENDOR_IE_DATA_CMD,
  629. WMI_TLV_TAG_STRUCT_AP_PS_PEER_CMD,
  630. WMI_TLV_TAG_STRUCT_PEER_RATE_RETRY_SCHED_CMD,
  631. WMI_TLV_TAG_STRUCT_WLAN_PROFILE_TRIGGER_CMD,
  632. WMI_TLV_TAG_STRUCT_WLAN_PROFILE_SET_HIST_INTVL_CMD,
  633. WMI_TLV_TAG_STRUCT_WLAN_PROFILE_GET_PROF_DATA_CMD,
  634. WMI_TLV_TAG_STRUCT_WLAN_PROFILE_ENABLE_PROFILE_ID_CMD,
  635. WMI_TLV_TAG_STRUCT_WOW_DEL_PATTERN_CMD,
  636. WMI_TLV_TAG_STRUCT_WOW_ADD_DEL_EVT_CMD,
  637. WMI_TLV_TAG_STRUCT_RTT_MEASREQ_HEAD,
  638. WMI_TLV_TAG_STRUCT_RTT_MEASREQ_BODY,
  639. WMI_TLV_TAG_STRUCT_RTT_TSF_CMD,
  640. WMI_TLV_TAG_STRUCT_VDEV_SPECTRAL_CONFIGURE_CMD,
  641. WMI_TLV_TAG_STRUCT_VDEV_SPECTRAL_ENABLE_CMD,
  642. WMI_TLV_TAG_STRUCT_REQUEST_STATS_CMD,
  643. WMI_TLV_TAG_STRUCT_NLO_CONFIG_CMD,
  644. WMI_TLV_TAG_STRUCT_NLO_CONFIGURED_PARAMETERS,
  645. WMI_TLV_TAG_STRUCT_CSA_OFFLOAD_ENABLE_CMD,
  646. WMI_TLV_TAG_STRUCT_CSA_OFFLOAD_CHANSWITCH_CMD,
  647. WMI_TLV_TAG_STRUCT_CHATTER_SET_MODE_CMD,
  648. WMI_TLV_TAG_STRUCT_ECHO_CMD,
  649. WMI_TLV_TAG_STRUCT_VDEV_SET_KEEPALIVE_CMD,
  650. WMI_TLV_TAG_STRUCT_VDEV_GET_KEEPALIVE_CMD,
  651. WMI_TLV_TAG_STRUCT_FORCE_FW_HANG_CMD,
  652. WMI_TLV_TAG_STRUCT_GPIO_CONFIG_CMD,
  653. WMI_TLV_TAG_STRUCT_GPIO_OUTPUT_CMD,
  654. WMI_TLV_TAG_STRUCT_PEER_ADD_WDS_ENTRY_CMD,
  655. WMI_TLV_TAG_STRUCT_PEER_REMOVE_WDS_ENTRY_CMD,
  656. WMI_TLV_TAG_STRUCT_BCN_TX_HDR,
  657. WMI_TLV_TAG_STRUCT_BCN_SEND_FROM_HOST_CMD,
  658. WMI_TLV_TAG_STRUCT_MGMT_TX_HDR,
  659. WMI_TLV_TAG_STRUCT_ADDBA_CLEAR_RESP_CMD,
  660. WMI_TLV_TAG_STRUCT_ADDBA_SEND_CMD,
  661. WMI_TLV_TAG_STRUCT_DELBA_SEND_CMD,
  662. WMI_TLV_TAG_STRUCT_ADDBA_SETRESPONSE_CMD,
  663. WMI_TLV_TAG_STRUCT_SEND_SINGLEAMSDU_CMD,
  664. WMI_TLV_TAG_STRUCT_PDEV_PKTLOG_ENABLE_CMD,
  665. WMI_TLV_TAG_STRUCT_PDEV_PKTLOG_DISABLE_CMD,
  666. WMI_TLV_TAG_STRUCT_PDEV_SET_HT_IE_CMD,
  667. WMI_TLV_TAG_STRUCT_PDEV_SET_VHT_IE_CMD,
  668. WMI_TLV_TAG_STRUCT_PDEV_SET_DSCP_TID_MAP_CMD,
  669. WMI_TLV_TAG_STRUCT_PDEV_GREEN_AP_PS_ENABLE_CMD,
  670. WMI_TLV_TAG_STRUCT_PDEV_GET_TPC_CONFIG_CMD,
  671. WMI_TLV_TAG_STRUCT_PDEV_SET_BASE_MACADDR_CMD,
  672. WMI_TLV_TAG_STRUCT_PEER_MCAST_GROUP_CMD,
  673. WMI_TLV_TAG_STRUCT_ROAM_AP_PROFILE,
  674. WMI_TLV_TAG_STRUCT_AP_PROFILE,
  675. WMI_TLV_TAG_STRUCT_SCAN_SCH_PRIORITY_TABLE_CMD,
  676. WMI_TLV_TAG_STRUCT_PDEV_DFS_ENABLE_CMD,
  677. WMI_TLV_TAG_STRUCT_PDEV_DFS_DISABLE_CMD,
  678. WMI_TLV_TAG_STRUCT_WOW_ADD_PATTERN_CMD,
  679. WMI_TLV_TAG_STRUCT_WOW_BITMAP_PATTERN_T,
  680. WMI_TLV_TAG_STRUCT_WOW_IPV4_SYNC_PATTERN_T,
  681. WMI_TLV_TAG_STRUCT_WOW_IPV6_SYNC_PATTERN_T,
  682. WMI_TLV_TAG_STRUCT_WOW_MAGIC_PATTERN_CMD,
  683. WMI_TLV_TAG_STRUCT_SCAN_UPDATE_REQUEST_CMD,
  684. WMI_TLV_TAG_STRUCT_CHATTER_PKT_COALESCING_FILTER,
  685. WMI_TLV_TAG_STRUCT_CHATTER_COALESCING_ADD_FILTER_CMD,
  686. WMI_TLV_TAG_STRUCT_CHATTER_COALESCING_DELETE_FILTER_CMD,
  687. WMI_TLV_TAG_STRUCT_CHATTER_COALESCING_QUERY_CMD,
  688. WMI_TLV_TAG_STRUCT_TXBF_CMD,
  689. WMI_TLV_TAG_STRUCT_DEBUG_LOG_CONFIG_CMD,
  690. WMI_TLV_TAG_STRUCT_NLO_EVENT,
  691. WMI_TLV_TAG_STRUCT_CHATTER_QUERY_REPLY_EVENT,
  692. WMI_TLV_TAG_STRUCT_UPLOAD_H_HDR,
  693. WMI_TLV_TAG_STRUCT_CAPTURE_H_EVENT_HDR,
  694. WMI_TLV_TAG_STRUCT_VDEV_WNM_SLEEPMODE_CMD,
  695. WMI_TLV_TAG_STRUCT_VDEV_IPSEC_NATKEEPALIVE_FILTER_CMD,
  696. WMI_TLV_TAG_STRUCT_VDEV_WMM_ADDTS_CMD,
  697. WMI_TLV_TAG_STRUCT_VDEV_WMM_DELTS_CMD,
  698. WMI_TLV_TAG_STRUCT_VDEV_SET_WMM_PARAMS_CMD,
  699. WMI_TLV_TAG_STRUCT_TDLS_SET_STATE_CMD,
  700. WMI_TLV_TAG_STRUCT_TDLS_PEER_UPDATE_CMD,
  701. WMI_TLV_TAG_STRUCT_TDLS_PEER_EVENT,
  702. WMI_TLV_TAG_STRUCT_TDLS_PEER_CAPABILITIES,
  703. WMI_TLV_TAG_STRUCT_VDEV_MCC_SET_TBTT_MODE_CMD,
  704. WMI_TLV_TAG_STRUCT_ROAM_CHAN_LIST,
  705. WMI_TLV_TAG_STRUCT_VDEV_MCC_BCN_INTVL_CHANGE_EVENT,
  706. WMI_TLV_TAG_STRUCT_RESMGR_ADAPTIVE_OCS_CMD,
  707. WMI_TLV_TAG_STRUCT_RESMGR_SET_CHAN_TIME_QUOTA_CMD,
  708. WMI_TLV_TAG_STRUCT_RESMGR_SET_CHAN_LATENCY_CMD,
  709. WMI_TLV_TAG_STRUCT_BA_REQ_SSN_CMD,
  710. WMI_TLV_TAG_STRUCT_BA_RSP_SSN_EVENT,
  711. WMI_TLV_TAG_STRUCT_STA_SMPS_FORCE_MODE_CMD,
  712. WMI_TLV_TAG_STRUCT_SET_MCASTBCAST_FILTER_CMD,
  713. WMI_TLV_TAG_STRUCT_P2P_SET_OPPPS_CMD,
  714. WMI_TLV_TAG_STRUCT_P2P_SET_NOA_CMD,
  715. WMI_TLV_TAG_STRUCT_BA_REQ_SSN_CMD_SUB_STRUCT_PARAM,
  716. WMI_TLV_TAG_STRUCT_BA_REQ_SSN_EVENT_SUB_STRUCT_PARAM,
  717. WMI_TLV_TAG_STRUCT_STA_SMPS_PARAM_CMD,
  718. WMI_TLV_TAG_STRUCT_VDEV_SET_GTX_PARAMS_CMD,
  719. WMI_TLV_TAG_STRUCT_MCC_SCHED_TRAFFIC_STATS_CMD,
  720. WMI_TLV_TAG_STRUCT_MCC_SCHED_STA_TRAFFIC_STATS,
  721. WMI_TLV_TAG_STRUCT_OFFLOAD_BCN_TX_STATUS_EVENT,
  722. WMI_TLV_TAG_STRUCT_P2P_NOA_EVENT,
  723. WMI_TLV_TAG_STRUCT_HB_SET_ENABLE_CMD,
  724. WMI_TLV_TAG_STRUCT_HB_SET_TCP_PARAMS_CMD,
  725. WMI_TLV_TAG_STRUCT_HB_SET_TCP_PKT_FILTER_CMD,
  726. WMI_TLV_TAG_STRUCT_HB_SET_UDP_PARAMS_CMD,
  727. WMI_TLV_TAG_STRUCT_HB_SET_UDP_PKT_FILTER_CMD,
  728. WMI_TLV_TAG_STRUCT_HB_IND_EVENT,
  729. WMI_TLV_TAG_STRUCT_TX_PAUSE_EVENT,
  730. WMI_TLV_TAG_STRUCT_RFKILL_EVENT,
  731. WMI_TLV_TAG_STRUCT_DFS_RADAR_EVENT,
  732. WMI_TLV_TAG_STRUCT_DFS_PHYERR_FILTER_ENA_CMD,
  733. WMI_TLV_TAG_STRUCT_DFS_PHYERR_FILTER_DIS_CMD,
  734. WMI_TLV_TAG_STRUCT_BATCH_SCAN_RESULT_SCAN_LIST,
  735. WMI_TLV_TAG_STRUCT_BATCH_SCAN_RESULT_NETWORK_INFO,
  736. WMI_TLV_TAG_STRUCT_BATCH_SCAN_ENABLE_CMD,
  737. WMI_TLV_TAG_STRUCT_BATCH_SCAN_DISABLE_CMD,
  738. WMI_TLV_TAG_STRUCT_BATCH_SCAN_TRIGGER_RESULT_CMD,
  739. WMI_TLV_TAG_STRUCT_BATCH_SCAN_ENABLED_EVENT,
  740. WMI_TLV_TAG_STRUCT_BATCH_SCAN_RESULT_EVENT,
  741. WMI_TLV_TAG_STRUCT_VDEV_PLMREQ_START_CMD,
  742. WMI_TLV_TAG_STRUCT_VDEV_PLMREQ_STOP_CMD,
  743. WMI_TLV_TAG_STRUCT_THERMAL_MGMT_CMD,
  744. WMI_TLV_TAG_STRUCT_THERMAL_MGMT_EVENT,
  745. WMI_TLV_TAG_STRUCT_PEER_INFO_REQ_CMD,
  746. WMI_TLV_TAG_STRUCT_PEER_INFO_EVENT,
  747. WMI_TLV_TAG_STRUCT_PEER_INFO,
  748. WMI_TLV_TAG_STRUCT_PEER_TX_FAIL_CNT_THR_EVENT,
  749. WMI_TLV_TAG_STRUCT_RMC_SET_MODE_CMD,
  750. WMI_TLV_TAG_STRUCT_RMC_SET_ACTION_PERIOD_CMD,
  751. WMI_TLV_TAG_STRUCT_RMC_CONFIG_CMD,
  752. WMI_TLV_TAG_STRUCT_MHF_OFFLOAD_SET_MODE_CMD,
  753. WMI_TLV_TAG_STRUCT_MHF_OFFLOAD_PLUMB_ROUTING_TABLE_CMD,
  754. WMI_TLV_TAG_STRUCT_ADD_PROACTIVE_ARP_RSP_PATTERN_CMD,
  755. WMI_TLV_TAG_STRUCT_DEL_PROACTIVE_ARP_RSP_PATTERN_CMD,
  756. WMI_TLV_TAG_STRUCT_NAN_CMD_PARAM,
  757. WMI_TLV_TAG_STRUCT_NAN_EVENT_HDR,
  758. WMI_TLV_TAG_STRUCT_PDEV_L1SS_TRACK_EVENT,
  759. WMI_TLV_TAG_STRUCT_DIAG_DATA_CONTAINER_EVENT,
  760. WMI_TLV_TAG_STRUCT_MODEM_POWER_STATE_CMD_PARAM,
  761. WMI_TLV_TAG_STRUCT_PEER_GET_ESTIMATED_LINKSPEED_CMD,
  762. WMI_TLV_TAG_STRUCT_PEER_ESTIMATED_LINKSPEED_EVENT,
  763. WMI_TLV_TAG_STRUCT_AGGR_STATE_TRIG_EVENT,
  764. WMI_TLV_TAG_STRUCT_MHF_OFFLOAD_ROUTING_TABLE_ENTRY,
  765. WMI_TLV_TAG_STRUCT_ROAM_SCAN_CMD,
  766. WMI_TLV_TAG_STRUCT_REQ_STATS_EXT_CMD,
  767. WMI_TLV_TAG_STRUCT_STATS_EXT_EVENT,
  768. WMI_TLV_TAG_STRUCT_OBSS_SCAN_ENABLE_CMD,
  769. WMI_TLV_TAG_STRUCT_OBSS_SCAN_DISABLE_CMD,
  770. WMI_TLV_TAG_STRUCT_OFFLOAD_PRB_RSP_TX_STATUS_EVENT,
  771. WMI_TLV_TAG_STRUCT_PDEV_SET_LED_CONFIG_CMD,
  772. WMI_TLV_TAG_STRUCT_HOST_AUTO_SHUTDOWN_CFG_CMD,
  773. WMI_TLV_TAG_STRUCT_HOST_AUTO_SHUTDOWN_EVENT,
  774. WMI_TLV_TAG_STRUCT_UPDATE_WHAL_MIB_STATS_EVENT,
  775. WMI_TLV_TAG_STRUCT_CHAN_AVOID_UPDATE_CMD_PARAM,
  776. WMI_TLV_TAG_STRUCT_WOW_ACER_IOAC_PKT_PATTERN_T,
  777. WMI_TLV_TAG_STRUCT_WOW_ACER_IOAC_TMR_PATTERN_T,
  778. WMI_TLV_TAG_STRUCT_WOW_IOAC_ADD_KEEPALIVE_CMD,
  779. WMI_TLV_TAG_STRUCT_WOW_IOAC_DEL_KEEPALIVE_CMD,
  780. WMI_TLV_TAG_STRUCT_WOW_IOAC_KEEPALIVE_T,
  781. WMI_TLV_TAG_STRUCT_WOW_ACER_IOAC_ADD_PATTERN_CMD,
  782. WMI_TLV_TAG_STRUCT_WOW_ACER_IOAC_DEL_PATTERN_CMD,
  783. WMI_TLV_TAG_STRUCT_START_LINK_STATS_CMD,
  784. WMI_TLV_TAG_STRUCT_CLEAR_LINK_STATS_CMD,
  785. WMI_TLV_TAG_STRUCT_REQUEST_LINK_STATS_CMD,
  786. WMI_TLV_TAG_STRUCT_IFACE_LINK_STATS_EVENT,
  787. WMI_TLV_TAG_STRUCT_RADIO_LINK_STATS_EVENT,
  788. WMI_TLV_TAG_STRUCT_PEER_STATS_EVENT,
  789. WMI_TLV_TAG_STRUCT_CHANNEL_STATS,
  790. WMI_TLV_TAG_STRUCT_RADIO_LINK_STATS,
  791. WMI_TLV_TAG_STRUCT_RATE_STATS,
  792. WMI_TLV_TAG_STRUCT_PEER_LINK_STATS,
  793. WMI_TLV_TAG_STRUCT_WMM_AC_STATS,
  794. WMI_TLV_TAG_STRUCT_IFACE_LINK_STATS,
  795. WMI_TLV_TAG_STRUCT_LPI_MGMT_SNOOPING_CONFIG_CMD,
  796. WMI_TLV_TAG_STRUCT_LPI_START_SCAN_CMD,
  797. WMI_TLV_TAG_STRUCT_LPI_STOP_SCAN_CMD,
  798. WMI_TLV_TAG_STRUCT_LPI_RESULT_EVENT,
  799. WMI_TLV_TAG_STRUCT_PEER_STATE_EVENT,
  800. WMI_TLV_TAG_STRUCT_EXTSCAN_BUCKET_CMD,
  801. WMI_TLV_TAG_STRUCT_EXTSCAN_BUCKET_CHANNEL_EVENT,
  802. WMI_TLV_TAG_STRUCT_EXTSCAN_START_CMD,
  803. WMI_TLV_TAG_STRUCT_EXTSCAN_STOP_CMD,
  804. WMI_TLV_TAG_STRUCT_EXTSCAN_CONFIGURE_WLAN_CHANGE_MONITOR_CMD,
  805. WMI_TLV_TAG_STRUCT_EXTSCAN_WLAN_CHANGE_BSSID_PARAM_CMD,
  806. WMI_TLV_TAG_STRUCT_EXTSCAN_CONFIGURE_HOTLIST_MONITOR_CMD,
  807. WMI_TLV_TAG_STRUCT_EXTSCAN_GET_CACHED_RESULTS_CMD,
  808. WMI_TLV_TAG_STRUCT_EXTSCAN_GET_WLAN_CHANGE_RESULTS_CMD,
  809. WMI_TLV_TAG_STRUCT_EXTSCAN_SET_CAPABILITIES_CMD,
  810. WMI_TLV_TAG_STRUCT_EXTSCAN_GET_CAPABILITIES_CMD,
  811. WMI_TLV_TAG_STRUCT_EXTSCAN_OPERATION_EVENT,
  812. WMI_TLV_TAG_STRUCT_EXTSCAN_START_STOP_EVENT,
  813. WMI_TLV_TAG_STRUCT_EXTSCAN_TABLE_USAGE_EVENT,
  814. WMI_TLV_TAG_STRUCT_EXTSCAN_WLAN_DESCRIPTOR_EVENT,
  815. WMI_TLV_TAG_STRUCT_EXTSCAN_RSSI_INFO_EVENT,
  816. WMI_TLV_TAG_STRUCT_EXTSCAN_CACHED_RESULTS_EVENT,
  817. WMI_TLV_TAG_STRUCT_EXTSCAN_WLAN_CHANGE_RESULTS_EVENT,
  818. WMI_TLV_TAG_STRUCT_EXTSCAN_WLAN_CHANGE_RESULT_BSSID_EVENT,
  819. WMI_TLV_TAG_STRUCT_EXTSCAN_HOTLIST_MATCH_EVENT,
  820. WMI_TLV_TAG_STRUCT_EXTSCAN_CAPABILITIES_EVENT,
  821. WMI_TLV_TAG_STRUCT_EXTSCAN_CACHE_CAPABILITIES_EVENT,
  822. WMI_TLV_TAG_STRUCT_EXTSCAN_WLAN_CHANGE_MONITOR_CAPABILITIES_EVENT,
  823. WMI_TLV_TAG_STRUCT_EXTSCAN_HOTLIST_MONITOR_CAPABILITIES_EVENT,
  824. WMI_TLV_TAG_STRUCT_D0_WOW_ENABLE_DISABLE_CMD,
  825. WMI_TLV_TAG_STRUCT_D0_WOW_DISABLE_ACK_EVENT,
  826. WMI_TLV_TAG_STRUCT_UNIT_TEST_CMD,
  827. WMI_TLV_TAG_STRUCT_ROAM_OFFLOAD_TLV_PARAM,
  828. WMI_TLV_TAG_STRUCT_ROAM_11I_OFFLOAD_TLV_PARAM,
  829. WMI_TLV_TAG_STRUCT_ROAM_11R_OFFLOAD_TLV_PARAM,
  830. WMI_TLV_TAG_STRUCT_ROAM_ESE_OFFLOAD_TLV_PARAM,
  831. WMI_TLV_TAG_STRUCT_ROAM_SYNCH_EVENT,
  832. WMI_TLV_TAG_STRUCT_ROAM_SYNCH_COMPLETE,
  833. WMI_TLV_TAG_STRUCT_EXTWOW_ENABLE_CMD,
  834. WMI_TLV_TAG_STRUCT_EXTWOW_SET_APP_TYPE1_PARAMS_CMD,
  835. WMI_TLV_TAG_STRUCT_EXTWOW_SET_APP_TYPE2_PARAMS_CMD,
  836. WMI_TLV_TAG_STRUCT_LPI_STATUS_EVENT,
  837. WMI_TLV_TAG_STRUCT_LPI_HANDOFF_EVENT,
  838. WMI_TLV_TAG_STRUCT_VDEV_RATE_STATS_EVENT,
  839. WMI_TLV_TAG_STRUCT_VDEV_RATE_HT_INFO,
  840. WMI_TLV_TAG_STRUCT_RIC_REQUEST,
  841. WMI_TLV_TAG_STRUCT_PDEV_GET_TEMPERATURE_CMD,
  842. WMI_TLV_TAG_STRUCT_PDEV_TEMPERATURE_EVENT,
  843. WMI_TLV_TAG_STRUCT_SET_DHCP_SERVER_OFFLOAD_CMD,
  844. WMI_TLV_TAG_STRUCT_TPC_CHAINMASK_CONFIG_CMD,
  845. WMI_TLV_TAG_STRUCT_RIC_TSPEC,
  846. WMI_TLV_TAG_STRUCT_TPC_CHAINMASK_CONFIG,
  847. WMI_TLV_TAG_STRUCT_IPA_OFFLOAD_CMD,
  848. WMI_TLV_TAG_STRUCT_SCAN_PROB_REQ_OUI_CMD,
  849. WMI_TLV_TAG_STRUCT_KEY_MATERIAL,
  850. WMI_TLV_TAG_STRUCT_TDLS_SET_OFFCHAN_MODE_CMD,
  851. WMI_TLV_TAG_STRUCT_SET_LED_FLASHING_CMD,
  852. WMI_TLV_TAG_STRUCT_MDNS_OFFLOAD_CMD,
  853. WMI_TLV_TAG_STRUCT_MDNS_SET_FQDN_CMD,
  854. WMI_TLV_TAG_STRUCT_MDNS_SET_RESP_CMD,
  855. WMI_TLV_TAG_STRUCT_MDNS_GET_STATS_CMD,
  856. WMI_TLV_TAG_STRUCT_MDNS_STATS_EVENT,
  857. WMI_TLV_TAG_STRUCT_ROAM_INVOKE_CMD,
  858. WMI_TLV_TAG_STRUCT_PDEV_RESUME_EVENT,
  859. WMI_TLV_TAG_STRUCT_PDEV_SET_ANTENNA_DIVERSITY_CMD,
  860. WMI_TLV_TAG_STRUCT_SAP_OFL_ENABLE_CMD,
  861. WMI_TLV_TAG_STRUCT_SAP_OFL_ADD_STA_EVENT,
  862. WMI_TLV_TAG_STRUCT_SAP_OFL_DEL_STA_EVENT,
  863. WMI_TLV_TAG_STRUCT_APFIND_CMD_PARAM,
  864. WMI_TLV_TAG_STRUCT_APFIND_EVENT_HDR,
  865. WMI_TLV_TAG_MAX
  866. };
  867. enum wmi_tlv_service {
  868. WMI_TLV_SERVICE_BEACON_OFFLOAD = 0,
  869. WMI_TLV_SERVICE_SCAN_OFFLOAD,
  870. WMI_TLV_SERVICE_ROAM_SCAN_OFFLOAD,
  871. WMI_TLV_SERVICE_BCN_MISS_OFFLOAD,
  872. WMI_TLV_SERVICE_STA_PWRSAVE,
  873. WMI_TLV_SERVICE_STA_ADVANCED_PWRSAVE,
  874. WMI_TLV_SERVICE_AP_UAPSD,
  875. WMI_TLV_SERVICE_AP_DFS,
  876. WMI_TLV_SERVICE_11AC,
  877. WMI_TLV_SERVICE_BLOCKACK,
  878. WMI_TLV_SERVICE_PHYERR,
  879. WMI_TLV_SERVICE_BCN_FILTER,
  880. WMI_TLV_SERVICE_RTT,
  881. WMI_TLV_SERVICE_WOW,
  882. WMI_TLV_SERVICE_RATECTRL_CACHE,
  883. WMI_TLV_SERVICE_IRAM_TIDS,
  884. WMI_TLV_SERVICE_ARPNS_OFFLOAD,
  885. WMI_TLV_SERVICE_NLO,
  886. WMI_TLV_SERVICE_GTK_OFFLOAD,
  887. WMI_TLV_SERVICE_SCAN_SCH,
  888. WMI_TLV_SERVICE_CSA_OFFLOAD,
  889. WMI_TLV_SERVICE_CHATTER,
  890. WMI_TLV_SERVICE_COEX_FREQAVOID,
  891. WMI_TLV_SERVICE_PACKET_POWER_SAVE,
  892. WMI_TLV_SERVICE_FORCE_FW_HANG,
  893. WMI_TLV_SERVICE_GPIO,
  894. WMI_TLV_SERVICE_STA_DTIM_PS_MODULATED_DTIM,
  895. WMI_TLV_SERVICE_STA_UAPSD_BASIC_AUTO_TRIG,
  896. WMI_TLV_SERVICE_STA_UAPSD_VAR_AUTO_TRIG,
  897. WMI_TLV_SERVICE_STA_KEEP_ALIVE,
  898. WMI_TLV_SERVICE_TX_ENCAP,
  899. WMI_TLV_SERVICE_AP_PS_DETECT_OUT_OF_SYNC,
  900. WMI_TLV_SERVICE_EARLY_RX,
  901. WMI_TLV_SERVICE_STA_SMPS,
  902. WMI_TLV_SERVICE_FWTEST,
  903. WMI_TLV_SERVICE_STA_WMMAC,
  904. WMI_TLV_SERVICE_TDLS,
  905. WMI_TLV_SERVICE_BURST,
  906. WMI_TLV_SERVICE_MCC_BCN_INTERVAL_CHANGE,
  907. WMI_TLV_SERVICE_ADAPTIVE_OCS,
  908. WMI_TLV_SERVICE_BA_SSN_SUPPORT,
  909. WMI_TLV_SERVICE_FILTER_IPSEC_NATKEEPALIVE,
  910. WMI_TLV_SERVICE_WLAN_HB,
  911. WMI_TLV_SERVICE_LTE_ANT_SHARE_SUPPORT,
  912. WMI_TLV_SERVICE_BATCH_SCAN,
  913. WMI_TLV_SERVICE_QPOWER,
  914. WMI_TLV_SERVICE_PLMREQ,
  915. WMI_TLV_SERVICE_THERMAL_MGMT,
  916. WMI_TLV_SERVICE_RMC,
  917. WMI_TLV_SERVICE_MHF_OFFLOAD,
  918. WMI_TLV_SERVICE_COEX_SAR,
  919. WMI_TLV_SERVICE_BCN_TXRATE_OVERRIDE,
  920. WMI_TLV_SERVICE_NAN,
  921. WMI_TLV_SERVICE_L1SS_STAT,
  922. WMI_TLV_SERVICE_ESTIMATE_LINKSPEED,
  923. WMI_TLV_SERVICE_OBSS_SCAN,
  924. WMI_TLV_SERVICE_TDLS_OFFCHAN,
  925. WMI_TLV_SERVICE_TDLS_UAPSD_BUFFER_STA,
  926. WMI_TLV_SERVICE_TDLS_UAPSD_SLEEP_STA,
  927. WMI_TLV_SERVICE_IBSS_PWRSAVE,
  928. WMI_TLV_SERVICE_LPASS,
  929. WMI_TLV_SERVICE_EXTSCAN,
  930. WMI_TLV_SERVICE_D0WOW,
  931. WMI_TLV_SERVICE_HSOFFLOAD,
  932. WMI_TLV_SERVICE_ROAM_HO_OFFLOAD,
  933. WMI_TLV_SERVICE_RX_FULL_REORDER,
  934. WMI_TLV_SERVICE_DHCP_OFFLOAD,
  935. WMI_TLV_SERVICE_STA_RX_IPA_OFFLOAD_SUPPORT,
  936. WMI_TLV_SERVICE_MDNS_OFFLOAD,
  937. WMI_TLV_SERVICE_SAP_AUTH_OFFLOAD,
  938. };
  939. #define WMI_SERVICE_IS_ENABLED(wmi_svc_bmap, svc_id, len) \
  940. ((svc_id) < (len) && \
  941. __le32_to_cpu((wmi_svc_bmap)[(svc_id)/(sizeof(u32))]) & \
  942. BIT((svc_id)%(sizeof(u32))))
  943. #define SVCMAP(x, y, len) \
  944. do { \
  945. if (WMI_SERVICE_IS_ENABLED((in), (x), (len))) \
  946. __set_bit(y, out); \
  947. } while (0)
  948. static inline void
  949. wmi_tlv_svc_map(const __le32 *in, unsigned long *out, size_t len)
  950. {
  951. SVCMAP(WMI_TLV_SERVICE_BEACON_OFFLOAD,
  952. WMI_SERVICE_BEACON_OFFLOAD, len);
  953. SVCMAP(WMI_TLV_SERVICE_SCAN_OFFLOAD,
  954. WMI_SERVICE_SCAN_OFFLOAD, len);
  955. SVCMAP(WMI_TLV_SERVICE_ROAM_SCAN_OFFLOAD,
  956. WMI_SERVICE_ROAM_SCAN_OFFLOAD, len);
  957. SVCMAP(WMI_TLV_SERVICE_BCN_MISS_OFFLOAD,
  958. WMI_SERVICE_BCN_MISS_OFFLOAD, len);
  959. SVCMAP(WMI_TLV_SERVICE_STA_PWRSAVE,
  960. WMI_SERVICE_STA_PWRSAVE, len);
  961. SVCMAP(WMI_TLV_SERVICE_STA_ADVANCED_PWRSAVE,
  962. WMI_SERVICE_STA_ADVANCED_PWRSAVE, len);
  963. SVCMAP(WMI_TLV_SERVICE_AP_UAPSD,
  964. WMI_SERVICE_AP_UAPSD, len);
  965. SVCMAP(WMI_TLV_SERVICE_AP_DFS,
  966. WMI_SERVICE_AP_DFS, len);
  967. SVCMAP(WMI_TLV_SERVICE_11AC,
  968. WMI_SERVICE_11AC, len);
  969. SVCMAP(WMI_TLV_SERVICE_BLOCKACK,
  970. WMI_SERVICE_BLOCKACK, len);
  971. SVCMAP(WMI_TLV_SERVICE_PHYERR,
  972. WMI_SERVICE_PHYERR, len);
  973. SVCMAP(WMI_TLV_SERVICE_BCN_FILTER,
  974. WMI_SERVICE_BCN_FILTER, len);
  975. SVCMAP(WMI_TLV_SERVICE_RTT,
  976. WMI_SERVICE_RTT, len);
  977. SVCMAP(WMI_TLV_SERVICE_WOW,
  978. WMI_SERVICE_WOW, len);
  979. SVCMAP(WMI_TLV_SERVICE_RATECTRL_CACHE,
  980. WMI_SERVICE_RATECTRL_CACHE, len);
  981. SVCMAP(WMI_TLV_SERVICE_IRAM_TIDS,
  982. WMI_SERVICE_IRAM_TIDS, len);
  983. SVCMAP(WMI_TLV_SERVICE_ARPNS_OFFLOAD,
  984. WMI_SERVICE_ARPNS_OFFLOAD, len);
  985. SVCMAP(WMI_TLV_SERVICE_NLO,
  986. WMI_SERVICE_NLO, len);
  987. SVCMAP(WMI_TLV_SERVICE_GTK_OFFLOAD,
  988. WMI_SERVICE_GTK_OFFLOAD, len);
  989. SVCMAP(WMI_TLV_SERVICE_SCAN_SCH,
  990. WMI_SERVICE_SCAN_SCH, len);
  991. SVCMAP(WMI_TLV_SERVICE_CSA_OFFLOAD,
  992. WMI_SERVICE_CSA_OFFLOAD, len);
  993. SVCMAP(WMI_TLV_SERVICE_CHATTER,
  994. WMI_SERVICE_CHATTER, len);
  995. SVCMAP(WMI_TLV_SERVICE_COEX_FREQAVOID,
  996. WMI_SERVICE_COEX_FREQAVOID, len);
  997. SVCMAP(WMI_TLV_SERVICE_PACKET_POWER_SAVE,
  998. WMI_SERVICE_PACKET_POWER_SAVE, len);
  999. SVCMAP(WMI_TLV_SERVICE_FORCE_FW_HANG,
  1000. WMI_SERVICE_FORCE_FW_HANG, len);
  1001. SVCMAP(WMI_TLV_SERVICE_GPIO,
  1002. WMI_SERVICE_GPIO, len);
  1003. SVCMAP(WMI_TLV_SERVICE_STA_DTIM_PS_MODULATED_DTIM,
  1004. WMI_SERVICE_STA_DTIM_PS_MODULATED_DTIM, len);
  1005. SVCMAP(WMI_TLV_SERVICE_STA_UAPSD_BASIC_AUTO_TRIG,
  1006. WMI_SERVICE_STA_UAPSD_BASIC_AUTO_TRIG, len);
  1007. SVCMAP(WMI_TLV_SERVICE_STA_UAPSD_VAR_AUTO_TRIG,
  1008. WMI_SERVICE_STA_UAPSD_VAR_AUTO_TRIG, len);
  1009. SVCMAP(WMI_TLV_SERVICE_STA_KEEP_ALIVE,
  1010. WMI_SERVICE_STA_KEEP_ALIVE, len);
  1011. SVCMAP(WMI_TLV_SERVICE_TX_ENCAP,
  1012. WMI_SERVICE_TX_ENCAP, len);
  1013. SVCMAP(WMI_TLV_SERVICE_AP_PS_DETECT_OUT_OF_SYNC,
  1014. WMI_SERVICE_AP_PS_DETECT_OUT_OF_SYNC, len);
  1015. SVCMAP(WMI_TLV_SERVICE_EARLY_RX,
  1016. WMI_SERVICE_EARLY_RX, len);
  1017. SVCMAP(WMI_TLV_SERVICE_STA_SMPS,
  1018. WMI_SERVICE_STA_SMPS, len);
  1019. SVCMAP(WMI_TLV_SERVICE_FWTEST,
  1020. WMI_SERVICE_FWTEST, len);
  1021. SVCMAP(WMI_TLV_SERVICE_STA_WMMAC,
  1022. WMI_SERVICE_STA_WMMAC, len);
  1023. SVCMAP(WMI_TLV_SERVICE_TDLS,
  1024. WMI_SERVICE_TDLS, len);
  1025. SVCMAP(WMI_TLV_SERVICE_BURST,
  1026. WMI_SERVICE_BURST, len);
  1027. SVCMAP(WMI_TLV_SERVICE_MCC_BCN_INTERVAL_CHANGE,
  1028. WMI_SERVICE_MCC_BCN_INTERVAL_CHANGE, len);
  1029. SVCMAP(WMI_TLV_SERVICE_ADAPTIVE_OCS,
  1030. WMI_SERVICE_ADAPTIVE_OCS, len);
  1031. SVCMAP(WMI_TLV_SERVICE_BA_SSN_SUPPORT,
  1032. WMI_SERVICE_BA_SSN_SUPPORT, len);
  1033. SVCMAP(WMI_TLV_SERVICE_FILTER_IPSEC_NATKEEPALIVE,
  1034. WMI_SERVICE_FILTER_IPSEC_NATKEEPALIVE, len);
  1035. SVCMAP(WMI_TLV_SERVICE_WLAN_HB,
  1036. WMI_SERVICE_WLAN_HB, len);
  1037. SVCMAP(WMI_TLV_SERVICE_LTE_ANT_SHARE_SUPPORT,
  1038. WMI_SERVICE_LTE_ANT_SHARE_SUPPORT, len);
  1039. SVCMAP(WMI_TLV_SERVICE_BATCH_SCAN,
  1040. WMI_SERVICE_BATCH_SCAN, len);
  1041. SVCMAP(WMI_TLV_SERVICE_QPOWER,
  1042. WMI_SERVICE_QPOWER, len);
  1043. SVCMAP(WMI_TLV_SERVICE_PLMREQ,
  1044. WMI_SERVICE_PLMREQ, len);
  1045. SVCMAP(WMI_TLV_SERVICE_THERMAL_MGMT,
  1046. WMI_SERVICE_THERMAL_MGMT, len);
  1047. SVCMAP(WMI_TLV_SERVICE_RMC,
  1048. WMI_SERVICE_RMC, len);
  1049. SVCMAP(WMI_TLV_SERVICE_MHF_OFFLOAD,
  1050. WMI_SERVICE_MHF_OFFLOAD, len);
  1051. SVCMAP(WMI_TLV_SERVICE_COEX_SAR,
  1052. WMI_SERVICE_COEX_SAR, len);
  1053. SVCMAP(WMI_TLV_SERVICE_BCN_TXRATE_OVERRIDE,
  1054. WMI_SERVICE_BCN_TXRATE_OVERRIDE, len);
  1055. SVCMAP(WMI_TLV_SERVICE_NAN,
  1056. WMI_SERVICE_NAN, len);
  1057. SVCMAP(WMI_TLV_SERVICE_L1SS_STAT,
  1058. WMI_SERVICE_L1SS_STAT, len);
  1059. SVCMAP(WMI_TLV_SERVICE_ESTIMATE_LINKSPEED,
  1060. WMI_SERVICE_ESTIMATE_LINKSPEED, len);
  1061. SVCMAP(WMI_TLV_SERVICE_OBSS_SCAN,
  1062. WMI_SERVICE_OBSS_SCAN, len);
  1063. SVCMAP(WMI_TLV_SERVICE_TDLS_OFFCHAN,
  1064. WMI_SERVICE_TDLS_OFFCHAN, len);
  1065. SVCMAP(WMI_TLV_SERVICE_TDLS_UAPSD_BUFFER_STA,
  1066. WMI_SERVICE_TDLS_UAPSD_BUFFER_STA, len);
  1067. SVCMAP(WMI_TLV_SERVICE_TDLS_UAPSD_SLEEP_STA,
  1068. WMI_SERVICE_TDLS_UAPSD_SLEEP_STA, len);
  1069. SVCMAP(WMI_TLV_SERVICE_IBSS_PWRSAVE,
  1070. WMI_SERVICE_IBSS_PWRSAVE, len);
  1071. SVCMAP(WMI_TLV_SERVICE_LPASS,
  1072. WMI_SERVICE_LPASS, len);
  1073. SVCMAP(WMI_TLV_SERVICE_EXTSCAN,
  1074. WMI_SERVICE_EXTSCAN, len);
  1075. SVCMAP(WMI_TLV_SERVICE_D0WOW,
  1076. WMI_SERVICE_D0WOW, len);
  1077. SVCMAP(WMI_TLV_SERVICE_HSOFFLOAD,
  1078. WMI_SERVICE_HSOFFLOAD, len);
  1079. SVCMAP(WMI_TLV_SERVICE_ROAM_HO_OFFLOAD,
  1080. WMI_SERVICE_ROAM_HO_OFFLOAD, len);
  1081. SVCMAP(WMI_TLV_SERVICE_RX_FULL_REORDER,
  1082. WMI_SERVICE_RX_FULL_REORDER, len);
  1083. SVCMAP(WMI_TLV_SERVICE_DHCP_OFFLOAD,
  1084. WMI_SERVICE_DHCP_OFFLOAD, len);
  1085. SVCMAP(WMI_TLV_SERVICE_STA_RX_IPA_OFFLOAD_SUPPORT,
  1086. WMI_SERVICE_STA_RX_IPA_OFFLOAD_SUPPORT, len);
  1087. SVCMAP(WMI_TLV_SERVICE_MDNS_OFFLOAD,
  1088. WMI_SERVICE_MDNS_OFFLOAD, len);
  1089. SVCMAP(WMI_TLV_SERVICE_SAP_AUTH_OFFLOAD,
  1090. WMI_SERVICE_SAP_AUTH_OFFLOAD, len);
  1091. }
  1092. #undef SVCMAP
  1093. struct wmi_tlv {
  1094. __le16 len;
  1095. __le16 tag;
  1096. u8 value[0];
  1097. } __packed;
  1098. #define WMI_TLV_MGMT_RX_NUM_RSSI 4
  1099. struct wmi_tlv_mgmt_rx_ev {
  1100. __le32 channel;
  1101. __le32 snr;
  1102. __le32 rate;
  1103. __le32 phy_mode;
  1104. __le32 buf_len;
  1105. __le32 status;
  1106. __le32 rssi[WMI_TLV_MGMT_RX_NUM_RSSI];
  1107. } __packed;
  1108. struct wmi_tlv_abi_version {
  1109. __le32 abi_ver0;
  1110. __le32 abi_ver1;
  1111. __le32 abi_ver_ns0;
  1112. __le32 abi_ver_ns1;
  1113. __le32 abi_ver_ns2;
  1114. __le32 abi_ver_ns3;
  1115. } __packed;
  1116. enum wmi_tlv_hw_bd_id {
  1117. WMI_TLV_HW_BD_LEGACY = 0,
  1118. WMI_TLV_HW_BD_QCA6174 = 1,
  1119. WMI_TLV_HW_BD_QCA2582 = 2,
  1120. };
  1121. struct wmi_tlv_hw_bd_info {
  1122. u8 rev;
  1123. u8 project_id;
  1124. u8 custom_id;
  1125. u8 reference_design_id;
  1126. } __packed;
  1127. struct wmi_tlv_svc_rdy_ev {
  1128. __le32 fw_build_vers;
  1129. struct wmi_tlv_abi_version abi;
  1130. __le32 phy_capability;
  1131. __le32 max_frag_entry;
  1132. __le32 num_rf_chains;
  1133. __le32 ht_cap_info;
  1134. __le32 vht_cap_info;
  1135. __le32 vht_supp_mcs;
  1136. __le32 hw_min_tx_power;
  1137. __le32 hw_max_tx_power;
  1138. __le32 sys_cap_info;
  1139. __le32 min_pkt_size_enable;
  1140. __le32 max_bcn_ie_size;
  1141. __le32 num_mem_reqs;
  1142. __le32 max_num_scan_chans;
  1143. __le32 hw_bd_id; /* 0 means hw_bd_info is invalid */
  1144. struct wmi_tlv_hw_bd_info hw_bd_info[5];
  1145. } __packed;
  1146. struct wmi_tlv_rdy_ev {
  1147. struct wmi_tlv_abi_version abi;
  1148. struct wmi_mac_addr mac_addr;
  1149. __le32 status;
  1150. } __packed;
  1151. struct wmi_tlv_resource_config {
  1152. __le32 num_vdevs;
  1153. __le32 num_peers;
  1154. __le32 num_offload_peers;
  1155. __le32 num_offload_reorder_bufs;
  1156. __le32 num_peer_keys;
  1157. __le32 num_tids;
  1158. __le32 ast_skid_limit;
  1159. __le32 tx_chain_mask;
  1160. __le32 rx_chain_mask;
  1161. __le32 rx_timeout_pri[4];
  1162. __le32 rx_decap_mode;
  1163. __le32 scan_max_pending_reqs;
  1164. __le32 bmiss_offload_max_vdev;
  1165. __le32 roam_offload_max_vdev;
  1166. __le32 roam_offload_max_ap_profiles;
  1167. __le32 num_mcast_groups;
  1168. __le32 num_mcast_table_elems;
  1169. __le32 mcast2ucast_mode;
  1170. __le32 tx_dbg_log_size;
  1171. __le32 num_wds_entries;
  1172. __le32 dma_burst_size;
  1173. __le32 mac_aggr_delim;
  1174. __le32 rx_skip_defrag_timeout_dup_detection_check;
  1175. __le32 vow_config;
  1176. __le32 gtk_offload_max_vdev;
  1177. __le32 num_msdu_desc;
  1178. __le32 max_frag_entries;
  1179. __le32 num_tdls_vdevs;
  1180. __le32 num_tdls_conn_table_entries;
  1181. __le32 beacon_tx_offload_max_vdev;
  1182. __le32 num_multicast_filter_entries;
  1183. __le32 num_wow_filters;
  1184. __le32 num_keep_alive_pattern;
  1185. __le32 keep_alive_pattern_size;
  1186. __le32 max_tdls_concurrent_sleep_sta;
  1187. __le32 max_tdls_concurrent_buffer_sta;
  1188. __le32 wmi_send_separate;
  1189. __le32 num_ocb_vdevs;
  1190. __le32 num_ocb_channels;
  1191. __le32 num_ocb_schedules;
  1192. __le32 host_capab;
  1193. } __packed;
  1194. struct wmi_tlv_init_cmd {
  1195. struct wmi_tlv_abi_version abi;
  1196. __le32 num_host_mem_chunks;
  1197. } __packed;
  1198. struct wmi_tlv_pdev_set_param_cmd {
  1199. __le32 pdev_id; /* not used yet */
  1200. __le32 param_id;
  1201. __le32 param_value;
  1202. } __packed;
  1203. struct wmi_tlv_pdev_set_rd_cmd {
  1204. __le32 pdev_id; /* not used yet */
  1205. __le32 regd;
  1206. __le32 regd_2ghz;
  1207. __le32 regd_5ghz;
  1208. __le32 conform_limit_2ghz;
  1209. __le32 conform_limit_5ghz;
  1210. } __packed;
  1211. struct wmi_tlv_scan_chan_list_cmd {
  1212. __le32 num_scan_chans;
  1213. } __packed;
  1214. struct wmi_tlv_start_scan_cmd {
  1215. struct wmi_start_scan_common common;
  1216. __le32 burst_duration_ms;
  1217. __le32 num_channels;
  1218. __le32 num_bssids;
  1219. __le32 num_ssids;
  1220. __le32 ie_len;
  1221. __le32 num_probes;
  1222. } __packed;
  1223. struct wmi_tlv_vdev_start_cmd {
  1224. __le32 vdev_id;
  1225. __le32 requestor_id;
  1226. __le32 bcn_intval;
  1227. __le32 dtim_period;
  1228. __le32 flags;
  1229. struct wmi_ssid ssid;
  1230. __le32 bcn_tx_rate;
  1231. __le32 bcn_tx_power;
  1232. __le32 num_noa_descr;
  1233. __le32 disable_hw_ack;
  1234. } __packed;
  1235. enum {
  1236. WMI_TLV_PEER_TYPE_DEFAULT = 0, /* generic / non-BSS / self-peer */
  1237. WMI_TLV_PEER_TYPE_BSS = 1,
  1238. WMI_TLV_PEER_TYPE_TDLS = 2,
  1239. WMI_TLV_PEER_TYPE_HOST_MAX = 127,
  1240. WMI_TLV_PEER_TYPE_ROAMOFFLOAD_TMP = 128,
  1241. };
  1242. struct wmi_tlv_peer_create_cmd {
  1243. __le32 vdev_id;
  1244. struct wmi_mac_addr peer_addr;
  1245. __le32 peer_type;
  1246. } __packed;
  1247. struct wmi_tlv_peer_assoc_cmd {
  1248. struct wmi_mac_addr mac_addr;
  1249. __le32 vdev_id;
  1250. __le32 new_assoc;
  1251. __le32 assoc_id;
  1252. __le32 flags;
  1253. __le32 caps;
  1254. __le32 listen_intval;
  1255. __le32 ht_caps;
  1256. __le32 max_mpdu;
  1257. __le32 mpdu_density;
  1258. __le32 rate_caps;
  1259. __le32 nss;
  1260. __le32 vht_caps;
  1261. __le32 phy_mode;
  1262. __le32 ht_info[2];
  1263. __le32 num_legacy_rates;
  1264. __le32 num_ht_rates;
  1265. } __packed;
  1266. struct wmi_tlv_pdev_suspend {
  1267. __le32 pdev_id; /* not used yet */
  1268. __le32 opt;
  1269. } __packed;
  1270. struct wmi_tlv_pdev_set_wmm_cmd {
  1271. __le32 pdev_id; /* not used yet */
  1272. __le32 dg_type; /* no idea.. */
  1273. } __packed;
  1274. struct wmi_tlv_vdev_wmm_params {
  1275. __le32 dummy;
  1276. struct wmi_wmm_params params;
  1277. } __packed;
  1278. struct wmi_tlv_vdev_set_wmm_cmd {
  1279. __le32 vdev_id;
  1280. struct wmi_tlv_vdev_wmm_params vdev_wmm_params[4];
  1281. } __packed;
  1282. struct wmi_tlv_phyerr_ev {
  1283. __le32 num_phyerrs;
  1284. __le32 tsf_l32;
  1285. __le32 tsf_u32;
  1286. __le32 buf_len;
  1287. } __packed;
  1288. enum wmi_tlv_dbglog_param {
  1289. WMI_TLV_DBGLOG_PARAM_LOG_LEVEL = 1,
  1290. WMI_TLV_DBGLOG_PARAM_VDEV_ENABLE,
  1291. WMI_TLV_DBGLOG_PARAM_VDEV_DISABLE,
  1292. WMI_TLV_DBGLOG_PARAM_VDEV_ENABLE_BITMAP,
  1293. WMI_TLV_DBGLOG_PARAM_VDEV_DISABLE_BITMAP,
  1294. };
  1295. enum wmi_tlv_dbglog_log_level {
  1296. WMI_TLV_DBGLOG_LOG_LEVEL_VERBOSE = 0,
  1297. WMI_TLV_DBGLOG_LOG_LEVEL_INFO,
  1298. WMI_TLV_DBGLOG_LOG_LEVEL_INFO_LVL_1,
  1299. WMI_TLV_DBGLOG_LOG_LEVEL_INFO_LVL_2,
  1300. WMI_TLV_DBGLOG_LOG_LEVEL_WARN,
  1301. WMI_TLV_DBGLOG_LOG_LEVEL_ERR,
  1302. };
  1303. #define WMI_TLV_DBGLOG_BITMAP_MAX_IDS 512
  1304. #define WMI_TLV_DBGLOG_BITMAP_MAX_WORDS (WMI_TLV_DBGLOG_BITMAP_MAX_IDS / \
  1305. sizeof(__le32))
  1306. #define WMI_TLV_DBGLOG_ALL_MODULES 0xffff
  1307. #define WMI_TLV_DBGLOG_LOG_LEVEL_VALUE(module_id, log_level) \
  1308. (((module_id << 16) & 0xffff0000) | \
  1309. ((log_level << 0) & 0x000000ff))
  1310. struct wmi_tlv_dbglog_cmd {
  1311. __le32 param;
  1312. __le32 value;
  1313. } __packed;
  1314. struct wmi_tlv_resume_cmd {
  1315. __le32 reserved;
  1316. } __packed;
  1317. struct wmi_tlv_req_stats_cmd {
  1318. __le32 stats_id; /* wmi_stats_id */
  1319. __le32 vdev_id;
  1320. struct wmi_mac_addr peer_macaddr;
  1321. } __packed;
  1322. struct wmi_tlv_vdev_stats {
  1323. __le32 vdev_id;
  1324. __le32 beacon_snr;
  1325. __le32 data_snr;
  1326. __le32 num_tx_frames[4]; /* per-AC */
  1327. __le32 num_rx_frames;
  1328. __le32 num_tx_frames_retries[4];
  1329. __le32 num_tx_frames_failures[4];
  1330. __le32 num_rts_fail;
  1331. __le32 num_rts_success;
  1332. __le32 num_rx_err;
  1333. __le32 num_rx_discard;
  1334. __le32 num_tx_not_acked;
  1335. __le32 tx_rate_history[10];
  1336. __le32 beacon_rssi_history[10];
  1337. } __packed;
  1338. struct wmi_tlv_pktlog_enable {
  1339. __le32 reserved;
  1340. __le32 filter;
  1341. } __packed;
  1342. struct wmi_tlv_pktlog_disable {
  1343. __le32 reserved;
  1344. } __packed;
  1345. enum wmi_tlv_bcn_tx_status {
  1346. WMI_TLV_BCN_TX_STATUS_OK,
  1347. WMI_TLV_BCN_TX_STATUS_XRETRY,
  1348. WMI_TLV_BCN_TX_STATUS_DROP,
  1349. WMI_TLV_BCN_TX_STATUS_FILTERED,
  1350. };
  1351. struct wmi_tlv_bcn_tx_status_ev {
  1352. __le32 vdev_id;
  1353. __le32 tx_status;
  1354. } __packed;
  1355. struct wmi_tlv_bcn_prb_info {
  1356. __le32 caps;
  1357. __le32 erp;
  1358. u8 ies[0];
  1359. } __packed;
  1360. struct wmi_tlv_bcn_tmpl_cmd {
  1361. __le32 vdev_id;
  1362. __le32 tim_ie_offset;
  1363. __le32 buf_len;
  1364. } __packed;
  1365. struct wmi_tlv_prb_tmpl_cmd {
  1366. __le32 vdev_id;
  1367. __le32 buf_len;
  1368. } __packed;
  1369. struct wmi_tlv_p2p_go_bcn_ie {
  1370. __le32 vdev_id;
  1371. __le32 ie_len;
  1372. } __packed;
  1373. enum wmi_tlv_diag_item_type {
  1374. WMI_TLV_DIAG_ITEM_TYPE_FW_EVENT,
  1375. WMI_TLV_DIAG_ITEM_TYPE_FW_LOG,
  1376. WMI_TLV_DIAG_ITEM_TYPE_FW_DEBUG_MSG,
  1377. };
  1378. struct wmi_tlv_diag_item {
  1379. u8 type;
  1380. u8 reserved;
  1381. __le16 len;
  1382. __le32 timestamp;
  1383. __le32 code;
  1384. u8 payload[0];
  1385. } __packed;
  1386. struct wmi_tlv_diag_data_ev {
  1387. __le32 num_items;
  1388. } __packed;
  1389. struct wmi_tlv_sta_keepalive_cmd {
  1390. __le32 vdev_id;
  1391. __le32 enabled;
  1392. __le32 method; /* WMI_STA_KEEPALIVE_METHOD_ */
  1393. __le32 interval; /* in seconds */
  1394. } __packed;
  1395. struct wmi_tlv_stats_ev {
  1396. __le32 stats_id; /* WMI_STAT_ */
  1397. __le32 num_pdev_stats;
  1398. __le32 num_vdev_stats;
  1399. __le32 num_peer_stats;
  1400. __le32 num_bcnflt_stats;
  1401. __le32 num_chan_stats;
  1402. } __packed;
  1403. struct wmi_tlv_p2p_noa_ev {
  1404. __le32 vdev_id;
  1405. } __packed;
  1406. struct wmi_tlv_roam_ev {
  1407. __le32 vdev_id;
  1408. __le32 reason;
  1409. __le32 rssi;
  1410. } __packed;
  1411. struct wmi_tlv_wow_add_del_event_cmd {
  1412. __le32 vdev_id;
  1413. __le32 is_add;
  1414. __le32 event_bitmap;
  1415. } __packed;
  1416. struct wmi_tlv_wow_enable_cmd {
  1417. __le32 enable;
  1418. } __packed;
  1419. struct wmi_tlv_wow_host_wakeup_ind {
  1420. __le32 reserved;
  1421. } __packed;
  1422. struct wmi_tlv_wow_event_info {
  1423. __le32 vdev_id;
  1424. __le32 flag;
  1425. __le32 wake_reason;
  1426. __le32 data_len;
  1427. } __packed;
  1428. enum wmi_tlv_pattern_type {
  1429. WOW_PATTERN_MIN = 0,
  1430. WOW_BITMAP_PATTERN = WOW_PATTERN_MIN,
  1431. WOW_IPV4_SYNC_PATTERN,
  1432. WOW_IPV6_SYNC_PATTERN,
  1433. WOW_WILD_CARD_PATTERN,
  1434. WOW_TIMER_PATTERN,
  1435. WOW_MAGIC_PATTERN,
  1436. WOW_IPV6_RA_PATTERN,
  1437. WOW_IOAC_PKT_PATTERN,
  1438. WOW_IOAC_TMR_PATTERN,
  1439. WOW_PATTERN_MAX
  1440. };
  1441. #define WOW_DEFAULT_BITMAP_PATTERN_SIZE 148
  1442. #define WOW_DEFAULT_BITMASK_SIZE 148
  1443. struct wmi_tlv_wow_bitmap_pattern {
  1444. u8 patternbuf[WOW_DEFAULT_BITMAP_PATTERN_SIZE];
  1445. u8 bitmaskbuf[WOW_DEFAULT_BITMASK_SIZE];
  1446. __le32 pattern_offset;
  1447. __le32 pattern_len;
  1448. __le32 bitmask_len;
  1449. __le32 pattern_id;
  1450. } __packed;
  1451. struct wmi_tlv_wow_add_pattern_cmd {
  1452. __le32 vdev_id;
  1453. __le32 pattern_id;
  1454. __le32 pattern_type;
  1455. } __packed;
  1456. struct wmi_tlv_wow_del_pattern_cmd {
  1457. __le32 vdev_id;
  1458. __le32 pattern_id;
  1459. __le32 pattern_type;
  1460. } __packed;
  1461. /* TDLS Options */
  1462. enum wmi_tlv_tdls_options {
  1463. WMI_TLV_TDLS_OFFCHAN_EN = BIT(0),
  1464. WMI_TLV_TDLS_BUFFER_STA_EN = BIT(1),
  1465. WMI_TLV_TDLS_SLEEP_STA_EN = BIT(2),
  1466. };
  1467. struct wmi_tdls_set_state_cmd {
  1468. __le32 vdev_id;
  1469. __le32 state;
  1470. __le32 notification_interval_ms;
  1471. __le32 tx_discovery_threshold;
  1472. __le32 tx_teardown_threshold;
  1473. __le32 rssi_teardown_threshold;
  1474. __le32 rssi_delta;
  1475. __le32 tdls_options;
  1476. __le32 tdls_peer_traffic_ind_window;
  1477. __le32 tdls_peer_traffic_response_timeout_ms;
  1478. __le32 tdls_puapsd_mask;
  1479. __le32 tdls_puapsd_inactivity_time_ms;
  1480. __le32 tdls_puapsd_rx_frame_threshold;
  1481. } __packed;
  1482. struct wmi_tdls_peer_update_cmd {
  1483. __le32 vdev_id;
  1484. struct wmi_mac_addr peer_macaddr;
  1485. __le32 peer_state;
  1486. } __packed;
  1487. enum {
  1488. WMI_TLV_TDLS_PEER_QOS_AC_VO = BIT(0),
  1489. WMI_TLV_TDLS_PEER_QOS_AC_VI = BIT(1),
  1490. WMI_TLV_TDLS_PEER_QOS_AC_BK = BIT(2),
  1491. WMI_TLV_TDLS_PEER_QOS_AC_BE = BIT(3),
  1492. };
  1493. #define WMI_TLV_TDLS_PEER_SP_MASK 0x60
  1494. #define WMI_TLV_TDLS_PEER_SP_LSB 5
  1495. struct wmi_tdls_peer_capab {
  1496. __le32 peer_qos;
  1497. __le32 buff_sta_support;
  1498. __le32 off_chan_support;
  1499. __le32 peer_curr_operclass;
  1500. __le32 self_curr_operclass;
  1501. __le32 peer_chan_len;
  1502. __le32 peer_operclass_len;
  1503. u8 peer_operclass[WMI_TDLS_MAX_SUPP_OPER_CLASSES];
  1504. __le32 is_peer_responder;
  1505. __le32 pref_offchan_num;
  1506. __le32 pref_offchan_bw;
  1507. } __packed;
  1508. struct wmi_tlv_adaptive_qcs {
  1509. __le32 enable;
  1510. } __packed;
  1511. /**
  1512. * wmi_tlv_tx_pause_id - firmware tx queue pause reason types
  1513. *
  1514. * @WMI_TLV_TX_PAUSE_ID_MCC: used for by multi-channel firmware scheduler.
  1515. * Only vdev_map is valid.
  1516. * @WMI_TLV_TX_PAUSE_ID_AP_PEER_PS: peer in AP mode is asleep.
  1517. * Only peer_id is valid.
  1518. * @WMI_TLV_TX_PAUSE_ID_AP_PEER_UAPSD: Only peer_id and tid_map are valid.
  1519. * @WMI_TLV_TX_PAUSE_ID_P2P_CLI_NOA: Only vdev_map is valid.
  1520. * @WMI_TLV_TX_PAUSE_ID_P2P_GO_PS: Only vdev_map is valid.
  1521. * @WMI_TLV_TX_PAUSE_ID_STA_ADD_BA: Only peer_id and tid_map are valid.
  1522. * @WMI_TLV_TX_PAUSE_ID_AP_PS: When all peers are asleep in AP mode. Only
  1523. * vdev_map is valid.
  1524. * @WMI_TLV_TX_PAUSE_ID_IBSS_PS: When all peers are asleep in IBSS mode. Only
  1525. * vdev_map is valid.
  1526. * @WMI_TLV_TX_PAUSE_ID_HOST: Host itself requested tx pause.
  1527. */
  1528. enum wmi_tlv_tx_pause_id {
  1529. WMI_TLV_TX_PAUSE_ID_MCC = 1,
  1530. WMI_TLV_TX_PAUSE_ID_AP_PEER_PS = 2,
  1531. WMI_TLV_TX_PAUSE_ID_AP_PEER_UAPSD = 3,
  1532. WMI_TLV_TX_PAUSE_ID_P2P_CLI_NOA = 4,
  1533. WMI_TLV_TX_PAUSE_ID_P2P_GO_PS = 5,
  1534. WMI_TLV_TX_PAUSE_ID_STA_ADD_BA = 6,
  1535. WMI_TLV_TX_PAUSE_ID_AP_PS = 7,
  1536. WMI_TLV_TX_PAUSE_ID_IBSS_PS = 8,
  1537. WMI_TLV_TX_PAUSE_ID_HOST = 21,
  1538. };
  1539. enum wmi_tlv_tx_pause_action {
  1540. WMI_TLV_TX_PAUSE_ACTION_STOP,
  1541. WMI_TLV_TX_PAUSE_ACTION_WAKE,
  1542. };
  1543. struct wmi_tlv_tx_pause_ev {
  1544. __le32 pause_id;
  1545. __le32 action;
  1546. __le32 vdev_map;
  1547. __le32 peer_id;
  1548. __le32 tid_map;
  1549. } __packed;
  1550. void ath10k_wmi_tlv_attach(struct ath10k *ar);
  1551. #endif