On Mon, May 26, 2014 at 11:13 AM, Emmanuel Grumbach <egrumbach@xxxxxxxxx> wrote: >>>>> >>>>> diff --git a/drivers/net/wireless/iwlwifi/dvm/power.c >>>>> b/drivers/net/wireless/iwlwifi/dvm/power.c >>>>> index f2c1439..e5a6b70 100644 >>>>> --- a/drivers/net/wireless/iwlwifi/dvm/power.c >>>>> +++ b/drivers/net/wireless/iwlwifi/dvm/power.c >>>>> @@ -288,6 +288,9 @@ static void iwl_power_build_cmd(struct iwl_priv *priv, >>>>> bool enabled = priv->hw->conf.flags & IEEE80211_CONF_PS; >>>>> int dtimper; >>>>> >>>>> + iwl_power_sleep_cam_cmd(priv, cmd); >>>>> + return; >>>>> + >>>>> dtimper = priv->hw->conf.ps_dtim_period ?: 1; >>>>> >>>>> if (priv->wowlan) >>>> >>>> This patch has survived for about 15 minutes on 3.15-rc. It certainly >>>> has some effect: pinging from the AP to the STA now takes a consistent >>>> ~3.8ms instead of taking varying amounts of time between 5 and 200 ms >>>> or so. >>>> >>>> I wonder if this is something 802.11n/802.11ac-specific? I remember >>>> having all kinds of problems with 802.11n on this laptop that were >>>> resolved by turning off 11n or turning off power saving. >>>> >>> >>> well... my patch really turns off power saving. The hard way. >>> But since you are having issues - I guess I'll post it and disable >>> power save for these devices. Note that today most of the power save >>> features are disabled anyway. >> >> Would it make sense to do this only when connected to a VHT-supporting >> AP or whatever AP feature is probably triggering the problem? > > I am not sure it is related to some "VHT / whatever" feature. From > your logs, I'd say this bug could have happened with any AP. It is > down there in the PCI layer. > >> >> *sigh* I'd just plug in a new PCIe wireless card, except that I think >> that my evil BIOS will refuse to boot if I do that. >> > I can recommend 7260 :) http://www.thinkwiki.org/wiki/Problem_with_unauthorized_MiniPCI_network_card I'm not sure how I feel about flashing my BIOS with random things off the internet :( > Before you do that, can you check this one? > > diff --git a/drivers/net/wireless/iwlwifi/dvm/power.c > b/drivers/net/wireless/iwlwifi/dvm/power.c > index f2c1439..047112c 100644 > --- a/drivers/net/wireless/iwlwifi/dvm/power.c > +++ b/drivers/net/wireless/iwlwifi/dvm/power.c > @@ -292,6 +292,8 @@ static void iwl_power_build_cmd(struct iwl_priv *priv, > > if (priv->wowlan) > iwl_static_sleep_cmd(priv, cmd, IWL_POWER_INDEX_5, dtimper); > + if (!enabled) > + iwl_power_sleep_cam_cmd(priv, cmd); > else if (!priv->lib->no_idle_support && > priv->hw->conf.flags & IEEE80211_CONF_IDLE) > iwl_static_sleep_cmd(priv, cmd, IWL_POWER_INDEX_5, 20); > @@ -299,9 +301,7 @@ static void iwl_power_build_cmd(struct iwl_priv *priv, > /* in thermal throttling low power state */ > iwl_static_sleep_cmd(priv, cmd, > iwl_tt_current_power_mode(priv), dtimper); > - } else if (!enabled) > - iwl_power_sleep_cam_cmd(priv, cmd); > - else if (priv->power_data.debug_sleep_level_override >= 0) > + } else if (priv->power_data.debug_sleep_level_override >= 0) > iwl_static_sleep_cmd(priv, cmd, > > priv->power_data.debug_sleep_level_override, > dtimper); > > This is the final version I want to send. I'll test it tonight. I'm away from both the network and the laptop right now. --Andy -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html