.. | .. |
---|
5 | 5 | * |
---|
6 | 6 | * GPL LICENSE SUMMARY |
---|
7 | 7 | * |
---|
8 | | - * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
---|
9 | 8 | * Copyright(c) 2016 - 2017 Intel Deutschland GmbH |
---|
10 | | - * Copyright(c) 2018 Intel Corporation |
---|
| 9 | + * Copyright(c) 2012 - 2014, 2018 - 2020 Intel Corporation |
---|
11 | 10 | * |
---|
12 | 11 | * This program is free software; you can redistribute it and/or modify |
---|
13 | 12 | * it under the terms of version 2 of the GNU General Public License as |
---|
.. | .. |
---|
27 | 26 | * |
---|
28 | 27 | * BSD LICENSE |
---|
29 | 28 | * |
---|
30 | | - * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
---|
31 | 29 | * Copyright(c) 2016 - 2017 Intel Deutschland GmbH |
---|
32 | | - * Copyright(c) 2018 Intel Corporation |
---|
| 30 | + * Copyright(c) 2012 - 2014, 2018 - 2020 Intel Corporation |
---|
33 | 31 | * All rights reserved. |
---|
34 | 32 | * |
---|
35 | 33 | * Redistribution and use in source and binary forms, with or without |
---|
.. | .. |
---|
61 | 59 | |
---|
62 | 60 | #ifndef __iwl_fw_api_tx_h__ |
---|
63 | 61 | #define __iwl_fw_api_tx_h__ |
---|
| 62 | +#include <linux/ieee80211.h> |
---|
64 | 63 | |
---|
65 | 64 | /** |
---|
66 | 65 | * enum iwl_tx_flags - bitmasks for tx_flags in TX command |
---|
.. | .. |
---|
186 | 185 | /* |
---|
187 | 186 | * TID for non QoS frames - to be written in tid_tspec |
---|
188 | 187 | */ |
---|
189 | | -#define IWL_TID_NON_QOS IWL_MAX_TID_COUNT |
---|
| 188 | +#define IWL_TID_NON_QOS 0 |
---|
190 | 189 | |
---|
191 | 190 | /* |
---|
192 | 191 | * Limits on the retransmissions - to be written in {data,rts}_retry_limit |
---|
.. | .. |
---|
293 | 292 | __le16 pm_frame_timeout; |
---|
294 | 293 | __le16 reserved4; |
---|
295 | 294 | u8 payload[0]; |
---|
296 | | - struct ieee80211_hdr hdr[0]; |
---|
| 295 | + struct ieee80211_hdr hdr[]; |
---|
297 | 296 | } __packed; /* TX_CMD_API_S_VER_6 */ |
---|
298 | 297 | |
---|
299 | 298 | struct iwl_dram_sec_info { |
---|
.. | .. |
---|
319 | 318 | __le32 flags; |
---|
320 | 319 | struct iwl_dram_sec_info dram_info; |
---|
321 | 320 | __le32 rate_n_flags; |
---|
322 | | - struct ieee80211_hdr hdr[0]; |
---|
| 321 | + struct ieee80211_hdr hdr[]; |
---|
323 | 322 | } __packed; /* TX_CMD_API_S_VER_7 */ |
---|
324 | 323 | |
---|
325 | 324 | /** |
---|
326 | | - * struct iwl_tx_cmd_gen3 - TX command struct to FW for 22560 devices |
---|
| 325 | + * struct iwl_tx_cmd_gen3 - TX command struct to FW for AX210+ devices |
---|
327 | 326 | * ( TX_CMD = 0x1c ) |
---|
328 | 327 | * @len: in bytes of the payload, see below for details |
---|
329 | 328 | * @flags: combination of &enum iwl_tx_cmd_flags |
---|
.. | .. |
---|
342 | 341 | struct iwl_dram_sec_info dram_info; |
---|
343 | 342 | __le32 rate_n_flags; |
---|
344 | 343 | __le64 ttl; |
---|
345 | | - struct ieee80211_hdr hdr[0]; |
---|
| 344 | + struct ieee80211_hdr hdr[]; |
---|
346 | 345 | } __packed; /* TX_CMD_API_S_VER_8 */ |
---|
347 | 346 | |
---|
348 | 347 | /* |
---|
.. | .. |
---|
766 | 765 | __le32 tx_rate; |
---|
767 | 766 | __le16 tfd_cnt; |
---|
768 | 767 | __le16 ra_tid_cnt; |
---|
769 | | - struct iwl_mvm_compressed_ba_tfd tfd[0]; |
---|
770 | 768 | struct iwl_mvm_compressed_ba_ratid ra_tid[0]; |
---|
| 769 | + struct iwl_mvm_compressed_ba_tfd tfd[]; |
---|
771 | 770 | } __packed; /* COMPRESSED_BA_RES_API_S_VER_4 */ |
---|
772 | 771 | |
---|
773 | 772 | /** |
---|
.. | .. |
---|
784 | 783 | __le32 template_id; |
---|
785 | 784 | __le32 tim_idx; |
---|
786 | 785 | __le32 tim_size; |
---|
787 | | - struct ieee80211_hdr frame[0]; |
---|
| 786 | + struct ieee80211_hdr frame[]; |
---|
788 | 787 | } __packed; /* BEACON_TEMPLATE_CMD_API_S_VER_6 */ |
---|
789 | 788 | |
---|
790 | 789 | /** |
---|
.. | .. |
---|
805 | 804 | __le32 tim_size; |
---|
806 | 805 | __le32 ecsa_offset; |
---|
807 | 806 | __le32 csa_offset; |
---|
808 | | - struct ieee80211_hdr frame[0]; |
---|
| 807 | + struct ieee80211_hdr frame[]; |
---|
809 | 808 | } __packed; /* BEACON_TEMPLATE_CMD_API_S_VER_7 */ |
---|
810 | 809 | |
---|
811 | 810 | enum iwl_mac_beacon_flags { |
---|
.. | .. |
---|
813 | 812 | IWL_MAC_BEACON_ANT_A = BIT(9), |
---|
814 | 813 | IWL_MAC_BEACON_ANT_B = BIT(10), |
---|
815 | 814 | IWL_MAC_BEACON_ANT_C = BIT(11), |
---|
| 815 | + IWL_MAC_BEACON_FILS = BIT(12), |
---|
816 | 816 | }; |
---|
817 | 817 | |
---|
818 | 818 | /** |
---|
.. | .. |
---|
820 | 820 | * @byte_cnt: byte count of the beacon frame. |
---|
821 | 821 | * @flags: least significant byte for rate code. The most significant byte |
---|
822 | 822 | * is &enum iwl_mac_beacon_flags. |
---|
| 823 | + * @short_ssid: Short SSID |
---|
823 | 824 | * @reserved: reserved |
---|
824 | 825 | * @template_id: currently equal to the mac context id of the coresponding mac. |
---|
825 | 826 | * @tim_idx: the offset of the tim IE in the beacon |
---|
.. | .. |
---|
831 | 832 | struct iwl_mac_beacon_cmd { |
---|
832 | 833 | __le16 byte_cnt; |
---|
833 | 834 | __le16 flags; |
---|
834 | | - __le64 reserved; |
---|
| 835 | + __le32 short_ssid; |
---|
| 836 | + __le32 reserved; |
---|
835 | 837 | __le32 template_id; |
---|
836 | 838 | __le32 tim_idx; |
---|
837 | 839 | __le32 tim_size; |
---|
838 | 840 | __le32 ecsa_offset; |
---|
839 | 841 | __le32 csa_offset; |
---|
840 | | - struct ieee80211_hdr frame[0]; |
---|
841 | | -} __packed; /* BEACON_TEMPLATE_CMD_API_S_VER_9 */ |
---|
| 842 | + struct ieee80211_hdr frame[]; |
---|
| 843 | +} __packed; /* BEACON_TEMPLATE_CMD_API_S_VER_10 */ |
---|
842 | 844 | |
---|
843 | 845 | struct iwl_beacon_notif { |
---|
844 | 846 | struct iwl_mvm_tx_resp beacon_notify_hdr; |
---|
.. | .. |
---|
847 | 849 | } __packed; |
---|
848 | 850 | |
---|
849 | 851 | /** |
---|
850 | | - * struct iwl_extended_beacon_notif - notifies about beacon transmission |
---|
| 852 | + * struct iwl_extended_beacon_notif_v5 - notifies about beacon transmission |
---|
851 | 853 | * @beacon_notify_hdr: tx response command associated with the beacon |
---|
852 | 854 | * @tsf: last beacon tsf |
---|
853 | 855 | * @ibss_mgr_status: whether IBSS is manager |
---|
854 | 856 | * @gp2: last beacon time in gp2 |
---|
855 | 857 | */ |
---|
856 | | -struct iwl_extended_beacon_notif { |
---|
| 858 | +struct iwl_extended_beacon_notif_v5 { |
---|
857 | 859 | struct iwl_mvm_tx_resp beacon_notify_hdr; |
---|
858 | 860 | __le64 tsf; |
---|
859 | 861 | __le32 ibss_mgr_status; |
---|
.. | .. |
---|
861 | 863 | } __packed; /* BEACON_NTFY_API_S_VER_5 */ |
---|
862 | 864 | |
---|
863 | 865 | /** |
---|
| 866 | + * struct iwl_extended_beacon_notif - notifies about beacon transmission |
---|
| 867 | + * @status: the status of the Tx response of the beacon |
---|
| 868 | + * @tsf: last beacon tsf |
---|
| 869 | + * @ibss_mgr_status: whether IBSS is manager |
---|
| 870 | + * @gp2: last beacon time in gp2 |
---|
| 871 | + */ |
---|
| 872 | +struct iwl_extended_beacon_notif { |
---|
| 873 | + __le32 status; |
---|
| 874 | + __le64 tsf; |
---|
| 875 | + __le32 ibss_mgr_status; |
---|
| 876 | + __le32 gp2; |
---|
| 877 | +} __packed; /* BEACON_NTFY_API_S_VER_6_ */ |
---|
| 878 | + |
---|
| 879 | +/** |
---|
864 | 880 | * enum iwl_dump_control - dump (flush) control flags |
---|
865 | 881 | * @DUMP_TX_FIFO_FLUSH: Dump MSDUs until the the FIFO is empty |
---|
866 | 882 | * and the TFD queues are empty. |
---|