commands.h 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658
  1. /******************************************************************************
  2. *
  3. * This file is provided under a dual BSD/GPLv2 license. When using or
  4. * redistributing this file, you may do so under either license.
  5. *
  6. * GPL LICENSE SUMMARY
  7. *
  8. * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
  9. * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
  10. * Copyright(c) 2016 - 2017 Intel Deutschland GmbH
  11. *
  12. * This program is free software; you can redistribute it and/or modify
  13. * it under the terms of version 2 of the GNU General Public License as
  14. * published by the Free Software Foundation.
  15. *
  16. * This program is distributed in the hope that it will be useful, but
  17. * WITHOUT ANY WARRANTY; without even the implied warranty of
  18. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  19. * General Public License for more details.
  20. *
  21. * The full GNU General Public License is included in this distribution
  22. * in the file called COPYING.
  23. *
  24. * Contact Information:
  25. * Intel Linux Wireless <linuxwifi@intel.com>
  26. * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
  27. *
  28. * BSD LICENSE
  29. *
  30. * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
  31. * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
  32. * Copyright(c) 2016 - 2017 Intel Deutschland GmbH
  33. * All rights reserved.
  34. *
  35. * Redistribution and use in source and binary forms, with or without
  36. * modification, are permitted provided that the following conditions
  37. * are met:
  38. *
  39. * * Redistributions of source code must retain the above copyright
  40. * notice, this list of conditions and the following disclaimer.
  41. * * Redistributions in binary form must reproduce the above copyright
  42. * notice, this list of conditions and the following disclaimer in
  43. * the documentation and/or other materials provided with the
  44. * distribution.
  45. * * Neither the name Intel Corporation nor the names of its
  46. * contributors may be used to endorse or promote products derived
  47. * from this software without specific prior written permission.
  48. *
  49. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  50. * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  51. * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  52. * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  53. * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  54. * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  55. * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  56. * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  57. * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  58. * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  59. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  60. *
  61. *****************************************************************************/
  62. #ifndef __iwl_fw_api_commands_h__
  63. #define __iwl_fw_api_commands_h__
  64. /**
  65. * enum iwl_mvm_command_groups - command groups for the firmware
  66. * @LEGACY_GROUP: legacy group, uses command IDs from &enum iwl_legacy_cmds
  67. * @LONG_GROUP: legacy group with long header, also uses command IDs
  68. * from &enum iwl_legacy_cmds
  69. * @SYSTEM_GROUP: system group, uses command IDs from
  70. * &enum iwl_system_subcmd_ids
  71. * @MAC_CONF_GROUP: MAC configuration group, uses command IDs from
  72. * &enum iwl_mac_conf_subcmd_ids
  73. * @PHY_OPS_GROUP: PHY operations group, uses command IDs from
  74. * &enum iwl_phy_ops_subcmd_ids
  75. * @DATA_PATH_GROUP: data path group, uses command IDs from
  76. * &enum iwl_data_path_subcmd_ids
  77. * @NAN_GROUP: NAN group, uses command IDs from &enum iwl_nan_subcmd_ids
  78. * @TOF_GROUP: TOF group, uses command IDs from &enum iwl_tof_subcmd_ids
  79. * @PROT_OFFLOAD_GROUP: protocol offload group, uses command IDs from
  80. * &enum iwl_prot_offload_subcmd_ids
  81. * @REGULATORY_AND_NVM_GROUP: regulatory/NVM group, uses command IDs from
  82. * &enum iwl_regulatory_and_nvm_subcmd_ids
  83. * @DEBUG_GROUP: Debug group, uses command IDs from &enum iwl_debug_cmds
  84. */
  85. enum iwl_mvm_command_groups {
  86. LEGACY_GROUP = 0x0,
  87. LONG_GROUP = 0x1,
  88. SYSTEM_GROUP = 0x2,
  89. MAC_CONF_GROUP = 0x3,
  90. PHY_OPS_GROUP = 0x4,
  91. DATA_PATH_GROUP = 0x5,
  92. NAN_GROUP = 0x7,
  93. TOF_GROUP = 0x8,
  94. PROT_OFFLOAD_GROUP = 0xb,
  95. REGULATORY_AND_NVM_GROUP = 0xc,
  96. DEBUG_GROUP = 0xf,
  97. };
  98. /**
  99. * enum iwl_legacy_cmds - legacy group command IDs
  100. */
  101. enum iwl_legacy_cmds {
  102. /**
  103. * @MVM_ALIVE:
  104. * Alive data from the firmware, as described in
  105. * &struct mvm_alive_resp_v3 or &struct mvm_alive_resp.
  106. */
  107. MVM_ALIVE = 0x1,
  108. /**
  109. * @REPLY_ERROR: Cause an error in the firmware, for testing purposes.
  110. */
  111. REPLY_ERROR = 0x2,
  112. /**
  113. * @ECHO_CMD: Send data to the device to have it returned immediately.
  114. */
  115. ECHO_CMD = 0x3,
  116. /**
  117. * @INIT_COMPLETE_NOTIF: Notification that initialization is complete.
  118. */
  119. INIT_COMPLETE_NOTIF = 0x4,
  120. /**
  121. * @PHY_CONTEXT_CMD:
  122. * Add/modify/remove a PHY context, using &struct iwl_phy_context_cmd.
  123. */
  124. PHY_CONTEXT_CMD = 0x8,
  125. /**
  126. * @DBG_CFG: Debug configuration command.
  127. */
  128. DBG_CFG = 0x9,
  129. /**
  130. * @SCAN_ITERATION_COMPLETE_UMAC:
  131. * Firmware indicates a scan iteration completed, using
  132. * &struct iwl_umac_scan_iter_complete_notif.
  133. */
  134. SCAN_ITERATION_COMPLETE_UMAC = 0xb5,
  135. /**
  136. * @SCAN_CFG_CMD:
  137. * uses &struct iwl_scan_config_v1 or &struct iwl_scan_config
  138. */
  139. SCAN_CFG_CMD = 0xc,
  140. /**
  141. * @SCAN_REQ_UMAC: uses &struct iwl_scan_req_umac
  142. */
  143. SCAN_REQ_UMAC = 0xd,
  144. /**
  145. * @SCAN_ABORT_UMAC: uses &struct iwl_umac_scan_abort
  146. */
  147. SCAN_ABORT_UMAC = 0xe,
  148. /**
  149. * @SCAN_COMPLETE_UMAC: uses &struct iwl_umac_scan_complete
  150. */
  151. SCAN_COMPLETE_UMAC = 0xf,
  152. /**
  153. * @BA_WINDOW_STATUS_NOTIFICATION_ID:
  154. * uses &struct iwl_ba_window_status_notif
  155. */
  156. BA_WINDOW_STATUS_NOTIFICATION_ID = 0x13,
  157. /**
  158. * @ADD_STA_KEY:
  159. * &struct iwl_mvm_add_sta_key_cmd_v1 or
  160. * &struct iwl_mvm_add_sta_key_cmd.
  161. */
  162. ADD_STA_KEY = 0x17,
  163. /**
  164. * @ADD_STA:
  165. * &struct iwl_mvm_add_sta_cmd or &struct iwl_mvm_add_sta_cmd_v7.
  166. */
  167. ADD_STA = 0x18,
  168. /**
  169. * @REMOVE_STA: &struct iwl_mvm_rm_sta_cmd
  170. */
  171. REMOVE_STA = 0x19,
  172. /**
  173. * @FW_GET_ITEM_CMD: uses &struct iwl_fw_get_item_cmd
  174. */
  175. FW_GET_ITEM_CMD = 0x1a,
  176. /**
  177. * @TX_CMD: uses &struct iwl_tx_cmd or &struct iwl_tx_cmd_gen2,
  178. * response in &struct iwl_mvm_tx_resp or
  179. * &struct iwl_mvm_tx_resp_v3
  180. */
  181. TX_CMD = 0x1c,
  182. /**
  183. * @TXPATH_FLUSH: &struct iwl_tx_path_flush_cmd
  184. */
  185. TXPATH_FLUSH = 0x1e,
  186. /**
  187. * @MGMT_MCAST_KEY:
  188. * &struct iwl_mvm_mgmt_mcast_key_cmd or
  189. * &struct iwl_mvm_mgmt_mcast_key_cmd_v1
  190. */
  191. MGMT_MCAST_KEY = 0x1f,
  192. /* scheduler config */
  193. /**
  194. * @SCD_QUEUE_CFG: &struct iwl_scd_txq_cfg_cmd for older hardware,
  195. * &struct iwl_tx_queue_cfg_cmd with &struct iwl_tx_queue_cfg_rsp
  196. * for newer (22000) hardware.
  197. */
  198. SCD_QUEUE_CFG = 0x1d,
  199. /**
  200. * @WEP_KEY: uses &struct iwl_mvm_wep_key_cmd
  201. */
  202. WEP_KEY = 0x20,
  203. /**
  204. * @SHARED_MEM_CFG:
  205. * retrieve shared memory configuration - response in
  206. * &struct iwl_shared_mem_cfg
  207. */
  208. SHARED_MEM_CFG = 0x25,
  209. /**
  210. * @TDLS_CHANNEL_SWITCH_CMD: uses &struct iwl_tdls_channel_switch_cmd
  211. */
  212. TDLS_CHANNEL_SWITCH_CMD = 0x27,
  213. /**
  214. * @TDLS_CHANNEL_SWITCH_NOTIFICATION:
  215. * uses &struct iwl_tdls_channel_switch_notif
  216. */
  217. TDLS_CHANNEL_SWITCH_NOTIFICATION = 0xaa,
  218. /**
  219. * @TDLS_CONFIG_CMD:
  220. * &struct iwl_tdls_config_cmd, response in &struct iwl_tdls_config_res
  221. */
  222. TDLS_CONFIG_CMD = 0xa7,
  223. /**
  224. * @MAC_CONTEXT_CMD: &struct iwl_mac_ctx_cmd
  225. */
  226. MAC_CONTEXT_CMD = 0x28,
  227. /**
  228. * @TIME_EVENT_CMD:
  229. * &struct iwl_time_event_cmd, response in &struct iwl_time_event_resp
  230. */
  231. TIME_EVENT_CMD = 0x29, /* both CMD and response */
  232. /**
  233. * @TIME_EVENT_NOTIFICATION: &struct iwl_time_event_notif
  234. */
  235. TIME_EVENT_NOTIFICATION = 0x2a,
  236. /**
  237. * @BINDING_CONTEXT_CMD:
  238. * &struct iwl_binding_cmd or &struct iwl_binding_cmd_v1
  239. */
  240. BINDING_CONTEXT_CMD = 0x2b,
  241. /**
  242. * @TIME_QUOTA_CMD: &struct iwl_time_quota_cmd
  243. */
  244. TIME_QUOTA_CMD = 0x2c,
  245. /**
  246. * @NON_QOS_TX_COUNTER_CMD:
  247. * command is &struct iwl_nonqos_seq_query_cmd
  248. */
  249. NON_QOS_TX_COUNTER_CMD = 0x2d,
  250. /**
  251. * @LEDS_CMD: command is &struct iwl_led_cmd
  252. */
  253. LEDS_CMD = 0x48,
  254. /**
  255. * @LQ_CMD: using &struct iwl_lq_cmd
  256. */
  257. LQ_CMD = 0x4e,
  258. /**
  259. * @FW_PAGING_BLOCK_CMD:
  260. * &struct iwl_fw_paging_cmd
  261. */
  262. FW_PAGING_BLOCK_CMD = 0x4f,
  263. /**
  264. * @SCAN_OFFLOAD_REQUEST_CMD: uses &struct iwl_scan_req_lmac
  265. */
  266. SCAN_OFFLOAD_REQUEST_CMD = 0x51,
  267. /**
  268. * @SCAN_OFFLOAD_ABORT_CMD: abort the scan - no further contents
  269. */
  270. SCAN_OFFLOAD_ABORT_CMD = 0x52,
  271. /**
  272. * @HOT_SPOT_CMD: uses &struct iwl_hs20_roc_req
  273. */
  274. HOT_SPOT_CMD = 0x53,
  275. /**
  276. * @SCAN_OFFLOAD_COMPLETE:
  277. * notification, &struct iwl_periodic_scan_complete
  278. */
  279. SCAN_OFFLOAD_COMPLETE = 0x6D,
  280. /**
  281. * @SCAN_OFFLOAD_UPDATE_PROFILES_CMD:
  282. * update scan offload (scheduled scan) profiles/blacklist/etc.
  283. */
  284. SCAN_OFFLOAD_UPDATE_PROFILES_CMD = 0x6E,
  285. /**
  286. * @MATCH_FOUND_NOTIFICATION: scan match found
  287. */
  288. MATCH_FOUND_NOTIFICATION = 0xd9,
  289. /**
  290. * @SCAN_ITERATION_COMPLETE:
  291. * uses &struct iwl_lmac_scan_complete_notif
  292. */
  293. SCAN_ITERATION_COMPLETE = 0xe7,
  294. /* Phy */
  295. /**
  296. * @PHY_CONFIGURATION_CMD: &struct iwl_phy_cfg_cmd
  297. */
  298. PHY_CONFIGURATION_CMD = 0x6a,
  299. /**
  300. * @CALIB_RES_NOTIF_PHY_DB: &struct iwl_calib_res_notif_phy_db
  301. */
  302. CALIB_RES_NOTIF_PHY_DB = 0x6b,
  303. /**
  304. * @PHY_DB_CMD: &struct iwl_phy_db_cmd
  305. */
  306. PHY_DB_CMD = 0x6c,
  307. /**
  308. * @TOF_CMD: &struct iwl_tof_config_cmd
  309. */
  310. TOF_CMD = 0x10,
  311. /**
  312. * @TOF_NOTIFICATION: &struct iwl_tof_gen_resp_cmd
  313. */
  314. TOF_NOTIFICATION = 0x11,
  315. /**
  316. * @POWER_TABLE_CMD: &struct iwl_device_power_cmd
  317. */
  318. POWER_TABLE_CMD = 0x77,
  319. /**
  320. * @PSM_UAPSD_AP_MISBEHAVING_NOTIFICATION:
  321. * &struct iwl_uapsd_misbehaving_ap_notif
  322. */
  323. PSM_UAPSD_AP_MISBEHAVING_NOTIFICATION = 0x78,
  324. /**
  325. * @LTR_CONFIG: &struct iwl_ltr_config_cmd
  326. */
  327. LTR_CONFIG = 0xee,
  328. /**
  329. * @REPLY_THERMAL_MNG_BACKOFF:
  330. * Thermal throttling command
  331. */
  332. REPLY_THERMAL_MNG_BACKOFF = 0x7e,
  333. /**
  334. * @DC2DC_CONFIG_CMD:
  335. * Set/Get DC2DC frequency tune
  336. * Command is &struct iwl_dc2dc_config_cmd,
  337. * response is &struct iwl_dc2dc_config_resp
  338. */
  339. DC2DC_CONFIG_CMD = 0x83,
  340. /**
  341. * @NVM_ACCESS_CMD: using &struct iwl_nvm_access_cmd
  342. */
  343. NVM_ACCESS_CMD = 0x88,
  344. /**
  345. * @BEACON_NOTIFICATION: &struct iwl_extended_beacon_notif
  346. */
  347. BEACON_NOTIFICATION = 0x90,
  348. /**
  349. * @BEACON_TEMPLATE_CMD:
  350. * Uses one of &struct iwl_mac_beacon_cmd_v6,
  351. * &struct iwl_mac_beacon_cmd_v7 or &struct iwl_mac_beacon_cmd
  352. * depending on the device version.
  353. */
  354. BEACON_TEMPLATE_CMD = 0x91,
  355. /**
  356. * @TX_ANT_CONFIGURATION_CMD: &struct iwl_tx_ant_cfg_cmd
  357. */
  358. TX_ANT_CONFIGURATION_CMD = 0x98,
  359. /**
  360. * @STATISTICS_CMD: &struct iwl_statistics_cmd
  361. */
  362. STATISTICS_CMD = 0x9c,
  363. /**
  364. * @STATISTICS_NOTIFICATION:
  365. * one of &struct iwl_notif_statistics_v10,
  366. * &struct iwl_notif_statistics_v11,
  367. * &struct iwl_notif_statistics_cdb
  368. */
  369. STATISTICS_NOTIFICATION = 0x9d,
  370. /**
  371. * @EOSP_NOTIFICATION:
  372. * Notify that a service period ended,
  373. * &struct iwl_mvm_eosp_notification
  374. */
  375. EOSP_NOTIFICATION = 0x9e,
  376. /**
  377. * @REDUCE_TX_POWER_CMD:
  378. * &struct iwl_dev_tx_power_cmd_v3 or &struct iwl_dev_tx_power_cmd
  379. */
  380. REDUCE_TX_POWER_CMD = 0x9f,
  381. /**
  382. * @CARD_STATE_NOTIFICATION:
  383. * Card state (RF/CT kill) notification,
  384. * uses &struct iwl_card_state_notif
  385. */
  386. CARD_STATE_NOTIFICATION = 0xa1,
  387. /**
  388. * @MISSED_BEACONS_NOTIFICATION: &struct iwl_missed_beacons_notif
  389. */
  390. MISSED_BEACONS_NOTIFICATION = 0xa2,
  391. /**
  392. * @MAC_PM_POWER_TABLE: using &struct iwl_mac_power_cmd
  393. */
  394. MAC_PM_POWER_TABLE = 0xa9,
  395. /**
  396. * @MFUART_LOAD_NOTIFICATION: &struct iwl_mfuart_load_notif
  397. */
  398. MFUART_LOAD_NOTIFICATION = 0xb1,
  399. /**
  400. * @RSS_CONFIG_CMD: &struct iwl_rss_config_cmd
  401. */
  402. RSS_CONFIG_CMD = 0xb3,
  403. /**
  404. * @REPLY_RX_PHY_CMD: &struct iwl_rx_phy_info
  405. */
  406. REPLY_RX_PHY_CMD = 0xc0,
  407. /**
  408. * @REPLY_RX_MPDU_CMD:
  409. * &struct iwl_rx_mpdu_res_start or &struct iwl_rx_mpdu_desc
  410. */
  411. REPLY_RX_MPDU_CMD = 0xc1,
  412. /**
  413. * @FRAME_RELEASE:
  414. * Frame release (reorder helper) notification, uses
  415. * &struct iwl_frame_release
  416. */
  417. FRAME_RELEASE = 0xc3,
  418. /**
  419. * @BA_NOTIF:
  420. * BlockAck notification, uses &struct iwl_mvm_compressed_ba_notif
  421. * or &struct iwl_mvm_ba_notif depending on the HW
  422. */
  423. BA_NOTIF = 0xc5,
  424. /* Location Aware Regulatory */
  425. /**
  426. * @MCC_UPDATE_CMD: using &struct iwl_mcc_update_cmd
  427. */
  428. MCC_UPDATE_CMD = 0xc8,
  429. /**
  430. * @MCC_CHUB_UPDATE_CMD: using &struct iwl_mcc_chub_notif
  431. */
  432. MCC_CHUB_UPDATE_CMD = 0xc9,
  433. /**
  434. * @MARKER_CMD: trace marker command, uses &struct iwl_mvm_marker
  435. * with &struct iwl_mvm_marker_rsp
  436. */
  437. MARKER_CMD = 0xcb,
  438. /**
  439. * @BT_PROFILE_NOTIFICATION: &struct iwl_bt_coex_profile_notif
  440. */
  441. BT_PROFILE_NOTIFICATION = 0xce,
  442. /**
  443. * @BT_CONFIG: &struct iwl_bt_coex_cmd
  444. */
  445. BT_CONFIG = 0x9b,
  446. /**
  447. * @BT_COEX_UPDATE_REDUCED_TXP:
  448. * &struct iwl_bt_coex_reduced_txp_update_cmd
  449. */
  450. BT_COEX_UPDATE_REDUCED_TXP = 0x5c,
  451. /**
  452. * @BT_COEX_CI: &struct iwl_bt_coex_ci_cmd
  453. */
  454. BT_COEX_CI = 0x5d,
  455. /**
  456. * @REPLY_SF_CFG_CMD: &struct iwl_sf_cfg_cmd
  457. */
  458. REPLY_SF_CFG_CMD = 0xd1,
  459. /**
  460. * @REPLY_BEACON_FILTERING_CMD: &struct iwl_beacon_filter_cmd
  461. */
  462. REPLY_BEACON_FILTERING_CMD = 0xd2,
  463. /**
  464. * @DTS_MEASUREMENT_NOTIFICATION:
  465. * &struct iwl_dts_measurement_notif_v1 or
  466. * &struct iwl_dts_measurement_notif_v2
  467. */
  468. DTS_MEASUREMENT_NOTIFICATION = 0xdd,
  469. /**
  470. * @LDBG_CONFIG_CMD: configure continuous trace recording
  471. */
  472. LDBG_CONFIG_CMD = 0xf6,
  473. /**
  474. * @DEBUG_LOG_MSG: Debugging log data from firmware
  475. */
  476. DEBUG_LOG_MSG = 0xf7,
  477. /**
  478. * @BCAST_FILTER_CMD: &struct iwl_bcast_filter_cmd
  479. */
  480. BCAST_FILTER_CMD = 0xcf,
  481. /**
  482. * @MCAST_FILTER_CMD: &struct iwl_mcast_filter_cmd
  483. */
  484. MCAST_FILTER_CMD = 0xd0,
  485. /**
  486. * @D3_CONFIG_CMD: &struct iwl_d3_manager_config
  487. */
  488. D3_CONFIG_CMD = 0xd3,
  489. /**
  490. * @PROT_OFFLOAD_CONFIG_CMD: Depending on firmware, uses one of
  491. * &struct iwl_proto_offload_cmd_v1, &struct iwl_proto_offload_cmd_v2,
  492. * &struct iwl_proto_offload_cmd_v3_small,
  493. * &struct iwl_proto_offload_cmd_v3_large
  494. */
  495. PROT_OFFLOAD_CONFIG_CMD = 0xd4,
  496. /**
  497. * @OFFLOADS_QUERY_CMD:
  498. * No data in command, response in &struct iwl_wowlan_status
  499. */
  500. OFFLOADS_QUERY_CMD = 0xd5,
  501. /**
  502. * @REMOTE_WAKE_CONFIG_CMD: &struct iwl_wowlan_remote_wake_config
  503. */
  504. REMOTE_WAKE_CONFIG_CMD = 0xd6,
  505. /**
  506. * @D0I3_END_CMD: End D0i3/D3 state, no command data
  507. */
  508. D0I3_END_CMD = 0xed,
  509. /**
  510. * @WOWLAN_PATTERNS: &struct iwl_wowlan_patterns_cmd
  511. */
  512. WOWLAN_PATTERNS = 0xe0,
  513. /**
  514. * @WOWLAN_CONFIGURATION: &struct iwl_wowlan_config_cmd
  515. */
  516. WOWLAN_CONFIGURATION = 0xe1,
  517. /**
  518. * @WOWLAN_TSC_RSC_PARAM: &struct iwl_wowlan_rsc_tsc_params_cmd
  519. */
  520. WOWLAN_TSC_RSC_PARAM = 0xe2,
  521. /**
  522. * @WOWLAN_TKIP_PARAM: &struct iwl_wowlan_tkip_params_cmd
  523. */
  524. WOWLAN_TKIP_PARAM = 0xe3,
  525. /**
  526. * @WOWLAN_KEK_KCK_MATERIAL: &struct iwl_wowlan_kek_kck_material_cmd
  527. */
  528. WOWLAN_KEK_KCK_MATERIAL = 0xe4,
  529. /**
  530. * @WOWLAN_GET_STATUSES: response in &struct iwl_wowlan_status
  531. */
  532. WOWLAN_GET_STATUSES = 0xe5,
  533. /**
  534. * @SCAN_OFFLOAD_PROFILES_QUERY_CMD:
  535. * No command data, response is &struct iwl_scan_offload_profiles_query
  536. */
  537. SCAN_OFFLOAD_PROFILES_QUERY_CMD = 0x56,
  538. };
  539. /**
  540. * enum iwl_system_subcmd_ids - system group command IDs
  541. */
  542. enum iwl_system_subcmd_ids {
  543. /**
  544. * @SHARED_MEM_CFG_CMD:
  545. * response in &struct iwl_shared_mem_cfg or
  546. * &struct iwl_shared_mem_cfg_v2
  547. */
  548. SHARED_MEM_CFG_CMD = 0x0,
  549. /**
  550. * @INIT_EXTENDED_CFG_CMD: &struct iwl_init_extended_cfg_cmd
  551. */
  552. INIT_EXTENDED_CFG_CMD = 0x03,
  553. /**
  554. * @FSEQ_VER_MISMATCH_NTF: Notification about fseq version
  555. * mismatch during init. The format is specified in
  556. * &struct iwl_fseq_ver_mismatch_ntf.
  557. */
  558. FSEQ_VER_MISMATCH_NTF = 0xFF,
  559. };
  560. #endif /* __iwl_fw_api_commands_h__ */