diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/mvm/fw-api.h')
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/fw-api.h | 83 |
1 files changed, 40 insertions, 43 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/fw-api.h b/drivers/net/wireless/iwlwifi/mvm/fw-api.h index 2adb61f103f4..191dcae8ba47 100644 --- a/drivers/net/wireless/iwlwifi/mvm/fw-api.h +++ b/drivers/net/wireless/iwlwifi/mvm/fw-api.h | |||
@@ -22,7 +22,7 @@ | |||
22 | * USA | 22 | * USA |
23 | * | 23 | * |
24 | * The full GNU General Public License is included in this distribution | 24 | * The full GNU General Public License is included in this distribution |
25 | * in the file called LICENSE.GPL. | 25 | * in the file called COPYING. |
26 | * | 26 | * |
27 | * Contact Information: | 27 | * Contact Information: |
28 | * Intel Linux Wireless <ilw@linux.intel.com> | 28 | * Intel Linux Wireless <ilw@linux.intel.com> |
@@ -70,6 +70,7 @@ | |||
70 | #include "fw-api-mac.h" | 70 | #include "fw-api-mac.h" |
71 | #include "fw-api-power.h" | 71 | #include "fw-api-power.h" |
72 | #include "fw-api-d3.h" | 72 | #include "fw-api-d3.h" |
73 | #include "fw-api-bt-coex.h" | ||
73 | 74 | ||
74 | /* queue and FIFO numbers by usage */ | 75 | /* queue and FIFO numbers by usage */ |
75 | enum { | 76 | enum { |
@@ -150,8 +151,10 @@ enum { | |||
150 | 151 | ||
151 | SET_CALIB_DEFAULT_CMD = 0x8e, | 152 | SET_CALIB_DEFAULT_CMD = 0x8e, |
152 | 153 | ||
154 | BEACON_NOTIFICATION = 0x90, | ||
153 | BEACON_TEMPLATE_CMD = 0x91, | 155 | BEACON_TEMPLATE_CMD = 0x91, |
154 | TX_ANT_CONFIGURATION_CMD = 0x98, | 156 | TX_ANT_CONFIGURATION_CMD = 0x98, |
157 | BT_CONFIG = 0x9b, | ||
155 | STATISTICS_NOTIFICATION = 0x9d, | 158 | STATISTICS_NOTIFICATION = 0x9d, |
156 | 159 | ||
157 | /* RF-KILL commands and notifications */ | 160 | /* RF-KILL commands and notifications */ |
@@ -162,6 +165,11 @@ enum { | |||
162 | REPLY_RX_MPDU_CMD = 0xc1, | 165 | REPLY_RX_MPDU_CMD = 0xc1, |
163 | BA_NOTIF = 0xc5, | 166 | BA_NOTIF = 0xc5, |
164 | 167 | ||
168 | /* BT Coex */ | ||
169 | BT_COEX_PRIO_TABLE = 0xcc, | ||
170 | BT_COEX_PROT_ENV = 0xcd, | ||
171 | BT_PROFILE_NOTIFICATION = 0xce, | ||
172 | |||
165 | REPLY_DEBUG_CMD = 0xf0, | 173 | REPLY_DEBUG_CMD = 0xf0, |
166 | DEBUG_LOG_MSG = 0xf7, | 174 | DEBUG_LOG_MSG = 0xf7, |
167 | 175 | ||
@@ -271,38 +279,7 @@ enum { | |||
271 | NVM_ACCESS_TARGET_EEPROM = 2, | 279 | NVM_ACCESS_TARGET_EEPROM = 2, |
272 | }; | 280 | }; |
273 | 281 | ||
274 | /** | 282 | /* Section types for NVM_ACCESS_CMD */ |
275 | * struct iwl_nvm_access_cmd_ver1 - Request the device to send the NVM. | ||
276 | * @op_code: 0 - read, 1 - write. | ||
277 | * @target: NVM_ACCESS_TARGET_*. should be 0 for read. | ||
278 | * @cache_refresh: 0 - None, 1- NVM. | ||
279 | * @offset: offset in the nvm data. | ||
280 | * @length: of the chunk. | ||
281 | * @data: empty on read, the NVM chunk on write | ||
282 | */ | ||
283 | struct iwl_nvm_access_cmd_ver1 { | ||
284 | u8 op_code; | ||
285 | u8 target; | ||
286 | u8 cache_refresh; | ||
287 | u8 reserved; | ||
288 | __le16 offset; | ||
289 | __le16 length; | ||
290 | u8 data[]; | ||
291 | } __packed; /* NVM_ACCESS_CMD_API_S_VER_1 */ | ||
292 | |||
293 | /** | ||
294 | * struct iwl_nvm_access_resp_ver1 - response to NVM_ACCESS_CMD | ||
295 | * @offset: the offset in the nvm data | ||
296 | * @length: of the chunk | ||
297 | * @data: the nvm chunk on when NVM_ACCESS_CMD was read, nothing on write | ||
298 | */ | ||
299 | struct iwl_nvm_access_resp_ver1 { | ||
300 | __le16 offset; | ||
301 | __le16 length; | ||
302 | u8 data[]; | ||
303 | } __packed; /* NVM_ACCESS_CMD_RESP_API_S_VER_1 */ | ||
304 | |||
305 | /* Section types for NVM_ACCESS_CMD version 2 */ | ||
306 | enum { | 283 | enum { |
307 | NVM_SECTION_TYPE_HW = 0, | 284 | NVM_SECTION_TYPE_HW = 0, |
308 | NVM_SECTION_TYPE_SW, | 285 | NVM_SECTION_TYPE_SW, |
@@ -323,7 +300,7 @@ enum { | |||
323 | * @length: in bytes, to read/write | 300 | * @length: in bytes, to read/write |
324 | * @data: if write operation, the data to write. On read its empty | 301 | * @data: if write operation, the data to write. On read its empty |
325 | */ | 302 | */ |
326 | struct iwl_nvm_access_cmd_ver2 { | 303 | struct iwl_nvm_access_cmd { |
327 | u8 op_code; | 304 | u8 op_code; |
328 | u8 target; | 305 | u8 target; |
329 | __le16 type; | 306 | __le16 type; |
@@ -340,7 +317,7 @@ struct iwl_nvm_access_cmd_ver2 { | |||
340 | * @status: 0 for success, fail otherwise | 317 | * @status: 0 for success, fail otherwise |
341 | * @data: if read operation, the data returned. Empty on write. | 318 | * @data: if read operation, the data returned. Empty on write. |
342 | */ | 319 | */ |
343 | struct iwl_nvm_access_resp_ver2 { | 320 | struct iwl_nvm_access_resp { |
344 | __le16 offset; | 321 | __le16 offset; |
345 | __le16 length; | 322 | __le16 length; |
346 | __le16 type; | 323 | __le16 type; |
@@ -503,15 +480,34 @@ enum { | |||
503 | TE_DEP_TSF = 2, | 480 | TE_DEP_TSF = 2, |
504 | TE_EVENT_SOCIOPATHIC = 4, | 481 | TE_EVENT_SOCIOPATHIC = 4, |
505 | }; /* MAC_EVENT_DEPENDENCY_POLICY_API_E_VER_2 */ | 482 | }; /* MAC_EVENT_DEPENDENCY_POLICY_API_E_VER_2 */ |
506 | 483 | /* | |
507 | /* When to send Time Event notifications and to whom (internal = FW) */ | 484 | * Supported Time event notifications configuration. |
485 | * A notification (both event and fragment) includes a status indicating weather | ||
486 | * the FW was able to schedule the event or not. For fragment start/end | ||
487 | * notification the status is always success. There is no start/end fragment | ||
488 | * notification for monolithic events. | ||
489 | * | ||
490 | * @TE_NOTIF_NONE: no notifications | ||
491 | * @TE_NOTIF_HOST_EVENT_START: request/receive notification on event start | ||
492 | * @TE_NOTIF_HOST_EVENT_END:request/receive notification on event end | ||
493 | * @TE_NOTIF_INTERNAL_EVENT_START: internal FW use | ||
494 | * @TE_NOTIF_INTERNAL_EVENT_END: internal FW use. | ||
495 | * @TE_NOTIF_HOST_FRAG_START: request/receive notification on frag start | ||
496 | * @TE_NOTIF_HOST_FRAG_END:request/receive notification on frag end | ||
497 | * @TE_NOTIF_INTERNAL_FRAG_START: internal FW use. | ||
498 | * @TE_NOTIF_INTERNAL_FRAG_END: internal FW use. | ||
499 | */ | ||
508 | enum { | 500 | enum { |
509 | TE_NOTIF_NONE = 0, | 501 | TE_NOTIF_NONE = 0, |
510 | TE_NOTIF_HOST_START = 0x1, | 502 | TE_NOTIF_HOST_EVENT_START = 0x1, |
511 | TE_NOTIF_HOST_END = 0x2, | 503 | TE_NOTIF_HOST_EVENT_END = 0x2, |
512 | TE_NOTIF_INTERNAL_START = 0x4, | 504 | TE_NOTIF_INTERNAL_EVENT_START = 0x4, |
513 | TE_NOTIF_INTERNAL_END = 0x8 | 505 | TE_NOTIF_INTERNAL_EVENT_END = 0x8, |
514 | }; /* MAC_EVENT_ACTION_API_E_VER_1 */ | 506 | TE_NOTIF_HOST_FRAG_START = 0x10, |
507 | TE_NOTIF_HOST_FRAG_END = 0x20, | ||
508 | TE_NOTIF_INTERNAL_FRAG_START = 0x40, | ||
509 | TE_NOTIF_INTERNAL_FRAG_END = 0x80 | ||
510 | }; /* MAC_EVENT_ACTION_API_E_VER_2 */ | ||
515 | 511 | ||
516 | /* | 512 | /* |
517 | * @TE_FRAG_NONE: fragmentation of the time event is NOT allowed. | 513 | * @TE_FRAG_NONE: fragmentation of the time event is NOT allowed. |
@@ -794,6 +790,7 @@ struct iwl_phy_context_cmd { | |||
794 | * @byte_count: frame's byte-count | 790 | * @byte_count: frame's byte-count |
795 | * @frame_time: frame's time on the air, based on byte count and frame rate | 791 | * @frame_time: frame's time on the air, based on byte count and frame rate |
796 | * calculation | 792 | * calculation |
793 | * @mac_active_msk: what MACs were active when the frame was received | ||
797 | * | 794 | * |
798 | * Before each Rx, the device sends this data. It contains PHY information | 795 | * Before each Rx, the device sends this data. It contains PHY information |
799 | * about the reception of the packet. | 796 | * about the reception of the packet. |
@@ -811,7 +808,7 @@ struct iwl_rx_phy_info { | |||
811 | __le32 non_cfg_phy[IWL_RX_INFO_PHY_CNT]; | 808 | __le32 non_cfg_phy[IWL_RX_INFO_PHY_CNT]; |
812 | __le32 rate_n_flags; | 809 | __le32 rate_n_flags; |
813 | __le32 byte_count; | 810 | __le32 byte_count; |
814 | __le16 reserved2; | 811 | __le16 mac_active_msk; |
815 | __le16 frame_time; | 812 | __le16 frame_time; |
816 | } __packed; | 813 | } __packed; |
817 | 814 | ||