This is a note to let you know that I've just added the patch titled

    iwlagn: 5000 do not support idle mode

to the 3.0-stable tree which can be found at:
    
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     iwlagn-5000-do-not-support-idle-mode.patch
and it can be found in the queue-3.0 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <sta...@kernel.org> know about it.


>From djpo...@gmail.com  Tue Aug  9 09:40:10 2011
From: "Devin J. Pohly" <djpo...@gmail.com>
Date: Mon,  8 Aug 2011 20:53:58 -0600
Subject: iwlagn: 5000 do not support idle mode
To: gre...@suse.de
Cc: sta...@kernel.org, "Devin J. Pohly" <djpohly+...@gmail.com>, Wey-Yi Guy 
<wey-yi.w....@intel.com>, "John W. Linville" <linvi...@tuxdriver.com>
Message-ID: <1312858438-5080-1-git-send-email-djpo...@gmail.com>


From: Wey-Yi Guy <wey-yi.w....@intel.com>

commit f35291082294ca6737953bbe4e9491ede04ab822 upstream.

5000 series has issue supporting power save idle mode:
commit  9dc2153315650eae220898668b6aa56a25c130be

iwlwifi: always support idle mode for agn devices

For agn devices, always support idle mode which help power
consumption in idle unassociated state.

the above changes cause 5000 become not stable when power management is "on"

http://bugzilla.intellinuxwireless.org/show_bug.cgi?id=2312

Reported-by: Devin J. Pohly <djpohly+...@gmail.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w....@intel.com>
Signed-off-by: John W. Linville <linvi...@tuxdriver.com>
Signed-off-by: Devin J. Pohly <djpohly+...@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gre...@suse.de>

---
 drivers/net/wireless/iwlwifi/iwl-5000.c  |    1 +
 drivers/net/wireless/iwlwifi/iwl-core.h  |    2 ++
 drivers/net/wireless/iwlwifi/iwl-power.c |    3 ++-
 3 files changed, 5 insertions(+), 1 deletion(-)

--- a/drivers/net/wireless/iwlwifi/iwl-5000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-5000.c
@@ -421,6 +421,7 @@ static struct iwl_base_params iwl5000_ba
        .chain_noise_scale = 1000,
        .wd_timeout = IWL_LONG_WD_TIMEOUT,
        .max_event_log_size = 512,
+       .no_idle_support = true,
 };
 static struct iwl_ht_params iwl5000_ht_params = {
        .ht_greenfield_support = true,
--- a/drivers/net/wireless/iwlwifi/iwl-core.h
+++ b/drivers/net/wireless/iwlwifi/iwl-core.h
@@ -195,6 +195,7 @@ struct iwl_mod_params {
  * @temperature_kelvin: temperature report by uCode in kelvin
  * @max_event_log_size: size of event log buffer size for ucode event logging
  * @shadow_reg_enable: HW shadhow register bit
+ * @no_idle_support: do not support idle mode
  */
 struct iwl_base_params {
        int eeprom_size;
@@ -216,6 +217,7 @@ struct iwl_base_params {
        bool temperature_kelvin;
        u32 max_event_log_size;
        const bool shadow_reg_enable;
+       const bool no_idle_support;
 };
 /*
  * @advanced_bt_coexist: support advanced bt coexist
--- a/drivers/net/wireless/iwlwifi/iwl-power.c
+++ b/drivers/net/wireless/iwlwifi/iwl-power.c
@@ -355,7 +355,8 @@ static void iwl_power_build_cmd(struct i
 
        dtimper = priv->hw->conf.ps_dtim_period ?: 1;
 
-       if (priv->hw->conf.flags & IEEE80211_CONF_IDLE)
+       if (!priv->cfg->base_params->no_idle_support &&
+                priv->hw->conf.flags & IEEE80211_CONF_IDLE)
                iwl_static_sleep_cmd(priv, cmd, IWL_POWER_INDEX_5, 20);
        else if (iwl_tt_is_low_power_state(priv)) {
                /* in thermal throttling low power state */


Patches currently in stable-queue which might be from djpo...@gmail.com are

queue-3.0/iwlagn-5000-do-not-support-idle-mode.patch

_______________________________________________
stable mailing list
stable@linux.kernel.org
http://linux.kernel.org/mailman/listinfo/stable

Reply via email to