On Tue, Dec 23, 2014 at 02:56:38PM +0200, Emmanuel Grumbach wrote: > From: Johannes Berg <johannes.berg@xxxxxxxxx> > > commit d6ca18de129fc4dd4374389561930b32820f35ff upstream. > Thank you, I'm queuing this for the 3.16 kernel. Cheers, -- Luís > With a significant number of deployed APs, enabling uAPSD leads to the > AP never using aggregation sessions (likely due to the complexities > involved in handling uAPSD in those.) This obviously results in a large > drop in throughput with such APs. > > On the other hand, uAPSD can result in some power consumption benefits, > but for now just disable it to get performance with affected APs back > up. > > Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx> > Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx> > --- > drivers/net/wireless/iwlwifi/Kconfig | 10 ++++++++++ > drivers/net/wireless/iwlwifi/iwl-drv.c | 8 +++++++- > 2 files changed, 17 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/wireless/iwlwifi/Kconfig b/drivers/net/wireless/iwlwifi/Kconfig > index 7fd5042..9c67e25 100644 > --- a/drivers/net/wireless/iwlwifi/Kconfig > +++ b/drivers/net/wireless/iwlwifi/Kconfig > @@ -85,6 +85,16 @@ config IWLWIFI_BCAST_FILTERING > If unsure, don't enable this option, as some programs might > expect incoming broadcasts for their normal operations. > > +config IWLWIFI_UAPSD > + bool "enable U-APSD by default" > + depends on IWLMVM > + help > + Say Y here to enable U-APSD by default. This may cause > + interoperability problems with some APs, manifesting in lower than > + expected throughput due to those APs not enabling aggregation > + > + If unsure, say N. > + > menu "Debugging Options" > depends on IWLWIFI > > diff --git a/drivers/net/wireless/iwlwifi/iwl-drv.c b/drivers/net/wireless/iwlwifi/iwl-drv.c > index f2a5c12..a09ce04 100644 > --- a/drivers/net/wireless/iwlwifi/iwl-drv.c > +++ b/drivers/net/wireless/iwlwifi/iwl-drv.c > @@ -1243,7 +1243,9 @@ struct iwl_mod_params iwlwifi_mod_params = { > .bt_coex_active = true, > .power_level = IWL_POWER_INDEX_1, > .wd_disable = true, > - .uapsd_disable = false, > +#ifndef CONFIG_IWLWIFI_UAPSD > + .uapsd_disable = true, > +#endif /* CONFIG_IWLWIFI_UAPSD */ > /* the rest are 0 by default */ > }; > IWL_EXPORT_SYMBOL(iwlwifi_mod_params); > @@ -1359,7 +1361,11 @@ MODULE_PARM_DESC(nvm_file, "NVM file name"); > > module_param_named(uapsd_disable, iwlwifi_mod_params.uapsd_disable, > bool, S_IRUGO); > +#ifdef CONFIG_IWLWIFI_UAPSD > MODULE_PARM_DESC(uapsd_disable, "disable U-APSD functionality (default: N)"); > +#else > +MODULE_PARM_DESC(uapsd_disable, "disable U-APSD functionality (default: Y)"); > +#endif > > /* > * set bt_coex_active to true, uCode will do kill/defer > -- > 1.9.1 > > -- > To unsubscribe from this list: send the line "unsubscribe stable" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html