aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorReinette Chatre <reinette.chatre@intel.com>2009-12-14 17:12:10 -0500
committerJohn W. Linville <linville@tuxdriver.com>2009-12-21 11:32:09 -0500
commitbc45a67079c916a9bd0a95b0b879cc0f259bac6e (patch)
treebdfdfa98246f0fb57da88c2c30ca17bc6f4b353c /drivers
parentb7bb1756cb6a610cdbac8cfdad9e79bb5670b63b (diff)
iwl3945: disable power save
we see from http://bugzilla.intellinuxwireless.org/show_bug.cgi?id=2125 that power saving does not work well on 3945. Since then power saving has also been connected with association problems where an AP deathenticates a 3945 after it is unable to transmit data to it - this happens when 3945 enters power savings mode. Disable power save support until issues are resolved. Signed-off-by: Reinette Chatre <reinette.chatre@intel.com> CC: stable@kernel.org Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-3945.c2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl3945-base.c8
2 files changed, 7 insertions, 3 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945.c b/drivers/net/wireless/iwlwifi/iwl-3945.c
index 4609323d8436..e413bd35bc41 100644
--- a/drivers/net/wireless/iwlwifi/iwl-3945.c
+++ b/drivers/net/wireless/iwlwifi/iwl-3945.c
@@ -2835,6 +2835,7 @@ static struct iwl_cfg iwl3945_bg_cfg = {
2835 .use_isr_legacy = true, 2835 .use_isr_legacy = true,
2836 .ht_greenfield_support = false, 2836 .ht_greenfield_support = false,
2837 .led_compensation = 64, 2837 .led_compensation = 64,
2838 .broken_powersave = true,
2838}; 2839};
2839 2840
2840static struct iwl_cfg iwl3945_abg_cfg = { 2841static struct iwl_cfg iwl3945_abg_cfg = {
@@ -2851,6 +2852,7 @@ static struct iwl_cfg iwl3945_abg_cfg = {
2851 .use_isr_legacy = true, 2852 .use_isr_legacy = true,
2852 .ht_greenfield_support = false, 2853 .ht_greenfield_support = false,
2853 .led_compensation = 64, 2854 .led_compensation = 64,
2855 .broken_powersave = true,
2854}; 2856};
2855 2857
2856struct pci_device_id iwl3945_hw_card_ids[] = { 2858struct pci_device_id iwl3945_hw_card_ids[] = {
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c
index 4c0e47586896..c322d6c13182 100644
--- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
@@ -3932,9 +3932,11 @@ static int iwl3945_setup_mac(struct iwl_priv *priv)
3932 /* Tell mac80211 our characteristics */ 3932 /* Tell mac80211 our characteristics */
3933 hw->flags = IEEE80211_HW_SIGNAL_DBM | 3933 hw->flags = IEEE80211_HW_SIGNAL_DBM |
3934 IEEE80211_HW_NOISE_DBM | 3934 IEEE80211_HW_NOISE_DBM |
3935 IEEE80211_HW_SPECTRUM_MGMT | 3935 IEEE80211_HW_SPECTRUM_MGMT;
3936 IEEE80211_HW_SUPPORTS_PS | 3936
3937 IEEE80211_HW_SUPPORTS_DYNAMIC_PS; 3937 if (!priv->cfg->broken_powersave)
3938 hw->flags |= IEEE80211_HW_SUPPORTS_PS |
3939 IEEE80211_HW_SUPPORTS_DYNAMIC_PS;
3938 3940
3939 hw->wiphy->interface_modes = 3941 hw->wiphy->interface_modes =
3940 BIT(NL80211_IFTYPE_STATION) | 3942 BIT(NL80211_IFTYPE_STATION) |