On Mon, Aug 08, 2011 at 07:32:37PM -0700, Guy, Wey-Yi wrote: > On Mon, 2011-08-08 at 19:53 -0700, Devin J. Pohly wrote: > > 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 > > > > Cc: sta...@kernel.org #2.6.39, #3.0.0 > > 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> > > --- > > 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 deletions(-) > > > > diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c > > b/drivers/net/wireless/iwlwifi/iwl-5000.c > > index e816c27..f1c3f49 100644 > > --- 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_base_params = { > > .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, > > diff --git a/drivers/net/wireless/iwlwifi/iwl-core.h > > b/drivers/net/wireless/iwlwifi/iwl-core.h > > index a54d416..b76996a 100644 > > --- 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 > > diff --git a/drivers/net/wireless/iwlwifi/iwl-power.c > > b/drivers/net/wireless/iwlwifi/iwl-power.c > > index 595c930..4a05a6a 100644 > > --- 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 iwl_priv *priv, > > > > 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 */ > > Thank you very much Devin. > Greg, is this works for you?
Yes it does, thanks, now queued up. greg k-h _______________________________________________ stable mailing list stable@linux.kernel.org http://linux.kernel.org/mailman/listinfo/stable