hc
2023-12-09 b22da3d8526a935aa31e086e63f60ff3246cb61c
kernel/drivers/net/wireless/intel/iwlwifi/fw/api/mac-cfg.h
....@@ -8,6 +8,7 @@
88 * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
99 * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
1010 * Copyright(c) 2016 - 2017 Intel Deutschland GmbH
11
+ * Copyright(c) 2018 - 2019 Intel Corporation
1112 *
1213 * This program is free software; you can redistribute it and/or modify
1314 * it under the terms of version 2 of the GNU General Public License as
....@@ -30,6 +31,7 @@
3031 * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
3132 * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
3233 * Copyright(c) 2016 - 2017 Intel Deutschland GmbH
34
+ * Copyright(c) 2018 - 2019 Intel Corporation
3335 * All rights reserved.
3436 *
3537 * Redistribution and use in source and binary forms, with or without
....@@ -72,10 +74,90 @@
7274 */
7375 LOW_LATENCY_CMD = 0x3,
7476 /**
77
+ * @CHANNEL_SWITCH_TIME_EVENT_CMD: &struct iwl_chan_switch_te_cmd
78
+ */
79
+ CHANNEL_SWITCH_TIME_EVENT_CMD = 0x4,
80
+ /**
81
+ * @MISSED_VAP_NOTIF: &struct iwl_missed_vap_notif
82
+ */
83
+ MISSED_VAP_NOTIF = 0xFA,
84
+ /**
85
+ * @SESSION_PROTECTION_CMD: &struct iwl_mvm_session_prot_cmd
86
+ */
87
+ SESSION_PROTECTION_CMD = 0x5,
88
+
89
+ /**
90
+ * @SESSION_PROTECTION_NOTIF: &struct iwl_mvm_session_prot_notif
91
+ */
92
+ SESSION_PROTECTION_NOTIF = 0xFB,
93
+
94
+ /**
95
+ * @PROBE_RESPONSE_DATA_NOTIF: &struct iwl_probe_resp_data_notif
96
+ */
97
+ PROBE_RESPONSE_DATA_NOTIF = 0xFC,
98
+
99
+ /**
75100 * @CHANNEL_SWITCH_NOA_NOTIF: &struct iwl_channel_switch_noa_notif
76101 */
77102 CHANNEL_SWITCH_NOA_NOTIF = 0xFF,
78103 };
104
+
105
+#define IWL_P2P_NOA_DESC_COUNT (2)
106
+
107
+/**
108
+ * struct iwl_p2p_noa_attr - NOA attr contained in probe resp FW notification
109
+ *
110
+ * @id: attribute id
111
+ * @len_low: length low half
112
+ * @len_high: length high half
113
+ * @idx: instance of NoA timing
114
+ * @ctwin: GO's ct window and pwer save capability
115
+ * @desc: NoA descriptor
116
+ * @reserved: reserved for alignment purposes
117
+ */
118
+struct iwl_p2p_noa_attr {
119
+ u8 id;
120
+ u8 len_low;
121
+ u8 len_high;
122
+ u8 idx;
123
+ u8 ctwin;
124
+ struct ieee80211_p2p_noa_desc desc[IWL_P2P_NOA_DESC_COUNT];
125
+ u8 reserved;
126
+} __packed;
127
+
128
+#define IWL_PROBE_RESP_DATA_NO_CSA (0xff)
129
+
130
+/**
131
+ * struct iwl_probe_resp_data_notif - notification with NOA and CSA counter
132
+ *
133
+ * @mac_id: the mac which should send the probe response
134
+ * @noa_active: notifies if the noa attribute should be handled
135
+ * @noa_attr: P2P NOA attribute
136
+ * @csa_counter: current csa counter
137
+ * @reserved: reserved for alignment purposes
138
+ */
139
+struct iwl_probe_resp_data_notif {
140
+ __le32 mac_id;
141
+ __le32 noa_active;
142
+ struct iwl_p2p_noa_attr noa_attr;
143
+ u8 csa_counter;
144
+ u8 reserved[3];
145
+} __packed; /* PROBE_RESPONSE_DATA_NTFY_API_S_VER_1 */
146
+
147
+/**
148
+ * struct iwl_missed_vap_notif - notification of missing vap detection
149
+ *
150
+ * @mac_id: the mac for which the ucode sends the notification for
151
+ * @num_beacon_intervals_elapsed: beacons elpased with no vap profile inside
152
+ * @profile_periodicity: beacons period to have our profile inside
153
+ * @reserved: reserved for alignment purposes
154
+ */
155
+struct iwl_missed_vap_notif {
156
+ __le32 mac_id;
157
+ u8 num_beacon_intervals_elapsed;
158
+ u8 profile_periodicity;
159
+ u8 reserved[2];
160
+} __packed; /* MISSED_VAP_NTFY_API_S_VER_1 */
79161
80162 /**
81163 * struct iwl_channel_switch_noa_notif - Channel switch NOA notification
....@@ -87,6 +169,29 @@
87169 } __packed; /* CHANNEL_SWITCH_START_NTFY_API_S_VER_1 */
88170
89171 /**
172
+ * struct iwl_chan_switch_te_cmd - Channel Switch Time Event command
173
+ *
174
+ * @mac_id: MAC ID for channel switch
175
+ * @action: action to perform, one of FW_CTXT_ACTION_*
176
+ * @tsf: beacon tsf
177
+ * @cs_count: channel switch count from CSA/eCSA IE
178
+ * @cs_delayed_bcn_count: if set to N (!= 0) GO/AP can delay N beacon intervals
179
+ * at the new channel after the channel switch, otherwise (N == 0) expect
180
+ * beacon right after the channel switch.
181
+ * @cs_mode: 1 - quiet, 0 - otherwise
182
+ * @reserved: reserved for alignment purposes
183
+ */
184
+struct iwl_chan_switch_te_cmd {
185
+ __le32 mac_id;
186
+ __le32 action;
187
+ __le32 tsf;
188
+ u8 cs_count;
189
+ u8 cs_delayed_bcn_count;
190
+ u8 cs_mode;
191
+ u8 reserved;
192
+} __packed; /* MAC_CHANNEL_SWITCH_TIME_EVENT_S_VER_2 */
193
+
194
+/**
90195 * struct iwl_mac_low_latency_cmd - set/clear mac to 'low-latency mode'
91196 *
92197 * @mac_id: MAC ID to whom to apply the low-latency configurations