wmi_services.h 45 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686
  1. /*
  2. * Copyright (c) 2011-2021 The Linux Foundation. All rights reserved.
  3. *
  4. * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
  5. *
  6. *
  7. * Permission to use, copy, modify, and/or distribute this software for
  8. * any purpose with or without fee is hereby granted, provided that the
  9. * above copyright notice and this permission notice appear in all
  10. * copies.
  11. *
  12. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
  13. * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
  14. * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
  15. * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
  16. * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
  17. * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  18. * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  19. * PERFORMANCE OF THIS SOFTWARE.
  20. */
  21. /*
  22. * This file was originally distributed by Qualcomm Atheros, Inc.
  23. * under proprietary terms before Copyright ownership was assigned
  24. * to the Linux Foundation.
  25. */
  26. #ifndef _WMI_SERVICES_H_
  27. #define _WMI_SERVICES_H_
  28. #ifdef __cplusplus
  29. extern "C" {
  30. #endif
  31. typedef enum {
  32. WMI_SERVICE_BEACON_OFFLOAD=0, /* beacon offload */
  33. WMI_SERVICE_SCAN_OFFLOAD=1, /* scan offload */
  34. WMI_SERVICE_ROAM_SCAN_OFFLOAD=2, /* roam scan offload */
  35. WMI_SERVICE_BCN_MISS_OFFLOAD=3, /* beacon miss offload */
  36. WMI_SERVICE_STA_PWRSAVE=4, /* fake sleep + basic power save */
  37. WMI_SERVICE_STA_ADVANCED_PWRSAVE=5, /* uapsd, pspoll, force sleep */
  38. WMI_SERVICE_AP_UAPSD=6, /* uapsd on AP */
  39. WMI_SERVICE_AP_DFS=7, /* DFS on AP */
  40. WMI_SERVICE_11AC=8, /* supports 11ac */
  41. WMI_SERVICE_BLOCKACK=9, /* Supports triggering ADDBA/DELBA from host*/
  42. WMI_SERVICE_PHYERR=10, /* PHY error */
  43. WMI_SERVICE_BCN_FILTER=11, /* Beacon filter support */
  44. WMI_SERVICE_RTT=12, /* RTT (round trip time) support */
  45. WMI_SERVICE_WOW=13, /* WOW Support */
  46. WMI_SERVICE_RATECTRL_CACHE=14, /* Rate-control caching */
  47. WMI_SERVICE_IRAM_TIDS=15, /* TIDs in IRAM */
  48. WMI_SERVICE_ARPNS_OFFLOAD=16, /* ARP NS Offload support for STA vdev */
  49. WMI_SERVICE_NLO=17, /* Network list offload service */
  50. WMI_SERVICE_GTK_OFFLOAD=18, /* GTK offload */
  51. WMI_SERVICE_SCAN_SCH=19, /* Scan Scheduler Service */
  52. WMI_SERVICE_CSA_OFFLOAD=20, /* CSA offload service */
  53. WMI_SERVICE_CHATTER=21, /* Chatter service */
  54. WMI_SERVICE_COEX_FREQAVOID=22, /* FW report freq range to avoid */
  55. WMI_SERVICE_PACKET_POWER_SAVE=23, /* packet power save service */
  56. WMI_SERVICE_FORCE_FW_HANG=24, /* Service to test the firmware recovery mechanism */
  57. WMI_SERVICE_GPIO=25, /* GPIO service */
  58. WMI_SERVICE_STA_DTIM_PS_MODULATED_DTIM=26, /* Modulated DTIM support */
  59. WMI_STA_UAPSD_BASIC_AUTO_TRIG=27, /* Basic version of station UAPSD AC Trigger Generation Method with
  60. * variable tigger periods (service, delay, and suspend intervals) */
  61. WMI_STA_UAPSD_VAR_AUTO_TRIG=28, /* Station UAPSD AC Trigger Generation Method with variable
  62. * trigger periods (service, delay, and suspend intervals) */
  63. WMI_SERVICE_STA_KEEP_ALIVE=29, /* Serivce to support the STA KEEP ALIVE mechanism */
  64. WMI_SERVICE_TX_ENCAP=30, /* Packet type for TX encapsulation */
  65. WMI_SERVICE_AP_PS_DETECT_OUT_OF_SYNC=31, /* detect out-of-sync sleeping stations */
  66. WMI_SERVICE_EARLY_RX=32, /* adaptive early-rx feature */
  67. WMI_SERVICE_STA_SMPS=33, /* STA MIMO-PS */
  68. WMI_SERVICE_FWTEST=34, /* Firmware test service */
  69. WMI_SERVICE_STA_WMMAC=35, /* STA WMMAC */
  70. WMI_SERVICE_TDLS=36, /* TDLS support */
  71. WMI_SERVICE_BURST=37, /* SIFS spaced burst support */
  72. WMI_SERVICE_MCC_BCN_INTERVAL_CHANGE=38, /* Dynamic beaocn interval change for SAP/P2p GO in MCC scenario */
  73. WMI_SERVICE_ADAPTIVE_OCS=39, /* Service to support adaptive off-channel scheduler */
  74. WMI_SERVICE_BA_SSN_SUPPORT=40, /* target will provide Sequence number for the peer/tid combo */
  75. WMI_SERVICE_FILTER_IPSEC_NATKEEPALIVE=41,
  76. WMI_SERVICE_WLAN_HB=42, /* wlan HB service */
  77. WMI_SERVICE_LTE_ANT_SHARE_SUPPORT=43, /* support LTE/WLAN antenna sharing */
  78. WMI_SERVICE_BATCH_SCAN=44, /* Service to support batch scan */
  79. WMI_SERVICE_QPOWER=45, /* QPower service */
  80. WMI_SERVICE_PLMREQ=46,
  81. WMI_SERVICE_THERMAL_MGMT=47, /* thermal throttling support,
  82. * compared with
  83. * WMI_SERVICE_THERM_THROT,
  84. * this service only reports
  85. * current temperature to host,
  86. * and host will do the thermal
  87. * throttling. */
  88. WMI_SERVICE_RMC=48, /* RMC support */
  89. WMI_SERVICE_MHF_OFFLOAD=49, /* multi-hop forwarding offload */
  90. WMI_SERVICE_COEX_SAR=50, /* target support SAR tx limit from WMI_PDEV_PARAM_TXPOWER_LIMITxG */
  91. WMI_SERVICE_BCN_TXRATE_OVERRIDE=51, /* Will support the bcn/prb rsp rate override */
  92. WMI_SERVICE_NAN=52, /* Neighbor Awareness Network */
  93. WMI_SERVICE_L1SS_STAT=53, /* L1SS statistics counter report */
  94. WMI_SERVICE_ESTIMATE_LINKSPEED=54, /* Linkspeed Estimation per peer */
  95. WMI_SERVICE_OBSS_SCAN=55, /* Service to support OBSS scan */
  96. WMI_SERVICE_TDLS_OFFCHAN=56, /* TDLS off channel support */
  97. WMI_SERVICE_TDLS_UAPSD_BUFFER_STA=57, /* TDLS UAPSD Buffer STA support */
  98. WMI_SERVICE_TDLS_UAPSD_SLEEP_STA=58, /* TDLS UAPSD Sleep STA support */
  99. WMI_SERVICE_IBSS_PWRSAVE=59, /* IBSS power save support */
  100. WMI_SERVICE_LPASS=60, /* Service to support LPASS */
  101. WMI_SERVICE_EXTSCAN=61, /* Extended Scans */
  102. WMI_SERVICE_D0WOW=62, /* D0-WOW Support */
  103. WMI_SERVICE_HSOFFLOAD=63, /* Hotspot offload feature Support */
  104. WMI_SERVICE_ROAM_HO_OFFLOAD=64, /* roam handover offload */
  105. WMI_SERVICE_RX_FULL_REORDER=65, /* target-based Rx full reorder */
  106. WMI_SERVICE_DHCP_OFFLOAD=66, /* DHCP offload support */
  107. WMI_SERVICE_STA_RX_IPA_OFFLOAD_SUPPORT=67, /* STA RX DATA offload to IPA support */
  108. WMI_SERVICE_MDNS_OFFLOAD=68, /* mDNS responder offload support */
  109. WMI_SERVICE_SAP_AUTH_OFFLOAD=69, /* softap auth offload */
  110. WMI_SERVICE_DUAL_BAND_SIMULTANEOUS_SUPPORT=70, /* Dual Band Simultaneous support */
  111. WMI_SERVICE_OCB=71, /* OCB mode support */
  112. WMI_SERVICE_AP_ARPNS_OFFLOAD=72, /* arp offload support for ap mode vdev */
  113. WMI_SERVICE_PER_BAND_CHAINMASK_SUPPORT=73, /* Per band chainmask support */
  114. WMI_SERVICE_PACKET_FILTER_OFFLOAD=74, /* Per vdev packet filters */
  115. WMI_SERVICE_MGMT_TX_HTT=75, /* Mgmt Tx via HTT interface */
  116. WMI_SERVICE_MGMT_TX_WMI=76, /* Mgmt Tx via WMI interface */
  117. WMI_SERVICE_EXT_MSG=77, /* WMI_SERVICE_READY_EXT msg follows */
  118. WMI_SERVICE_MAWC=78, /* Motion Aided WiFi Connectivity (MAWC)*/
  119. WMI_SERVICE_PEER_ASSOC_CONF=79, /* target will send ASSOC_CONF after ASSOC_CMD is processed */
  120. WMI_SERVICE_EGAP=80, /* enhanced green ap support */
  121. WMI_SERVICE_STA_PMF_OFFLOAD=81, /* FW supports 11W PMF Offload for STA */
  122. WMI_SERVICE_UNIFIED_WOW_CAPABILITY=82, /* FW supports unified D0 and D3 wow */
  123. WMI_SERVICE_ENHANCED_PROXY_STA=83, /* Enhanced ProxySTA mode support */
  124. WMI_SERVICE_ATF=84, /* Air Time Fairness support */
  125. WMI_SERVICE_COEX_GPIO=85, /* BTCOEX GPIO support */
  126. WMI_SERVICE_AUX_SPECTRAL_INTF=86, /* Aux Radio enhancement support for ignoring spectral scan intf from main radios */
  127. WMI_SERVICE_AUX_CHAN_LOAD_INTF=87, /* Aux Radio enhancement support for ignoring chan load intf from main radios*/
  128. WMI_SERVICE_BSS_CHANNEL_INFO_64=88, /* BSS channel info (freq, noise floor, 64-bit counters) event support */
  129. WMI_SERVICE_ENTERPRISE_MESH=89, /* Enterprise MESH Service Support */
  130. WMI_SERVICE_RESTRT_CHNL_SUPPORT=90, /* Restricted Channel Support */
  131. WMI_SERVICE_BPF_OFFLOAD=91, /* FW supports bpf offload */
  132. WMI_SERVICE_SYNC_DELETE_CMDS=92, /* FW sends response event for Peer, Vdev delete commands */
  133. WMI_SERVICE_SMART_ANTENNA_SW_SUPPORT=93,
  134. WMI_SERVICE_SMART_ANTENNA_HW_SUPPORT=94,
  135. WMI_SERVICE_RATECTRL_LIMIT_MAX_MIN_RATES=95, /* allow per-peer tx MCS min/max limits by host */
  136. WMI_SERVICE_NAN_DATA=96, /* FW supports NAN data */
  137. WMI_SERVICE_NAN_RTT=97, /* FW supports NAN RTT */
  138. WMI_SERVICE_11AX=98, /* FW supports 802.11ax */
  139. /* WMI_SERVICE_DEPRECATED_REPLACE
  140. * FW supports these new WMI commands, to be used rather than
  141. * deprecated matching commands:
  142. * - WMI_PDEV_SET_PCL_CMDID (vs. WMI_SOC_SET_PCL_CMDID)
  143. * - WMI_PDEV_SET_HW_MODE_CMDID (vs. WMI_SOC_SET_HW_MODE_CMDID)
  144. * - WMI_PDEV_SET_MAC_CONFIG_CMDID (vs. WMI_SOC_SET_DUAL_MAC_CONFIG_CMDID)
  145. * - WMI_PDEV_SET_ANTENNA_MODE_CMDID (vs. WMI_SOC_SET_ANTENNA_MODE_CMDID)
  146. * - WMI_VDEV_SET_DSCP_TID_MAP_CMDID (vs. WMI_VDEV_SET_WMM_PARAMS_CMDID)
  147. */
  148. WMI_SERVICE_DEPRECATED_REPLACE=99,
  149. WMI_SERVICE_TDLS_CONN_TRACKER_IN_HOST_MODE=100, /* FW supports a new mode that allows to run connection tracker in host */
  150. WMI_SERVICE_ENHANCED_MCAST_FILTER=101, /* FW supports enhanced multicast filtering (of mcast IP inside ucast WLAN) */
  151. WMI_SERVICE_PERIODIC_CHAN_STAT_SUPPORT=102, /* periodic channel stats service */
  152. WMI_SERVICE_MESH_11S=103, /* 11s mesh service support */
  153. WMI_SERVICE_HALF_RATE_QUARTER_RATE_SUPPORT=104, /* FW+HW supports 10 MHz (half rate) and 5 MHz (quarter rate) channel bandwidth */
  154. WMI_SERVICE_VDEV_RX_FILTER=105, /* Support per-vdev specs of which rx frames to filter out */
  155. WMI_SERVICE_P2P_LISTEN_OFFLOAD_SUPPORT=106,
  156. WMI_SERVICE_MARK_FIRST_WAKEUP_PACKET=107, /* FW supports marking the first data packet which wakes the host from suspend */
  157. WMI_SERVICE_MULTIPLE_MCAST_FILTER_SET=108, /* FW supports command that can add/delete multiple mcast filters */
  158. /* WMI_SERVICE_HOST_MANAGED_RX_REORDER -
  159. * FW supports host-managed RX reorder.
  160. * Host managed RX reorder involves RX BA state machine handling
  161. * on peer/TID basis, REO configuration for HW based reordering/PN
  162. * check and processing reorder exceptions generated by HW.
  163. */
  164. WMI_SERVICE_HOST_MANAGED_RX_REORDER=109,
  165. /* Specify whether the target supports the following WMI messages for
  166. * reading / writing its flash memory:
  167. * WMI_READ_DATA_FROM_FLASH_CMDID,
  168. * WMI_READ_DATA_FROM_FLASH_EVENTID,
  169. * WMI_TRANSFER_DATA_TO_FLASH_CMDID,
  170. * WMI_TRANSFER_DATA_TO_FLASH_COMPLETE_EVENTID,
  171. */
  172. WMI_SERVICE_FLASH_RDWR_SUPPORT=110,
  173. WMI_SERVICE_WLAN_STATS_REPORT=111, /* support WLAN stats report */
  174. /* WMI_SERVICE_TX_MSDU_ID_NEW_PARTITION_SUPPORT -
  175. * FW supports bigger MSDU ID partition which is defined as HTT_TX_IPA_NEW_MSDU_ID_SPACE_BEGIN
  176. * When both host and FW support new partition, FW uses HTT_TX_IPA_NEW_MSDU_ID_SPACE_BEGIN
  177. * If host doesn't support, FW falls back to HTT_TX_IPA_MSDU_ID_SPACE_BEGIN
  178. * Handshaking is done through WMI_INIT and WMI service ready
  179. */
  180. WMI_SERVICE_TX_MSDU_ID_NEW_PARTITION_SUPPORT=112, /* support bigger MSDU ID partition */
  181. WMI_SERVICE_DFS_PHYERR_OFFLOAD=113,
  182. WMI_SERVICE_RCPI_SUPPORT=114,
  183. WMI_SERVICE_FW_MEM_DUMP_SUPPORT=115, /* Support FW Memory dump */
  184. WMI_SERVICE_PEER_STATS_INFO=116, /* support per peer stats info */
  185. WMI_SERVICE_REGULATORY_DB=117, /* support regulatory database in FW */
  186. WMI_SERVICE_11D_OFFLOAD=118, /* support 11D scan offload in FW */
  187. WMI_SERVICE_HW_DATA_FILTERING=119,
  188. WMI_SERVICE_MULTIPLE_VDEV_RESTART=120, /* Support for single command for multiple vdev restart */
  189. WMI_SERVICE_PKT_ROUTING=121, /* Support for routing specific data packets to selected destination rings */
  190. WMI_SERVICE_CHECK_CAL_VERSION=122, /* Support cal version check */
  191. WMI_SERVICE_OFFCHAN_TX_WMI=123, /* Support offchan data/mgmt tx over wmi */
  192. WMI_SERVICE_8SS_TX_BFEE = 124, /* support for 8Ant Bfee */
  193. WMI_SERVICE_EXTENDED_NSS_SUPPORT=125, /* Extend NSS support for 80Mhz and 160Mhz */
  194. WMI_SERVICE_ACK_TIMEOUT=126, /* Support TX ack timeout configurations */
  195. WMI_SERVICE_PDEV_BSS_CHANNEL_INFO_64 = 127, /* BSS channel info (freq, noise floor, rx clear, cycles 64-bit counters) event support */
  196. WMI_MAX_SERVICE=128, /* max service */
  197. /* NOTE:
  198. * The above service flags are delivered in the wmi_service_bitmap field
  199. * of the WMI_SERVICE_READY_EVENT message.
  200. * The below service flags are not delivered in the
  201. * WMI_SERVICE_READY_EVENT message's wmi_service_bitmap field,
  202. * but instead are delivered in the
  203. * fixed_param.wmi_service_segment_bitmap portion
  204. * of the WMI_SERVICE_AVAILABLE_EVENT message, with
  205. * fixed_param.wmi_service_segment_offset
  206. * set to 128.
  207. * The WMI_SERVICE_AVAILABLE_EVENT message immediately precedes the
  208. * WMI_SERVICE_READY_EVENT message.
  209. */
  210. WMI_SERVICE_CHAN_LOAD_INFO=128, /* The values in WMI_CHAN_INFO_EVENTID is the difference in cycle counters */
  211. WMI_SERVICE_TX_PPDU_INFO_STATS_SUPPORT=129, /* support to report tx ppdu info stats via htt events */
  212. WMI_SERVICE_VDEV_LIMIT_OFFCHAN_SUPPORT=130, /* support to report the offchannel duration limiting capability on connected interface */
  213. WMI_SERVICE_FILS_SUPPORT=131, /* support for FILS */
  214. WMI_SERVICE_WLAN_OIC_PING_OFFLOAD=132, /* Support for wlan OIC ping service */
  215. WMI_SERVICE_WLAN_DHCP_RENEW=133, /* Support for wlan DHCP Renew service */
  216. WMI_SERVICE_MAWC_SUPPORT = 134, /* Support for MAWC service */
  217. WMI_SERVICE_VDEV_LATENCY_CONFIG=135, /* support for vdev latency config */
  218. WMI_SERVICE_PDEV_UPDATE_CTLTABLE_SUPPORT=136, /* support for pdev update ctl table */
  219. WMI_SERVICE_PKTLOG_SUPPORT_OVER_HTT=137, /* upload pktlog data over HTT communication channel */
  220. WMI_SERVICE_VDEV_MULTI_GROUP_KEY_SUPPORT=138, /* Support for vdev level multi group key */
  221. WMI_SERVICE_SCAN_PHYMODE_SUPPORT=139, /* Support for phymode also with channel in offchan WMI_START_SCAN_CMDID */
  222. WMI_SERVICE_THERM_THROT = 140, /* Support thermal cfg and indication on AP.
  223. * Compared with WMI_SERVICE_THERMAL_MGMT,
  224. * this service is to allow thermal tool to
  225. * configure thermal throttling threshold
  226. * for different levels and pass down duty
  227. * cycle value. FW will also report thermal
  228. * throttling status to host through this
  229. * service. */
  230. WMI_SERVICE_BCN_OFFLOAD_START_STOP_SUPPORT=141, /* support dynamically enabling / disabling beacon tx offload */
  231. WMI_SERVICE_WOW_WAKEUP_BY_TIMER_PATTERN=142, /* fw to support waking up host from wow pattern timer */
  232. WMI_SERVICE_PEER_MAP_UNMAP_V2_SUPPORT=143, /* Support for HTT peer map/unmap V2 */
  233. WMI_SERVICE_OFFCHAN_DATA_TID_SUPPORT=144, /* Support new tid for offchan data/mgmt tx over wmi */
  234. WMI_SERVICE_RX_PROMISC_ENABLE_SUPPORT=145, /* Support enabling/disabling rx promiscuous mode as directed by a WMI message from the host */
  235. WMI_SERVICE_SUPPORT_DIRECT_DMA=146, /* indicates target supports direct DMA,
  236. * host will rely on WMI_DMA_RING_CAPABILITIES to get supported modules */
  237. WMI_SERVICE_AP_OBSS_DETECTION_OFFLOAD=147, /* Support SAP mode OBSS detection offload */
  238. WMI_SERVICE_11K_NEIGHBOUR_REPORT_SUPPORT=148, /* Support for 11k neighbor report */
  239. WMI_SERVICE_LISTEN_INTERVAL_OFFLOAD_SUPPORT=149, /* Support listen interval offload */
  240. WMI_SERVICE_BSS_COLOR_OFFLOAD=150, /* Support BSS color change for STA, OBSS color collision detection in FW for AP and STA */
  241. WMI_SERVICE_RUNTIME_DPD_RECAL=151, /* Runtime DPD recalibration support */
  242. WMI_SERVICE_STA_TWT=152, /* support for TWT (Target Wake Time) of STA */
  243. WMI_SERVICE_AP_TWT=153, /* support for TWT (Target Wake Time) on AP */
  244. WMI_SERVICE_GMAC_OFFLOAD_SUPPORT=154, /* Support for GMAC */
  245. WMI_SERVICE_SPOOF_MAC_SUPPORT=155, /* support for SERVICE_SPOOF_MAC */
  246. WMI_SERVICE_PEER_TID_CONFIGS_SUPPORT=156, /* Support TID specific configurations per peer (ack,aggr,retry,rate) */
  247. WMI_SERVICE_VDEV_SWRETRY_PER_AC_CONFIG_SUPPORT=157, /* Support vdev software retries configuration per AC (non aggr retry/aggr retry) */
  248. WMI_SERVICE_DUAL_BEACON_ON_SINGLE_MAC_SCC_SUPPORT=158, /* Support dual beacon on same channel on single MAC */
  249. WMI_SERVICE_DUAL_BEACON_ON_SINGLE_MAC_MCC_SUPPORT=159, /* Support dual beacon on different channel on single MAC */
  250. WMI_SERVICE_MOTION_DET=160, /* support for motion detection config */
  251. WMI_SERVICE_INFRA_MBSSID=161, /* support infra multi-BSSID feature */
  252. WMI_SERVICE_OBSS_SPATIAL_REUSE=162, /* support spatial reuse feature */
  253. WMI_SERVICE_VDEV_DIFFERENT_BEACON_INTERVAL_SUPPORT=163, /* Support different beacon intervals on different VDEVs */
  254. WMI_SERVICE_NAN_DBS_SUPPORT=164, /* Support DBS for NAN discovery interface */
  255. WMI_SERVICE_NDI_DBS_SUPPORT=165, /* Support DBS for NAN data interface */
  256. WMI_SERVICE_NAN_SAP_SUPPORT=166, /* Support SAP Concurrency for NAN Discovery interface */
  257. WMI_SERVICE_NDI_SAP_SUPPORT=167, /* Support SAP Concurrency for NAN Data interface */
  258. WMI_SERVICE_CFR_CAPTURE_SUPPORT=168, /* Support to capture uncompressed Channel Frequency Response (CFR) */
  259. WMI_SERVICE_CFR_CAPTURE_IND_MSG_TYPE_1=169, /* Message type HTT_PEER_CFR_CAPTURE_MSG_TYPE_1 in HTT_T2H_MSG_TYPE_CFR_DUMP_COMPL_IND */
  260. WMI_SERVICE_ESP_SUPPORT=170, /* Support for Estimated Service Params IE */
  261. WMI_SERVICE_PEER_CHWIDTH_CHANGE = 171, /* Support for host to update/re-intersect the node capability */
  262. WMI_SERVICE_WLAN_HPCS_PULSE=172, /* Support for High Precision Clock Synchronization feature */
  263. WMI_SERVICE_PER_VDEV_CHAINMASK_CONFIG_SUPPORT=173, /* Support for configuring chainmask per VDEV */
  264. WMI_SERVICE_TX_DATA_MGMT_ACK_RSSI=174, /* ACK RSSI indication to host for host TX data and mgmt frame */
  265. WMI_SERVICE_NAN_DISABLE_SUPPORT=175, /* indicates firmware is dependent on host to disable NAN incase of concurrencies */
  266. WMI_SERVICE_NAN_DISABLE_SUPPORT__prototype = WMI_SERVICE_NAN_DISABLE_SUPPORT, /* alias, to clarify that NAN_DISABLE_SUPPORT is for prototype testing purposes */
  267. WMI_SERVICE_HTT_H2T_NO_HTC_HDR_LEN_IN_MSG_LEN=176, /* indicates FW supports uniformly excluding the HTC header length from the HTT H2T message length */
  268. WMI_SERVICE_COEX_SUPPORT_UNEQUAL_ISOLATION=177, /* indicates FW supports FDD coex with unequal isolation between BT and each of the WLAN chains */
  269. /* WMI_SERVICE_HW_DB2DBM_CONVERSION_SUPPORT:
  270. * Support HW+FW db2dbm conversion for RSSI fields in rx descriptors
  271. * and host/target messages.
  272. * If enabled, HW and FW will convert SNR to RSSI by adding noise floor
  273. * and rssi_offset from BDF to RSSI values that formerly had units of
  274. * dB w.r.t. noise floor to convert the units to dBm.
  275. * MAC beacon RSSI average register return a signed value for RSSI,
  276. * as well as hw descriptors.
  277. *-------------------------------------------------------------------------
  278. * The RSSI field of below WMI messages will be changed to dBm units:
  279. * WMI_MGMT_RX_EVENTID:
  280. * wmi_mgmt_rx_hdr.rssi_ctl;
  281. * WMI_UPDATE_STATS_EVENTID:
  282. * wmi_rssi_stats.rssi_avg_beacon;
  283. * wmi_rssi_stats.rssi_avg_data;
  284. * wmi_snr_info.bcn_snr;
  285. * wmi_snr_info.dat_snr;
  286. * wmi_vdev_stats.bcn_rssi_history; (NOT USED IN FW)
  287. * wmi_peer_stats.peer_rssi;
  288. * WMI_WOW_WAKEUP_HOST_EVENTID:
  289. * wmi_rssi_breach_event_fixed_param.rssi;
  290. * wmi_roam_event_fixed_param.rssi;
  291. * WMI_PEER_STA_KICKOUT_EVENTID:
  292. * wmi_peer_sta_kickout_event_fixed_param.rssi;
  293. * WMI_PASSPOINT_MATCH_EVENTID:
  294. * wmi_passpoint_event_hdr.rssi;(NOT USED IN FW)
  295. * WMI_PEER_INFO_EVENTID:
  296. * wmi_peer_info.rssi;
  297. * WMI_ROAM_SYNCH_EVENTID:
  298. * wmi_roam_synch_event_fixed_param.rssi;
  299. * WMI_ROAM_SCAN_STATS_EVENTID:
  300. * wmi_roam_scan_stats_event_fixed_param.rssi;
  301. * wmi_pdev_div_rssi_antid_event_id:
  302. * wmi_pdev_div_rssi_antid_event_fixed_param.chain_rssi;
  303. * wmi_rssi_breach_event_id
  304. * WMI_INST_RSSI_STATS_EVENTID:
  305. * wmi_inst_rssi_stats_resp_fixed_param.iRSSI;
  306. * RSSI thresholds configured by host
  307. * WMI_ROAM_SCAN_RSSI_THRESHOLD
  308. * roam_scan_rssi_thresh snr
  309. * boost_threshold_5g snr
  310. * penalty_threshold_5g snr
  311. * good_rssi_threshold snr
  312. * roam_bg_scan_bad_rssi_thresh snr
  313. * roam_earlystop_thres_min snr
  314. * roam_earlystop_thres_max snr
  315. * WMI_ROAM_AP_PROFILE
  316. * rssi_abs_thresh snr
  317. * WMI_ROAM_CONFIGURE_MAWC_CMDID:
  318. * best_ap_rssi_threshold Snr
  319. * wmi_ap_profile.rssi_abs_thresh;
  320. * WMI_ROAM_SCAN_RSSI_THRESHOLD:
  321. * wmi_roam_scan_extended_threshold_param.boost_threshold_5g;
  322. * wmi_roam_scan_extended_threshold_param.penalty_threshold_5g;
  323. * wmi_roam_scan_extended_threshold_param.good_rssi_threshold;
  324. * wmi_roam_scan_rssi_threshold_fixed_param.roam_scan_rssi_thresh;
  325. * wmi_roam_bg_scan_roaming_param.roam_bg_scan_bad_rssi_thresh;
  326. * WMI_VDEV_SPECTRAL_SCAN_CONFIGURE_CMDID:
  327. * wmi_vdev_spectral_configure_cmd_fixed_param.spectral_scan_rssi_rpt_mode;
  328. * wmi_vdev_spectral_configure_cmd_fixed_param.spectral_scan_rssi_thr;
  329. * WMI_RSSI_BREACH_MONITOR_CONFIG_CMDID:
  330. * wmi_rssi_breach_monitor_config_fixed_param.low_rssi_breach_threshold;
  331. * wmi_rssi_breach_monitor_config_fixed_param.hi_rssi_breach_threshold;
  332. * WMI_STA_SMPS_PARAM_CMDID:
  333. * wmi_sta_smps_param.value of below cmd IDs:
  334. * // RSSI threshold to enter Dynamic SMPS mode from inactive mode
  335. * WMI_STA_SMPS_PARAM_UPPER_RSSI_THRESH = 0,
  336. * // RSSI threshold to enter Stalled-D-SMPS mode from D-SMPS mode
  337. * // or to enter D-SMPS mode from Stalled-D-SMPS mode
  338. * WMI_STA_SMPS_PARAM_STALL_RSSI_THRESH = 1,
  339. * // RSSI threshold to disable SMPS modes
  340. * WMI_STA_SMPS_PARAM_LOWER_RSSI_THRESH = 2,
  341. * // Upper threshold for beacon-RSSI. Used to reduce RX chainmask.
  342. * WMI_STA_SMPS_PARAM_UPPER_BRSSI_THRESH = 3,
  343. * // Lower threshold for beacon-RSSI. Used to increase RX chainmask
  344. * WMI_STA_SMPS_PARAM_LOWER_BRSSI_THRESH = 4,
  345. * // Enable/Disable DTIM 1chRx feature
  346. * WMI_STA_SMPS_PARAM_DTIM_1CHRX_ENABLE = 5
  347. * WMI_TDLS_SET_STATE_CMDID:
  348. * wmi_tdls_set_state_cmd_fixed_param.rssi_teardown_threshold;
  349. * wmi_tdls_set_state_cmd_fixed_param.rssi_delta;
  350. *-------------------------------------------------------------------------
  351. * The RSSI fields of below HTT data type will change to dBm units:
  352. * PREPACK struct htt_tx_wbm_completion.ack_frame_rssi;
  353. * PREPACK struct htt_tx_wbm_transmit_status.ack_frame_rssi;
  354. * htt_ppdu_stats_user_cmpltn_common_tlv.ack_rssi;
  355. */
  356. WMI_SERVICE_HW_DB2DBM_CONVERSION_SUPPORT = 178,
  357. WMI_SERVICE_SUPPORT_EXTEND_ADDRESS=179, /* indicates firmware supports host memory addresses larger than 32 bit */
  358. WMI_SERVICE_BEACON_RECEPTION_STATS=180, /* Support per vdev beacon stats info */
  359. WMI_SERVICE_FETCH_TX_PN=181,
  360. WMI_SERVICE_PEER_UNMAP_RESPONSE_SUPPORT = 182, /* support peer ids unmap response from host */
  361. WMI_SERVICE_TX_PER_PEER_AMPDU_SIZE = 183, /* indicate FW support per peer TX AMPDU size */
  362. WMI_SERVICE_BSS_COLOR_SWITCH_COUNT = 184, /* Firmware supports bss-color switch count handling */
  363. WMI_SERVICE_HTT_PEER_STATS_SUPPORT = 185, /* Supports the feature where FW sends peer stats autonomously to Host via the HTT_T2H PEER_STATS_IND message */
  364. WMI_SERVICE_UL_RU26_ALLOWED = 186, /* indicates support for RU26 in UL OFDMA */
  365. WMI_SERVICE_GET_MWS_COEX_STATE = 187, /* FW provides MWS Coex info */
  366. WMI_SERVICE_GET_MWS_DPWB_STATE = 188, /* FW provides LTE-Coex Dynamic Power Back-off info */
  367. WMI_SERVICE_GET_MWS_TDM_STATE = 189, /* FW provides LTE-Coex TDM info */
  368. WMI_SERVICE_GET_MWS_IDRX_STATE = 190, /* FW provides LTE-Coex IDRx info */
  369. WMI_SERVICE_GET_MWS_ANTENNA_SHARING_STATE = 191, /* FW provides LTE-Coex Antenna sharing info */
  370. WMI_SERVICE_ENHANCED_TPC_CONFIG_EVENT = 192, /* FW provides enhanced tx power control configuration dump */
  371. WMI_SERVICE_WLM_STATS_REQUEST = 193, /* FW supports WLAN latency manager stats request */
  372. WMI_SERVICE_EXT_PEER_TID_CONFIGS_SUPPORT = 194, /* Extended Peer Tid configuration support for QoS related settings */
  373. WMI_SERVICE_WPA3_FT_SAE_SUPPORT = 195, /* FW roaming support for WPA3_FT_SAE */
  374. WMI_SERVICE_WPA3_FT_SUITE_B_SUPPORT = 196, /* FW roaming support for WPA3_FT_SUITE_B */
  375. WMI_SERVICE_VOW_ENABLE=197, /* FW supports a set of features to optimize VoW performance */
  376. WMI_SERVICE_CFR_CAPTURE_IND_EVT_TYPE_1 = 198, /* support WMI_PEER_CFR_CAPTURE_EVENT msg */
  377. WMI_SERVICE_BROADCAST_TWT = 199, /* support of Broadcast TWT (Target Wake Time) for STA/AP */
  378. WMI_SERVICE_RAP_DETECTION_SUPPORT = 200, /* indicate FW supports rogue AP detection */
  379. WMI_SERVICE_PS_TDCC = 201, /* FW support tx_duty_cycle_control powersave */
  380. WMI_SERVICE_THREE_WAY_COEX_CONFIG_LEGACY = 202, /* BTCOEX Three-way CoEx Config Legacy Feature support */
  381. WMI_SERVICE_THREE_WAY_COEX_CONFIG_OVERRIDE = 203, /* BTCOEX Three-way CoEx Config Override Feature support */
  382. WMI_SERVICE_TX_PWR_PER_PEER = 204, /* target supports per-peer tx pwr spec via WMI_PEER_USE_FIXED_PWR */
  383. WMI_SERVICE_STA_PLUS_STA_SUPPORT = 205, /* indicates target supports STA + STA concurrency */
  384. WMI_SERVICE_WPA3_FT_FILS = 206,
  385. WMI_SERVICE_ADAPTIVE_11R_ROAM = 207, /* Indicates FW supports adaptive 11r roaming */
  386. WMI_SERVICE_CHAN_RF_CHARACTERIZATION_INFO = 208, /* FW provides RF scores for chans in the service ready extension msg */
  387. WMI_SERVICE_FW_IFACE_COMBINATION_SUPPORT = 209, /* FW sends WMI_IFACE_COMBINATION_IND_EVENT msg immediately after WMI_SERVICE_READY_EXT_EVENT msg */
  388. WMI_SERVICE_TX_COMPL_TSF64 = 210, /* FW supports 64-bit tx TSF in HTT_T2H TX_COMPL_IND msg */
  389. WMI_SERVICE_DSM_ROAM_FILTER = 211, /* FW supports data stall AP mitigation while roaming */
  390. WMI_SERVICE_PACKET_CAPTURE_SUPPORT = 212, /* target supports packet capture Mode (SMART MU) */
  391. WMI_SERVICE_PER_PEER_HTT_STATS_RESET = 213, /* FW supports HTT per peer stats reset facility */
  392. WMI_SERVICE_DELETE_ALL_PEER_SUPPORT = 214, /* target supports cmd to delete all peers within a vdev */
  393. WMI_SERVICE_DYNAMIC_HW_MODE_SWITCH_SUPPORT = 215, /* target supports Dynamic HW mode switch */
  394. WMI_SERVICE_MSDU_FLOW_OVERRIDE_BY_HOST = 216, /* target supports flow override feature */
  395. WMI_SERVICE_WMI_CHAN_RF_CHARACTERIZATION_INFO_EVENT= 217, /* target will send WMI_CHAN_RF_CHARACTERIZATION_INFO_EVENT */
  396. WMI_SERVICE_RX_FSE_SUPPORT = 218, /* target supports flow search through RxOLE FSE hw block */
  397. WMI_SERVICE_FREQINFO_IN_METADATA = 219, /* FW provides freq_info during spectral scan */
  398. WMI_SERVICE_EXT2_MSG = 220, /* WMI_SERVICE_READY_EXT2 msg is sent by target */
  399. WMI_SERVICE_WPA3_SAE_ROAM_SUPPORT = 221, /* Indicates FW supports WPA3 SAE roaming */
  400. WMI_SERVICE_WPA3_OWE_ROAM_SUPPORT = 222, /* Indicates FW supports WPA3 OWE roaming */
  401. WMI_SERVICE_AUDIO_AGGR = 223, /* Indicates FW supports audio frame aggregation */
  402. WMI_SERVICE_6GHZ_SUPPORT = 224, /* Indicates FW supports 6GHZ (scan, connection and so on) */
  403. /* WMI_SERVICE_QMI_STATS_SUPPORT
  404. * Indicates FW supports stat request command WMI_REQUEST_LINK_STATS_CMDID
  405. * and WMI_REQUEST_STATS_CMDID coming from QMI which will be used in
  406. * runtime PM suspend.
  407. */
  408. WMI_SERVICE_QMI_STATS_SUPPORT = 225,
  409. WMI_SERVICE_CFR_CAPTURE_FILTER_SUPPORT = 226, /* Indicate FW Supports Channel Frequency Response (CFR) via WMI_CFR_CAPTURE_FILTER_CMDID */
  410. WMI_SERVICE_STA_BSS_MAX_IDLE_TIME = 227, /* Indicate FW supports BSS Max Idle time feature via WMI_VDEV_BSS_MAX_IDLE_TIME_CMDID */
  411. WMI_SERVICE_BIP_CIPHER_SUPPORT = 228, /* FW supports new BIP_CIPHER suites (WMI_CIPHER_BIP_xxx) */
  412. WMI_SERVICE_BW_165MHZ_SUPPORT = 229, /* Indicate FW supports bandwidth 165MHz (i.e. 6 GHz in addition to 2.4 and 5) */
  413. WMI_SERVICE_BW_RESTRICTED_80P80_SUPPORT = WMI_SERVICE_BW_165MHZ_SUPPORT,
  414. WMI_SERVICE_NAN_NDI_SAP_SAP_SCC_SUPPORT = 230, /* Support SAP + SAP + NAN discovery + NDI concurrency in SCC mode */
  415. WMI_SERVICE_NAN_VDEV_SUPPORT = 231, /* indicates firmware is dependent on host to create NAN vdev */
  416. WMI_SERVICE_AUDIO_SYNC_SUPPORT = 232, /* Indicate FW supports Audio sync feature */
  417. WMI_SERVICE_DUAL_STA_ROAM_SUPPORT = 233, /* Indidate FW support dual STA roaming */
  418. WMI_SERVICE_PEER_CREATE_CONF = 234, /* Target will send WMI_PEER_CREATE_CONF_EVENTID after WMI_PEER_CREATE_CMDID is processed */
  419. WMI_SERVICE_MULTIPLE_VDEV_RESTART_RESPONSE_SUPPORT = 235, /* indicates firmware supports Multiple vdev restart response */
  420. WMI_SERVICE_ROAM_SCAN_CHANNEL_LIST_TO_HOST_SUPPORT = 236, /* Indicates firmware supports sending roam scan channel list to host */
  421. WMI_SERVICE_PEER_DELETE_NO_PEER_FLUSH_TIDS_CMD = 237, /* Host should not send WMI_PEER_FLUSH_TIDS_CMD as part of peer delete */
  422. WMI_SERVICE_NSS_RATIO_TO_HOST_SUPPORT = 238, /* Indicates firmware supports sending NSS ratio info to host */
  423. WMI_SERVICE_WPA3_SUITEB_ROAM_SUPPORT = 239, /* Indicates FW supports WPA3 SUITE B roaming */
  424. WMI_SERVICE_PERIODIC_FRAME_INJECT_SUPPORT = 240, /* Indicates FW supports periodic frame injection */
  425. WMI_SERVICE_NDI_NDI_STA_SUPPORT = 241, /* Indicates FW support for STA+NDI+NDI */
  426. WMI_SERVICE_BW_TRUE_160_SUPPORT = 242, /* Indicates FW supports true 160 BW */
  427. WMI_SERVICE_HOST_SCAN_STOP_VDEV_ALL_SUPPORT = 243, /* Indicates FW supports scan stop mode WMI_SCN_STOP_HOST_VAP_ALL */
  428. WMI_SERVICE_BEACON_PROTECTION_SUPPORT = 244, /* Indicates FW supports WPA3 Beacon protection */
  429. WMI_SERVICE_EMA_AP_SUPPORT = 245, /* FW supports EMA AP feature */
  430. WMI_SERVICE_PEER_POWER_SAVE_DURATION_SUPPORT = 246, /* Support for adding Power save duration per client */
  431. WMI_SERVICE_5_DOT_9GHZ_SUPPORT = 247, /* Indicates FW supports new 5.9GHZ (scan, connection and so on) */
  432. WMI_SERVICE_MU_PREAMBLE_PUNCTURE_SUPPORT = 248, /* Indicates FW supports MU preamble puncture */
  433. WMI_SERVICE_SRG_SRP_SPATIAL_REUSE_SUPPORT = 249, /* Support for SRG, SRP based spatial reuse support */
  434. WMI_REQUEST_CTRL_PATH_STATS_REQUEST = 250, /* FW supports control path stats */
  435. WMI_SERVICE_TPC_STATS_EVENT = 251, /* FW support to dump the TPC tables */
  436. WMI_SERVICE_NO_INTERBAND_MCC_SUPPORT = 252, /* Indicates FW doesn't support interband MCC */
  437. WMI_SERVICE_MBSS_PARAM_IN_VDEV_START_SUPPORT = 253, /* FW supports VDEV's MBSS param exchange in VDEV start command */
  438. WMI_SERVICE_CONFIGURE_ROAM_TRIGGER_PARAM_SUPPORT = 254, /* FW supports ROAM trigger configuration param TLV */
  439. WMI_SERVICE_CFR_TA_RA_AS_FP_SUPPORT = 255, /* indicates FW support to program CFR TA/RA filtered packets as Filter pass */
  440. /******* ADD NEW SERVICES UP TO 256 HERE *******/
  441. WMI_MAX_EXT_SERVICE = 256,
  442. /* NOTE:
  443. * The above service flags are delivered in the
  444. * fixed_param.wmi_service_segment_bitmap portion
  445. * of the WMI_SERVICE_AVAILABLE_EVENT message, with
  446. * fixed_param.wmi_service_segment_offset
  447. * set to 128.
  448. * The below service flags can be delivered in one of two ways:
  449. * 1. The target can deliver a 2nd SERVICE_AVAILABLE message, with
  450. * fixed_param.wmi_service_segment_offset
  451. * set to 256.
  452. * (This method is acceptable, but not recommended.)
  453. * 2. The target can populate the wmi_service_ext_bitmap[] TLV array
  454. * within the WMI_SERVICE_AVAILABLE_EVENT message.
  455. * (This method is recommended.)
  456. */
  457. /******* ADD NEW SERVICES 256 AND BEYOND HERE *******/
  458. WMI_SERVICE_CFR_CAPTURE_COUNT_SUPPORT = 256, /* indicates FW support to program CFR capture mode and capture count */
  459. WMI_SERVICE_OCV_SUPPORT = 257, /* FW supports OCV (Operating Channel Validation) */
  460. WMI_SERVICE_LL_STATS_PER_CHAN_RX_TX_TIME_SUPPORT = 258, /* Indicates firmware support sending per channel own tx & rx time in radio stats of LL stats. */
  461. WMI_SERVICE_THERMAL_MULTI_CLIENT_SUPPORT = 259, /* Indicates FW Thermal Mgr will support multiple clients for mitigation */
  462. WMI_SERVICE_NAN_SEND_NAN_ENABLE_RESPONSE_TO_HOST = 260, /* Indicates FW will include an additional TLV in nan enable response for Host driver to parse */
  463. WMI_SERVICE_UNIFIED_LL_GET_STA_CMD_SUPPORT = 261, /* Indicates that FW supports handling Link Layer and Get Station stats Commands together (WMI_REQUEST_UNIFIED_LL_GET_STA_CMDID) */
  464. WMI_SERVICE_FSE_CMEM_ALLOC_SUPPORT = 262, /* Indicates that FW supports non-secure CMEM allocation for FSE table */
  465. WMI_SERVICE_PASSIVE_SCAN_START_TIME_ENHANCE = 263, /* Indicates FW support to not skip beacon if passive scan dwell time + channel switch delay is lesser than beacon interval */
  466. WMI_SERVICE_QOS_NULL_FRAME_TX_OVER_WMI = 264, /* Indicates that FW supports tx of QoS null frame downloaded through WMI interface */
  467. WMI_SERVICE_SCAN_CONFIG_PER_CHANNEL = 265, /* Indicates that FW supports per channel configuration support in the scan start command */
  468. WMI_SERVICE_CSA_BEACON_TEMPLATE = 266, /* Indicates that FW supports updating CSA count in beacon template */
  469. WMI_SERVICE_BROADCAST_TWT_REQUESTER = 267, /* Indicates FW supports Broadcast TWT REQUESTER */
  470. WMI_SERVICE_BROADCAST_TWT_RESPONDER = 268, /* Indicates FW supports Broadcast TWT RESPONDER */
  471. WMI_SERVICE_TWT_NUDGE = 269, /* Indicates that FW supports TWT Nudge command and event */
  472. WMI_SERVICE_TWT_STATS = 270, /* Indicates that FW supports TWT Get_stats command and event */
  473. WMI_SERVICE_TWT_ALL_DIALOG_ID = 271, /* Indicates that FW supports TWT ALL dialog ID(255) for all commands and events, except for TWT add dialog and TWT get stats */
  474. WMI_SERVICE_SPLIT_AST_SUPPORT = 272, /* Indicate that FW supports SPLIT AST table */
  475. WMI_SERVICE_SPECTRAL_SCAN_DISABLED = 273, /* Indicates that SKU does not support normal spectral scan capabilities */
  476. /* WMI_SERVICE_UNIFIED_LL_GET_STA_OVER_QMI_SUPPORT:
  477. * This service flag indicates that FW can support receiving a
  478. * WMI_REQUEST_UNIFIED_LL_GET_STA_CMDID command request from the host
  479. * over the QMI communication link.
  480. * If the target receives WMI_REQUEST_UNIFIED_LL_GET_STA_CMDID over QMI,
  481. * any of the event messages sent in response (WMI_UPDATE_STATS_EVENTID,
  482. * WMI_IFACE_LINK_STATS_EVENTID, WMI_PEER_LINK_STATS_EVENTID,
  483. * WMI_RADIO_LINK_STATS_EVENTID, WMI_RADIO_TX_POWER_LEVEL_STATS_EVENTID)
  484. * will be delivered over the QMI communication link.
  485. * Any such messages delivered over QMI will use the same message format
  486. * as if they had been delivered over the usual WMI communication link.
  487. * This service flag indicates QMI is supported for these stats messages
  488. * in addition to WMI, not instead of WMI - if the host sends the
  489. * WMI_REQUEST_UNIFIED_LL_GET_STA_CMDID over the usual WMI communication
  490. * link, the stats event messages sent by the target in response will
  491. * be sent on the WMI communication link.
  492. */
  493. WMI_SERVICE_UNIFIED_LL_GET_STA_OVER_QMI_SUPPORT = 274,
  494. /*
  495. * Indicates FW supports EAPOL offload for SAE roaming if PMK of
  496. * candidate AP is present in FW.
  497. */
  498. WMI_SERVICE_SAE_EAPOL_OFFLOAD_SUPPORT = 275,
  499. /*
  500. * Indicates FW supports sending events to host during Thermal Throttling
  501. * every duty cycle on detecting temperature change when dc_per_event is 0.
  502. */
  503. WMI_SERVICE_THERM_THROT_TEMP_CHANGE_DYNAMIC_EVENT_SUPPORT = 276,
  504. WMI_SERVICE_WAPI_CONCURRENCY_SUPPORTED = 277, /* Indicates FW support for WAPI concurrency */
  505. WMI_SERVICE_SAP_CONNECTED_D3WOW = 278, /* Indicates FW support for D3WoW for SAP connected case */
  506. WMI_SERVICE_GO_CONNECTED_D3WOW = 279, /* Indicates FW support for D3WoW for P2P GO connected case */
  507. WMI_SERVICE_EXT_TPC_REG_SUPPORT = 280, /* Support for new 6G TPC power limits */
  508. WMI_SERVICE_REG_CC_EXT_EVENT_SUPPORT = 281, /* Support for Extended REG_CC Event with additional params for 6G */
  509. WMI_SERVICE_NDI_TXBF_SUPPORT = 282, /* Indicates FW support for Tx beamforming with NDI VDEV */
  510. WMI_SERVICE_ENABLE_LOWER_6G_EDGE_CH_SUPP = 283, /* Indicates FW support for enabling lower 6 GHz edge channel 5935 */
  511. WMI_SERVICE_DISABLE_UPPER_6G_EDGE_CH_SUPP = 284, /* Indicates FW support for disabling upper 6 GHz edge channel 7115 */
  512. WMI_SERVICE_FORCED_DTIM_SUPP = 285, /* Indicates FW supports forced DTIM configuration */
  513. WMI_SERVICE_DCS_AWGN_INT_SUPPORT = 286, /* Indicates FW supports AWGN Int */
  514. WMI_SERVICE_IGMP_OFFLOAD_SUPPORT = 287, /* FW supports igmp offload during APPS suspend */
  515. WMI_SERVICE_11AX_TDLS_SUPPORT = 288, /* Indicates FW supports 11ax TDLS. Host should enable 11ax on TDLS only when FW indicates the support. */
  516. WMI_SERVICE_11BE = 289, /* Indicates FW supports 11be */
  517. WMI_SERVICE_BIG_DATA_SUPPORT = 290, /* Indicates FW supports Big Data feature */
  518. WMI_SERVICE_EAPOL_OVER_NWIFI = 291, /* Indicates FW supports sending eapol frames in native wifi mode even when the vdev is brought up in raw ethernet mode */
  519. WMI_SERVICE_AMPDU_TX_BUF_SIZE_256_SUPPORT = 292, /* Indicates FW supports MAX 256 MPDUs in A-MPDU instead of 64 */
  520. WMI_SERVICE_HALPHY_CAL_STATUS = 293, /* Indicates FW supports sending online HALPHY Calibration status to host */
  521. WMI_SERVICE_HALPHY_CAL_ENABLE_DISABLE_SUPPORT = 294, /* Indicates Calibraton enable/disable support by FW */
  522. WMI_SERVICE_AFC_SUPPORT = 295, /* Indicates FW supports AFC_CMD,AFC_EVENT */
  523. WMI_SERVICE_RTT_AP_INITIATOR_STAGGERED_MODE_SUPPORTED = 296, /* FW supports RTT in AP Initiator for Staggered beacon mode */
  524. WMI_SERVICE_RTT_AP_INITIATOR_BURSTED_MODE_SUPPORTED = 297, /* FW supports RTT in AP Initiator for BURSTED beacon mode */
  525. WMI_SERVICE_P2P_P2P_CONCURRENCY_SUPPORT = 298, /* Indicates FW supports P2P + P2P conncurency both in SCC, MCC, SBS and DBS */
  526. WMI_SERVICE_MGMT_RX_REO_SUPPORTED = 299, /* Indicates FW supports Management RX Reorder */
  527. WMI_SERVICE_EMA_MULTIPLE_GROUP_SUPPORT = 300, /* FW support for EMA multi group support */
  528. WMI_SERVICE_LARGE_BEACON_SUPPORT = 301, /* FW support for Large beacon support greater then 1.5K */
  529. WMI_SERVICE_AOA_FOR_RCC_SUPPORTED = 302,
  530. WMI_SERVICE_DYN_NSS_MASK_SUPPORT = 303, /* Indicates FW support for DYN NSS feature */
  531. WMI_SERVICE_HW_MODE_POLICY_OFFLOAD_SUPPORT = 304, /* FW supports HW mode selection offload */
  532. WMI_SERVICE_THERMAL_THROT_STATS_TEMP_RANGE_SUPPORT = 305, /* FW supports thermal throttling temperature range stats based on wmi_thermal_stats_action */
  533. /*
  534. * Indicates FW support for spatial reuse enhancements.
  535. * Below commands are added for the enhancements:
  536. * WMI_PDEV_PARAM_OBSS_MIN_DURATION_CHECK_FOR_SR,
  537. * WMI_PDEV_PARAM_TRUNCATE_SR,
  538. * WMI_PDEV_PARAM_CTRL_FRAME_OBSS_PD_THRESHOLD
  539. */
  540. WMI_SERVICE_SPATIAL_REUSE_ENHANCEMENT_SUPPORT = 306,
  541. WMI_SERVICE_MU_SNIF = 307, /* FW support MU sniffer */
  542. WMI_MAX_EXT2_SERVICE
  543. } WMI_SERVICE;
  544. #define WMI_SERVICE_BM_SIZE ((WMI_MAX_SERVICE + sizeof(A_UINT32)- 1)/sizeof(A_UINT32))
  545. #define WMI_NUM_EXT_SERVICES (WMI_MAX_EXT_SERVICE - WMI_MAX_SERVICE)
  546. #define WMI_NUM_EXT2_SERVICES (WMI_MAX_EXT2_SERVICE - WMI_MAX_EXT_SERVICE)
  547. /*
  548. * TEMPORARY WORKAROUND
  549. * Virtually all branches of the target utilize an incorrect check on
  550. * the value of WMI_SERVICE_EXT_BM_SIZE32, checking that
  551. * WMI_SERVICE_EXT_BM_SIZE32 < 4, rather than WMI_SERVICE_EXT_BM_SIZE32 <= 4.
  552. * Until all target branches are fixed, this check is being disabled
  553. * by artificially setting WMI_SERVICE_EXT_BM_SIZE32 to 0, rather than
  554. * the number of 4-byte words required for holding the WMI extension
  555. * service flags.
  556. */
  557. #if 0
  558. #define WMI_SERVICE_EXT_BM_SIZE32 ((WMI_NUM_EXT_SERVICES + 31) / 32)
  559. #else
  560. #define WMI_SERVICE_EXT_BM_SIZE32 0
  561. #endif
  562. #define WMI_SERVICE_ROAM_OFFLOAD WMI_SERVICE_ROAM_SCAN_OFFLOAD /* depreciated the name WMI_SERVICE_ROAM_OFFLOAD, but here to help compiling with old host driver */
  563. /*
  564. * turn on the WMI service bit corresponding to the WMI service.
  565. */
  566. #define WMI_SERVICE_ENABLE(pwmi_svc_bmap,svc_id) \
  567. ( (pwmi_svc_bmap)[(svc_id)/(sizeof(A_UINT32))] |= \
  568. (1 << ((svc_id)%(sizeof(A_UINT32)))) )
  569. #define WMI_SERVICE_DISABLE(pwmi_svc_bmap,svc_id) \
  570. ( (pwmi_svc_bmap)[(svc_id)/(sizeof(A_UINT32))] &= \
  571. ( ~(1 << ((svc_id)%(sizeof(A_UINT32)))) ) )
  572. #define WMI_SERVICE_IS_ENABLED(pwmi_svc_bmap,svc_id) \
  573. ( ((pwmi_svc_bmap)[(svc_id)/(sizeof(A_UINT32))] & \
  574. (1 << ((svc_id)%(sizeof(A_UINT32)))) ) != 0)
  575. #define WMI_SERVICE_EXT_ENABLE(pwmi_svc_bmap, pwmi_svc_ext_bmap, svc_id) \
  576. do { \
  577. if (svc_id < WMI_MAX_SERVICE) { \
  578. WMI_SERVICE_ENABLE(pwmi_svc_bmap, svc_id); \
  579. } else { \
  580. int word = ((svc_id) - WMI_MAX_SERVICE) / 32; \
  581. int bit = (svc_id) & 0x1f; /* svc_id mod 32 */ \
  582. (pwmi_svc_ext_bmap)[word] |= (1 << bit); \
  583. } \
  584. } while (0)
  585. #define WMI_SERVICE_EXT_DISABLE(pwmi_svc_bmap, pwmi_svc_ext_bmap, svc_id) \
  586. do { \
  587. if (svc_id < WMI_MAX_SERVICE) { \
  588. WMI_SERVICE_DISABLE(pwmi_svc_bmap, svc_id); \
  589. } else { \
  590. int word = ((svc_id) - WMI_MAX_SERVICE) / 32; \
  591. int bit = (svc_id) & 0x1f; /* svc_id mod 32 */ \
  592. (pwmi_svc_ext_bmap)[word] &= ~(1 << bit); \
  593. } \
  594. } while (0)
  595. #define WMI_SERVICE_EXT_IS_ENABLED(pwmi_svc_bmap, pwmi_svc_ext_bmap, svc_id) \
  596. /* If the service ID is beyond the known limit, treat it as disabled */ \
  597. ((svc_id) >= WMI_MAX_EXT_SERVICE ? 0 : \
  598. /* If service ID is in the non-extension range, use the old check */ \
  599. (svc_id) < WMI_MAX_SERVICE ? \
  600. WMI_SERVICE_IS_ENABLED(pwmi_svc_bmap, svc_id) : \
  601. /* If service ID is in the extended range, check ext_bmap */ \
  602. (((pwmi_svc_ext_bmap)[((svc_id) - WMI_MAX_SERVICE) / 32] >> \
  603. ((svc_id) & 0x1f)) & 0x1))
  604. #define WMI_SERVICE_EXT2_ENABLE( \
  605. pwmi_svc_bmap, pwmi_svc_ext_bmap, pwmi_svc_ext2_bmap, svc_id) \
  606. do { \
  607. if (svc_id < WMI_MAX_SERVICE) { \
  608. WMI_SERVICE_ENABLE(pwmi_svc_bmap, svc_id); \
  609. } else if (svc_id < WMI_MAX_EXT_SERVICE) { \
  610. WMI_SERVICE_EXT_ENABLE(pwmi_svc_bmap, pwmi_svc_ext_bmap, svc_id); \
  611. } else { \
  612. int word = ((svc_id) - WMI_MAX_EXT_SERVICE) / 32; \
  613. int bit = (svc_id) & 0x1f; /* svc_id mod 32 */ \
  614. (pwmi_svc_ext2_bmap)[word] |= (1 << bit); \
  615. } \
  616. } while (0)
  617. #define WMI_SERVICE_EXT2_DISABLE( \
  618. pwmi_svc_bmap, pwmi_svc_ext_bmap, pwmi_svc_ext2_bmap, svc_id) \
  619. do { \
  620. if (svc_id < WMI_MAX_SERVICE) { \
  621. WMI_SERVICE_DISABLE(pwmi_svc_bmap, svc_id); \
  622. } else if (svc_id < WMI_MAX_EXT_SERVICE) { \
  623. WMI_SERVICE_EXT_DISABLE(pwmi_svc_bmap, pwmi_svc_ext_bmap, svc_id); \
  624. } else { \
  625. int word = ((svc_id) - WMI_MAX_EXT_SERVICE) / 32; \
  626. int bit = (svc_id) & 0x1f; /* svc_id mod 32 */ \
  627. (pwmi_svc_ext2_bmap)[word] &= ~(1 << bit); \
  628. } \
  629. } while (0)
  630. #define WMI_SERVICE_EXT2_IS_ENABLED( \
  631. pwmi_svc_bmap, pwmi_svc_ext_bmap, pwmi_svc_ext2_bmap, svc_id) \
  632. /* If the service ID is beyond the known limit, treat it as disabled */ \
  633. ((svc_id) >= WMI_MAX_EXT2_SERVICE ? 0 : \
  634. /* If service ID is in the non-extension range, use the old check */ \
  635. (svc_id) < WMI_MAX_SERVICE ? \
  636. WMI_SERVICE_IS_ENABLED(pwmi_svc_bmap, svc_id) : \
  637. /* If service ID is in the 1st extended range, check ext_bmap */ \
  638. (svc_id) < WMI_MAX_EXT_SERVICE ? \
  639. WMI_SERVICE_EXT_IS_ENABLED( \
  640. pwmi_svc_bmap, pwmi_svc_ext_bmap, svc_id) : \
  641. /* \
  642. * If service ID is in the 2nd extended range, check ext2_bmap \
  643. */ \
  644. (((pwmi_svc_ext2_bmap)[((svc_id) - WMI_MAX_EXT_SERVICE) / 32] >> \
  645. ((svc_id) & 0x1f)) & 0x1))
  646. #ifdef __cplusplus
  647. }
  648. #endif
  649. #endif /*_WMI_SERVICES_H_*/