commands.h 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664
  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. * @ANTENNA_COUPLING_NOTIFICATION:
  131. * Antenna coupling data, &struct iwl_mvm_antenna_coupling_notif
  132. */
  133. ANTENNA_COUPLING_NOTIFICATION = 0xa,
  134. /**
  135. * @SCAN_ITERATION_COMPLETE_UMAC:
  136. * Firmware indicates a scan iteration completed, using
  137. * &struct iwl_umac_scan_iter_complete_notif.
  138. */
  139. SCAN_ITERATION_COMPLETE_UMAC = 0xb5,
  140. /**
  141. * @SCAN_CFG_CMD:
  142. * uses &struct iwl_scan_config_v1 or &struct iwl_scan_config
  143. */
  144. SCAN_CFG_CMD = 0xc,
  145. /**
  146. * @SCAN_REQ_UMAC: uses &struct iwl_scan_req_umac
  147. */
  148. SCAN_REQ_UMAC = 0xd,
  149. /**
  150. * @SCAN_ABORT_UMAC: uses &struct iwl_umac_scan_abort
  151. */
  152. SCAN_ABORT_UMAC = 0xe,
  153. /**
  154. * @SCAN_COMPLETE_UMAC: uses &struct iwl_umac_scan_complete
  155. */
  156. SCAN_COMPLETE_UMAC = 0xf,
  157. /**
  158. * @BA_WINDOW_STATUS_NOTIFICATION_ID:
  159. * uses &struct iwl_ba_window_status_notif
  160. */
  161. BA_WINDOW_STATUS_NOTIFICATION_ID = 0x13,
  162. /**
  163. * @ADD_STA_KEY:
  164. * &struct iwl_mvm_add_sta_key_cmd_v1 or
  165. * &struct iwl_mvm_add_sta_key_cmd.
  166. */
  167. ADD_STA_KEY = 0x17,
  168. /**
  169. * @ADD_STA:
  170. * &struct iwl_mvm_add_sta_cmd or &struct iwl_mvm_add_sta_cmd_v7.
  171. */
  172. ADD_STA = 0x18,
  173. /**
  174. * @REMOVE_STA: &struct iwl_mvm_rm_sta_cmd
  175. */
  176. REMOVE_STA = 0x19,
  177. /**
  178. * @FW_GET_ITEM_CMD: uses &struct iwl_fw_get_item_cmd
  179. */
  180. FW_GET_ITEM_CMD = 0x1a,
  181. /**
  182. * @TX_CMD: uses &struct iwl_tx_cmd or &struct iwl_tx_cmd_gen2,
  183. * response in &struct iwl_mvm_tx_resp or
  184. * &struct iwl_mvm_tx_resp_v3
  185. */
  186. TX_CMD = 0x1c,
  187. /**
  188. * @TXPATH_FLUSH: &struct iwl_tx_path_flush_cmd
  189. */
  190. TXPATH_FLUSH = 0x1e,
  191. /**
  192. * @MGMT_MCAST_KEY:
  193. * &struct iwl_mvm_mgmt_mcast_key_cmd or
  194. * &struct iwl_mvm_mgmt_mcast_key_cmd_v1
  195. */
  196. MGMT_MCAST_KEY = 0x1f,
  197. /* scheduler config */
  198. /**
  199. * @SCD_QUEUE_CFG: &struct iwl_scd_txq_cfg_cmd for older hardware,
  200. * &struct iwl_tx_queue_cfg_cmd with &struct iwl_tx_queue_cfg_rsp
  201. * for newer (A000) hardware.
  202. */
  203. SCD_QUEUE_CFG = 0x1d,
  204. /**
  205. * @WEP_KEY: uses &struct iwl_mvm_wep_key_cmd
  206. */
  207. WEP_KEY = 0x20,
  208. /**
  209. * @SHARED_MEM_CFG:
  210. * retrieve shared memory configuration - response in
  211. * &struct iwl_shared_mem_cfg
  212. */
  213. SHARED_MEM_CFG = 0x25,
  214. /**
  215. * @TDLS_CHANNEL_SWITCH_CMD: uses &struct iwl_tdls_channel_switch_cmd
  216. */
  217. TDLS_CHANNEL_SWITCH_CMD = 0x27,
  218. /**
  219. * @TDLS_CHANNEL_SWITCH_NOTIFICATION:
  220. * uses &struct iwl_tdls_channel_switch_notif
  221. */
  222. TDLS_CHANNEL_SWITCH_NOTIFICATION = 0xaa,
  223. /**
  224. * @TDLS_CONFIG_CMD:
  225. * &struct iwl_tdls_config_cmd, response in &struct iwl_tdls_config_res
  226. */
  227. TDLS_CONFIG_CMD = 0xa7,
  228. /**
  229. * @MAC_CONTEXT_CMD: &struct iwl_mac_ctx_cmd
  230. */
  231. MAC_CONTEXT_CMD = 0x28,
  232. /**
  233. * @TIME_EVENT_CMD:
  234. * &struct iwl_time_event_cmd, response in &struct iwl_time_event_resp
  235. */
  236. TIME_EVENT_CMD = 0x29, /* both CMD and response */
  237. /**
  238. * @TIME_EVENT_NOTIFICATION: &struct iwl_time_event_notif
  239. */
  240. TIME_EVENT_NOTIFICATION = 0x2a,
  241. /**
  242. * @BINDING_CONTEXT_CMD:
  243. * &struct iwl_binding_cmd or &struct iwl_binding_cmd_v1
  244. */
  245. BINDING_CONTEXT_CMD = 0x2b,
  246. /**
  247. * @TIME_QUOTA_CMD: &struct iwl_time_quota_cmd
  248. */
  249. TIME_QUOTA_CMD = 0x2c,
  250. /**
  251. * @NON_QOS_TX_COUNTER_CMD:
  252. * command is &struct iwl_nonqos_seq_query_cmd
  253. */
  254. NON_QOS_TX_COUNTER_CMD = 0x2d,
  255. /**
  256. * @LQ_CMD: using &struct iwl_lq_cmd
  257. */
  258. LQ_CMD = 0x4e,
  259. /**
  260. * @FW_PAGING_BLOCK_CMD:
  261. * &struct iwl_fw_paging_cmd
  262. */
  263. FW_PAGING_BLOCK_CMD = 0x4f,
  264. /**
  265. * @SCAN_OFFLOAD_REQUEST_CMD: uses &struct iwl_scan_req_lmac
  266. */
  267. SCAN_OFFLOAD_REQUEST_CMD = 0x51,
  268. /**
  269. * @SCAN_OFFLOAD_ABORT_CMD: abort the scan - no further contents
  270. */
  271. SCAN_OFFLOAD_ABORT_CMD = 0x52,
  272. /**
  273. * @HOT_SPOT_CMD: uses &struct iwl_hs20_roc_req
  274. */
  275. HOT_SPOT_CMD = 0x53,
  276. /**
  277. * @SCAN_OFFLOAD_COMPLETE:
  278. * notification, &struct iwl_periodic_scan_complete
  279. */
  280. SCAN_OFFLOAD_COMPLETE = 0x6D,
  281. /**
  282. * @SCAN_OFFLOAD_UPDATE_PROFILES_CMD:
  283. * update scan offload (scheduled scan) profiles/blacklist/etc.
  284. */
  285. SCAN_OFFLOAD_UPDATE_PROFILES_CMD = 0x6E,
  286. /**
  287. * @MATCH_FOUND_NOTIFICATION: scan match found
  288. */
  289. MATCH_FOUND_NOTIFICATION = 0xd9,
  290. /**
  291. * @SCAN_ITERATION_COMPLETE:
  292. * uses &struct iwl_lmac_scan_complete_notif
  293. */
  294. SCAN_ITERATION_COMPLETE = 0xe7,
  295. /* Phy */
  296. /**
  297. * @PHY_CONFIGURATION_CMD: &struct iwl_phy_cfg_cmd
  298. */
  299. PHY_CONFIGURATION_CMD = 0x6a,
  300. /**
  301. * @CALIB_RES_NOTIF_PHY_DB: &struct iwl_calib_res_notif_phy_db
  302. */
  303. CALIB_RES_NOTIF_PHY_DB = 0x6b,
  304. /**
  305. * @PHY_DB_CMD: &struct iwl_phy_db_cmd
  306. */
  307. PHY_DB_CMD = 0x6c,
  308. /**
  309. * @TOF_CMD: &struct iwl_tof_config_cmd
  310. */
  311. TOF_CMD = 0x10,
  312. /**
  313. * @TOF_NOTIFICATION: &struct iwl_tof_gen_resp_cmd
  314. */
  315. TOF_NOTIFICATION = 0x11,
  316. /**
  317. * @POWER_TABLE_CMD: &struct iwl_device_power_cmd
  318. */
  319. POWER_TABLE_CMD = 0x77,
  320. /**
  321. * @PSM_UAPSD_AP_MISBEHAVING_NOTIFICATION:
  322. * &struct iwl_uapsd_misbehaving_ap_notif
  323. */
  324. PSM_UAPSD_AP_MISBEHAVING_NOTIFICATION = 0x78,
  325. /**
  326. * @LTR_CONFIG: &struct iwl_ltr_config_cmd
  327. */
  328. LTR_CONFIG = 0xee,
  329. /**
  330. * @REPLY_THERMAL_MNG_BACKOFF:
  331. * Thermal throttling command
  332. */
  333. REPLY_THERMAL_MNG_BACKOFF = 0x7e,
  334. /**
  335. * @DC2DC_CONFIG_CMD:
  336. * Set/Get DC2DC frequency tune
  337. * Command is &struct iwl_dc2dc_config_cmd,
  338. * response is &struct iwl_dc2dc_config_resp
  339. */
  340. DC2DC_CONFIG_CMD = 0x83,
  341. /**
  342. * @NVM_ACCESS_CMD: using &struct iwl_nvm_access_cmd
  343. */
  344. NVM_ACCESS_CMD = 0x88,
  345. /**
  346. * @BEACON_NOTIFICATION: &struct iwl_extended_beacon_notif
  347. */
  348. BEACON_NOTIFICATION = 0x90,
  349. /**
  350. * @BEACON_TEMPLATE_CMD:
  351. * Uses one of &struct iwl_mac_beacon_cmd_v6,
  352. * &struct iwl_mac_beacon_cmd_v7 or &struct iwl_mac_beacon_cmd
  353. * depending on the device version.
  354. */
  355. BEACON_TEMPLATE_CMD = 0x91,
  356. /**
  357. * @TX_ANT_CONFIGURATION_CMD: &struct iwl_tx_ant_cfg_cmd
  358. */
  359. TX_ANT_CONFIGURATION_CMD = 0x98,
  360. /**
  361. * @STATISTICS_CMD: &struct iwl_statistics_cmd
  362. */
  363. STATISTICS_CMD = 0x9c,
  364. /**
  365. * @STATISTICS_NOTIFICATION:
  366. * one of &struct iwl_notif_statistics_v10,
  367. * &struct iwl_notif_statistics_v11,
  368. * &struct iwl_notif_statistics_cdb
  369. */
  370. STATISTICS_NOTIFICATION = 0x9d,
  371. /**
  372. * @EOSP_NOTIFICATION:
  373. * Notify that a service period ended,
  374. * &struct iwl_mvm_eosp_notification
  375. */
  376. EOSP_NOTIFICATION = 0x9e,
  377. /**
  378. * @REDUCE_TX_POWER_CMD:
  379. * &struct iwl_dev_tx_power_cmd_v3 or &struct iwl_dev_tx_power_cmd
  380. */
  381. REDUCE_TX_POWER_CMD = 0x9f,
  382. /**
  383. * @CARD_STATE_NOTIFICATION:
  384. * Card state (RF/CT kill) notification,
  385. * uses &struct iwl_card_state_notif
  386. */
  387. CARD_STATE_NOTIFICATION = 0xa1,
  388. /**
  389. * @MISSED_BEACONS_NOTIFICATION: &struct iwl_missed_beacons_notif
  390. */
  391. MISSED_BEACONS_NOTIFICATION = 0xa2,
  392. /**
  393. * @MAC_PM_POWER_TABLE: using &struct iwl_mac_power_cmd
  394. */
  395. MAC_PM_POWER_TABLE = 0xa9,
  396. /**
  397. * @MFUART_LOAD_NOTIFICATION: &struct iwl_mfuart_load_notif
  398. */
  399. MFUART_LOAD_NOTIFICATION = 0xb1,
  400. /**
  401. * @RSS_CONFIG_CMD: &struct iwl_rss_config_cmd
  402. */
  403. RSS_CONFIG_CMD = 0xb3,
  404. /**
  405. * @REPLY_RX_PHY_CMD: &struct iwl_rx_phy_info
  406. */
  407. REPLY_RX_PHY_CMD = 0xc0,
  408. /**
  409. * @REPLY_RX_MPDU_CMD:
  410. * &struct iwl_rx_mpdu_res_start or &struct iwl_rx_mpdu_desc
  411. */
  412. REPLY_RX_MPDU_CMD = 0xc1,
  413. /**
  414. * @FRAME_RELEASE:
  415. * Frame release (reorder helper) notification, uses
  416. * &struct iwl_frame_release
  417. */
  418. FRAME_RELEASE = 0xc3,
  419. /**
  420. * @BA_NOTIF:
  421. * BlockAck notification, uses &struct iwl_mvm_compressed_ba_notif
  422. * or &struct iwl_mvm_ba_notif depending on the HW
  423. */
  424. BA_NOTIF = 0xc5,
  425. /* Location Aware Regulatory */
  426. /**
  427. * @MCC_UPDATE_CMD: using &struct iwl_mcc_update_cmd
  428. */
  429. MCC_UPDATE_CMD = 0xc8,
  430. /**
  431. * @MCC_CHUB_UPDATE_CMD: using &struct iwl_mcc_chub_notif
  432. */
  433. MCC_CHUB_UPDATE_CMD = 0xc9,
  434. /**
  435. * @MARKER_CMD: trace marker command, uses &struct iwl_mvm_marker
  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_CORUN_LUT:
  448. * &struct iwl_bt_coex_corun_lut_update_cmd
  449. */
  450. BT_COEX_UPDATE_CORUN_LUT = 0x5b,
  451. /**
  452. * @BT_COEX_UPDATE_REDUCED_TXP:
  453. * &struct iwl_bt_coex_reduced_txp_update_cmd
  454. */
  455. BT_COEX_UPDATE_REDUCED_TXP = 0x5c,
  456. /**
  457. * @BT_COEX_CI: &struct iwl_bt_coex_ci_cmd
  458. */
  459. BT_COEX_CI = 0x5d,
  460. /**
  461. * @REPLY_SF_CFG_CMD: &struct iwl_sf_cfg_cmd
  462. */
  463. REPLY_SF_CFG_CMD = 0xd1,
  464. /**
  465. * @REPLY_BEACON_FILTERING_CMD: &struct iwl_beacon_filter_cmd
  466. */
  467. REPLY_BEACON_FILTERING_CMD = 0xd2,
  468. /**
  469. * @DTS_MEASUREMENT_NOTIFICATION:
  470. * &struct iwl_dts_measurement_notif_v1 or
  471. * &struct iwl_dts_measurement_notif_v2
  472. */
  473. DTS_MEASUREMENT_NOTIFICATION = 0xdd,
  474. /**
  475. * @LDBG_CONFIG_CMD: configure continuous trace recording
  476. */
  477. LDBG_CONFIG_CMD = 0xf6,
  478. /**
  479. * @DEBUG_LOG_MSG: Debugging log data from firmware
  480. */
  481. DEBUG_LOG_MSG = 0xf7,
  482. /**
  483. * @BCAST_FILTER_CMD: &struct iwl_bcast_filter_cmd
  484. */
  485. BCAST_FILTER_CMD = 0xcf,
  486. /**
  487. * @MCAST_FILTER_CMD: &struct iwl_mcast_filter_cmd
  488. */
  489. MCAST_FILTER_CMD = 0xd0,
  490. /**
  491. * @D3_CONFIG_CMD: &struct iwl_d3_manager_config
  492. */
  493. D3_CONFIG_CMD = 0xd3,
  494. /**
  495. * @PROT_OFFLOAD_CONFIG_CMD: Depending on firmware, uses one of
  496. * &struct iwl_proto_offload_cmd_v1, &struct iwl_proto_offload_cmd_v2,
  497. * &struct iwl_proto_offload_cmd_v3_small,
  498. * &struct iwl_proto_offload_cmd_v3_large
  499. */
  500. PROT_OFFLOAD_CONFIG_CMD = 0xd4,
  501. /**
  502. * @OFFLOADS_QUERY_CMD:
  503. * No data in command, response in &struct iwl_wowlan_status
  504. */
  505. OFFLOADS_QUERY_CMD = 0xd5,
  506. /**
  507. * @REMOTE_WAKE_CONFIG_CMD: &struct iwl_wowlan_remote_wake_config
  508. */
  509. REMOTE_WAKE_CONFIG_CMD = 0xd6,
  510. /**
  511. * @D0I3_END_CMD: End D0i3/D3 state, no command data
  512. */
  513. D0I3_END_CMD = 0xed,
  514. /**
  515. * @WOWLAN_PATTERNS: &struct iwl_wowlan_patterns_cmd
  516. */
  517. WOWLAN_PATTERNS = 0xe0,
  518. /**
  519. * @WOWLAN_CONFIGURATION: &struct iwl_wowlan_config_cmd
  520. */
  521. WOWLAN_CONFIGURATION = 0xe1,
  522. /**
  523. * @WOWLAN_TSC_RSC_PARAM: &struct iwl_wowlan_rsc_tsc_params_cmd
  524. */
  525. WOWLAN_TSC_RSC_PARAM = 0xe2,
  526. /**
  527. * @WOWLAN_TKIP_PARAM: &struct iwl_wowlan_tkip_params_cmd
  528. */
  529. WOWLAN_TKIP_PARAM = 0xe3,
  530. /**
  531. * @WOWLAN_KEK_KCK_MATERIAL: &struct iwl_wowlan_kek_kck_material_cmd
  532. */
  533. WOWLAN_KEK_KCK_MATERIAL = 0xe4,
  534. /**
  535. * @WOWLAN_GET_STATUSES: response in &struct iwl_wowlan_status
  536. */
  537. WOWLAN_GET_STATUSES = 0xe5,
  538. /**
  539. * @SCAN_OFFLOAD_PROFILES_QUERY_CMD:
  540. * No command data, response is &struct iwl_scan_offload_profiles_query
  541. */
  542. SCAN_OFFLOAD_PROFILES_QUERY_CMD = 0x56,
  543. };
  544. /**
  545. * enum iwl_system_subcmd_ids - system group command IDs
  546. */
  547. enum iwl_system_subcmd_ids {
  548. /**
  549. * @SHARED_MEM_CFG_CMD:
  550. * response in &struct iwl_shared_mem_cfg or
  551. * &struct iwl_shared_mem_cfg_v2
  552. */
  553. SHARED_MEM_CFG_CMD = 0x0,
  554. /**
  555. * @INIT_EXTENDED_CFG_CMD: &struct iwl_init_extended_cfg_cmd
  556. */
  557. INIT_EXTENDED_CFG_CMD = 0x03,
  558. /**
  559. * @FSEQ_VER_MISMATCH_NTF: Notification about fseq version
  560. * mismatch during init. The format is specified in
  561. * &struct iwl_fseq_ver_mismatch_ntf.
  562. */
  563. FSEQ_VER_MISMATCH_NTF = 0xFF,
  564. };
  565. #endif /* __iwl_fw_api_commands_h__ */