hc
2023-12-09 b22da3d8526a935aa31e086e63f60ff3246cb61c
kernel/drivers/net/wireless/intel/iwlwifi/fw/api/datapath.h
....@@ -100,6 +100,22 @@
100100 TLC_MNG_CONFIG_CMD = 0xF,
101101
102102 /**
103
+ * @HE_AIR_SNIFFER_CONFIG_CMD: &struct iwl_he_monitor_cmd
104
+ */
105
+ HE_AIR_SNIFFER_CONFIG_CMD = 0x13,
106
+
107
+ /**
108
+ * @CHEST_COLLECTOR_FILTER_CONFIG_CMD: Configure the CSI
109
+ * matrix collection, uses &struct iwl_channel_estimation_cfg
110
+ */
111
+ CHEST_COLLECTOR_FILTER_CONFIG_CMD = 0x14,
112
+
113
+ /**
114
+ * @RX_NO_DATA_NOTIF: &struct iwl_rx_no_data
115
+ */
116
+ RX_NO_DATA_NOTIF = 0xF5,
117
+
118
+ /**
103119 * @TLC_MNG_UPDATE_NOTIF: &struct iwl_tlc_update_notif
104120 */
105121 TLC_MNG_UPDATE_NOTIF = 0xF7,
....@@ -146,4 +162,53 @@
146162 __le32 user_position[4];
147163 } __packed; /* MU_GROUP_MNG_NTFY_API_S_VER_1 */
148164
165
+enum iwl_channel_estimation_flags {
166
+ IWL_CHANNEL_ESTIMATION_ENABLE = BIT(0),
167
+ IWL_CHANNEL_ESTIMATION_TIMER = BIT(1),
168
+ IWL_CHANNEL_ESTIMATION_COUNTER = BIT(2),
169
+};
170
+
171
+/**
172
+ * struct iwl_channel_estimation_cfg - channel estimation reporting config
173
+ */
174
+struct iwl_channel_estimation_cfg {
175
+ /**
176
+ * @flags: flags, see &enum iwl_channel_estimation_flags
177
+ */
178
+ __le32 flags;
179
+ /**
180
+ * @timer: if enabled via flags, automatically disable after this many
181
+ * microseconds
182
+ */
183
+ __le32 timer;
184
+ /**
185
+ * @count: if enabled via flags, automatically disable after this many
186
+ * frames with channel estimation matrix were captured
187
+ */
188
+ __le32 count;
189
+ /**
190
+ * @rate_n_flags_mask: only try to record the channel estimation matrix
191
+ * if the rate_n_flags value for the received frame (let's call
192
+ * that rx_rnf) matches the mask/value given here like this:
193
+ * (rx_rnf & rate_n_flags_mask) == rate_n_flags_val.
194
+ */
195
+ __le32 rate_n_flags_mask;
196
+ /**
197
+ * @rate_n_flags_val: see @rate_n_flags_mask
198
+ */
199
+ __le32 rate_n_flags_val;
200
+ /**
201
+ * @reserved: reserved (for alignment)
202
+ */
203
+ __le32 reserved;
204
+ /**
205
+ * @frame_types: bitmap of frame types to capture, the received frame's
206
+ * subtype|type takes 6 bits in the frame and the corresponding bit
207
+ * in this field must be set to 1 to capture channel estimation for
208
+ * that frame type. Set to all-ones to enable capturing for all
209
+ * frame types.
210
+ */
211
+ __le64 frame_types;
212
+} __packed; /* CHEST_COLLECTOR_FILTER_CMD_API_S_VER_1 */
213
+
149214 #endif /* __iwl_fw_api_datapath_h__ */