diff options
author | Johannes Berg <johannes.berg@intel.com> | 2013-11-12 11:30:52 -0500 |
---|---|---|
committer | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2014-02-03 15:23:34 -0500 |
commit | a21d7bcbf4c65bb7f79e16287d41040e4c7f5596 (patch) | |
tree | ac16a9b2af653bb739afe4cfb2388ea7a266fee1 /drivers/net/wireless/iwlwifi/mvm/mvm.h | |
parent | 992f81fcd97e87e7ebbb26e544430adf483203f0 (diff) |
iwlwifi: mvm: add low-latency framework
For various traffic use cases, we want to be able to treat multi-
channel scenarios differently. Introduce a low-latency framework
that currently only has a debugfs file to enable low-latency mode,
but can later be extended.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/mvm/mvm.h')
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/mvm.h | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/mvm.h b/drivers/net/wireless/iwlwifi/mvm/mvm.h index 02e4bdc80de2..00bc4ce06cca 100644 --- a/drivers/net/wireless/iwlwifi/mvm/mvm.h +++ b/drivers/net/wireless/iwlwifi/mvm/mvm.h | |||
@@ -269,7 +269,9 @@ struct iwl_mvm_vif_bf_data { | |||
269 | * @ap_ibss_active: indicates that AP/IBSS is configured and that the interface | 269 | * @ap_ibss_active: indicates that AP/IBSS is configured and that the interface |
270 | * should get quota etc. | 270 | * should get quota etc. |
271 | * @monitor_active: indicates that monitor context is configured, and that the | 271 | * @monitor_active: indicates that monitor context is configured, and that the |
272 | * interface should get quota etc. | 272 | * interface should get quota etc. |
273 | * @low_latency: indicates that this interface is in low-latency mode | ||
274 | * (VMACLowLatencyMode) | ||
273 | * @queue_params: QoS params for this MAC | 275 | * @queue_params: QoS params for this MAC |
274 | * @bcast_sta: station used for broadcast packets. Used by the following | 276 | * @bcast_sta: station used for broadcast packets. Used by the following |
275 | * vifs: P2P_DEVICE, GO and AP. | 277 | * vifs: P2P_DEVICE, GO and AP. |
@@ -285,6 +287,7 @@ struct iwl_mvm_vif { | |||
285 | bool uploaded; | 287 | bool uploaded; |
286 | bool ap_ibss_active; | 288 | bool ap_ibss_active; |
287 | bool monitor_active; | 289 | bool monitor_active; |
290 | bool low_latency; | ||
288 | struct iwl_mvm_vif_bf_data bf_data; | 291 | struct iwl_mvm_vif_bf_data bf_data; |
289 | 292 | ||
290 | u32 ap_beacon_time; | 293 | u32 ap_beacon_time; |
@@ -909,6 +912,26 @@ void iwl_mvm_update_smps(struct iwl_mvm *mvm, struct ieee80211_vif *vif, | |||
909 | enum iwl_mvm_smps_type_request req_type, | 912 | enum iwl_mvm_smps_type_request req_type, |
910 | enum ieee80211_smps_mode smps_request); | 913 | enum ieee80211_smps_mode smps_request); |
911 | 914 | ||
915 | /* Low latency */ | ||
916 | int iwl_mvm_update_low_latency(struct iwl_mvm *mvm, struct ieee80211_vif *vif, | ||
917 | bool value); | ||
918 | /* get VMACLowLatencyMode */ | ||
919 | static inline bool iwl_mvm_vif_low_latency(struct iwl_mvm_vif *mvmvif) | ||
920 | { | ||
921 | /* | ||
922 | * should this consider associated/active/... state? | ||
923 | * | ||
924 | * Normally low-latency should only be active on interfaces | ||
925 | * that are active, but at least with debugfs it can also be | ||
926 | * enabled on interfaces that aren't active. However, when | ||
927 | * interface aren't active then they aren't added into the | ||
928 | * binding, so this has no real impact. For now, just return | ||
929 | * the current desired low-latency state. | ||
930 | */ | ||
931 | |||
932 | return mvmvif->low_latency; | ||
933 | } | ||
934 | |||
912 | /* Thermal management and CT-kill */ | 935 | /* Thermal management and CT-kill */ |
913 | void iwl_mvm_tt_handler(struct iwl_mvm *mvm); | 936 | void iwl_mvm_tt_handler(struct iwl_mvm *mvm); |
914 | void iwl_mvm_tt_initialize(struct iwl_mvm *mvm); | 937 | void iwl_mvm_tt_initialize(struct iwl_mvm *mvm); |