forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-02-19 1c055e55a242a33e574e48be530e06770a210dcd
kernel/drivers/net/wireless/intel/iwlwifi/mvm/time-event.h
....@@ -7,6 +7,7 @@
77 *
88 * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
99 * Copyright(c) 2013 - 2014 Intel Mobile Communications GmbH
10
+ * Copyright (C) 2019 - 2020 Intel Corporation
1011 *
1112 * This program is free software; you can redistribute it and/or modify
1213 * it under the terms of version 2 of the GNU General Public License as
....@@ -16,11 +17,6 @@
1617 * WITHOUT ANY WARRANTY; without even the implied warranty of
1718 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1819 * General Public License for more details.
19
- *
20
- * You should have received a copy of the GNU General Public License
21
- * along with this program; if not, write to the Free Software
22
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110,
23
- * USA
2420 *
2521 * The full GNU General Public License is included in this distribution
2622 * in the file called COPYING.
....@@ -33,6 +29,7 @@
3329 *
3430 * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
3531 * Copyright(c) 2013 - 2014 Intel Mobile Communications GmbH
32
+ * Copyright (C) 2019 - 2020 Intel Corporation
3633 * All rights reserved.
3734 *
3835 * Redistribution and use in source and binary forms, with or without
....@@ -183,12 +180,13 @@
183180 /**
184181 * iwl_mvm_stop_roc - stop remain on channel functionality
185182 * @mvm: the mvm component
183
+ * @vif: the virtual interface for which the roc is stopped
186184 *
187185 * This function can be used to cancel an ongoing ROC session.
188186 * The function is async, it will instruct the FW to stop serving the ROC
189187 * session, but will not wait for the actual stopping of the session.
190188 */
191
-void iwl_mvm_stop_roc(struct iwl_mvm *mvm);
189
+void iwl_mvm_stop_roc(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
192190
193191 /**
194192 * iwl_mvm_remove_time_event - general function to clean up of time event
....@@ -218,6 +216,9 @@
218216 void iwl_mvm_cleanup_roc_te(struct iwl_mvm *mvm);
219217 void iwl_mvm_roc_done_wk(struct work_struct *wk);
220218
219
+void iwl_mvm_remove_csa_period(struct iwl_mvm *mvm,
220
+ struct ieee80211_vif *vif);
221
+
221222 /**
222223 * iwl_mvm_schedule_csa_period - request channel switch absence period
223224 * @mvm: the mvm component
....@@ -247,4 +248,22 @@
247248 return !!te_data->uid;
248249 }
249250
251
+/**
252
+ * iwl_mvm_schedule_session_protection - schedule a session protection
253
+ * @mvm: the mvm component
254
+ * @vif: the virtual interface for which the protection issued
255
+ * @duration: the duration of the protection
256
+ * @wait_for_notif: if true, will block until the start of the protection
257
+ */
258
+void iwl_mvm_schedule_session_protection(struct iwl_mvm *mvm,
259
+ struct ieee80211_vif *vif,
260
+ u32 duration, u32 min_duration,
261
+ bool wait_for_notif);
262
+
263
+/**
264
+ * iwl_mvm_rx_session_protect_notif - handles %SESSION_PROTECTION_NOTIF
265
+ */
266
+void iwl_mvm_rx_session_protect_notif(struct iwl_mvm *mvm,
267
+ struct iwl_rx_cmd_buffer *rxb);
268
+
250269 #endif /* __time_event_h__ */