aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/mac80211.h
diff options
context:
space:
mode:
authorEliad Peller <eliad@wizery.com>2014-11-04 04:43:54 -0500
committerJohannes Berg <johannes.berg@intel.com>2014-11-04 07:49:00 -0500
commitcf2c92d840c1424bcb3bb501147c79c9b067ad77 (patch)
tree60629accc499abd5c660e5330ea5880942672e3e /include/net/mac80211.h
parent13a8098af93e31788684c1f2682739beb93dc680 (diff)
mac80211: replace restart_complete() with reconfig_complete()
Drivers might want to know also when mac80211 has completed reconfiguring after resume (e.g. in order to know when frames can be passed to mac80211). Rename restart_complete() to a more-generic reconfig_complete(), and add a new enum to indicate the reconfiguration type. Update the current users with the new prototype. Signed-off-by: Eliad Peller <eliadx.peller@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'include/net/mac80211.h')
-rw-r--r--include/net/mac80211.h29
1 files changed, 23 insertions, 6 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index db54635d65c5..5f203a6a5e7e 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -2389,6 +2389,22 @@ enum ieee80211_roc_type {
2389}; 2389};
2390 2390
2391/** 2391/**
2392 * enum ieee80211_reconfig_complete_type - reconfig type
2393 *
2394 * This enum is used by the reconfig_complete() callback to indicate what
2395 * reconfiguration type was completed.
2396 *
2397 * @IEEE80211_RECONFIG_TYPE_RESTART: hw restart type
2398 * (also due to resume() callback returning 1)
2399 * @IEEE80211_RECONFIG_TYPE_SUSPEND: suspend type (regardless
2400 * of wowlan configuration)
2401 */
2402enum ieee80211_reconfig_type {
2403 IEEE80211_RECONFIG_TYPE_RESTART,
2404 IEEE80211_RECONFIG_TYPE_SUSPEND,
2405};
2406
2407/**
2392 * struct ieee80211_ops - callbacks from mac80211 to the driver 2408 * struct ieee80211_ops - callbacks from mac80211 to the driver
2393 * 2409 *
2394 * This structure contains various callbacks that the driver may 2410 * This structure contains various callbacks that the driver may
@@ -2823,11 +2839,11 @@ enum ieee80211_roc_type {
2823 * disabled/enabled via @bss_info_changed. 2839 * disabled/enabled via @bss_info_changed.
2824 * @stop_ap: Stop operation on the AP interface. 2840 * @stop_ap: Stop operation on the AP interface.
2825 * 2841 *
2826 * @restart_complete: Called after a call to ieee80211_restart_hw(), when the 2842 * @reconfig_complete: Called after a call to ieee80211_restart_hw() and
2827 * reconfiguration has completed. This can help the driver implement the 2843 * during resume, when the reconfiguration has completed.
2828 * reconfiguration step. Also called when reconfiguring because the 2844 * This can help the driver implement the reconfiguration step (and
2829 * driver's resume function returned 1, as this is just like an "inline" 2845 * indicate mac80211 is ready to receive frames).
2830 * hardware restart. This callback may sleep. 2846 * This callback may sleep.
2831 * 2847 *
2832 * @ipv6_addr_change: IPv6 address assignment on the given interface changed. 2848 * @ipv6_addr_change: IPv6 address assignment on the given interface changed.
2833 * Currently, this is only called for managed or P2P client interfaces. 2849 * Currently, this is only called for managed or P2P client interfaces.
@@ -3050,7 +3066,8 @@ struct ieee80211_ops {
3050 int n_vifs, 3066 int n_vifs,
3051 enum ieee80211_chanctx_switch_mode mode); 3067 enum ieee80211_chanctx_switch_mode mode);
3052 3068
3053 void (*restart_complete)(struct ieee80211_hw *hw); 3069 void (*reconfig_complete)(struct ieee80211_hw *hw,
3070 enum ieee80211_reconfig_type reconfig_type);
3054 3071
3055#if IS_ENABLED(CONFIG_IPV6) 3072#if IS_ENABLED(CONFIG_IPV6)
3056 void (*ipv6_addr_change)(struct ieee80211_hw *hw, 3073 void (*ipv6_addr_change)(struct ieee80211_hw *hw,