diff options
author | Abhijeet Kolekar <abhijeet.kolekar@intel.com> | 2009-06-03 14:44:09 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-06-04 10:58:10 -0400 |
commit | ee5006a19c9e040d715efb75a6f4fa78764869ce (patch) | |
tree | f563037a291cdfbff684cf63b14dd0d3618c8f16 | |
parent | d14d44407b9f06e3cf967fcef28ccb780caf0583 (diff) |
iwl3945/iwlwifi: fix led bug when SW rfkill
Patch fixes the bug at
http://www.intellinuxwireless.org/bugzilla/show_bug.cgi?id=1903
when SW rfkill is invoked by 'iwconfig txpower off',
the existing connection disassociates and led off command is sent
to the device which returns error as rfkill is 'true'.
Patch fixes this by just avoiding sending the led off/on command when
disassociated. The main purpose of the led_disassociate callback
is to start or stop the blinking.
There are three states in led
1) Always on when radio is on
2) Always off when radio is off
3) blink when associated and if there is some traffic.
In this callback 'allow_blinking' needs to be set false
when associated, as LED will be always on.
Signed-off-by: Abhijeet Kolekar <abhijeet.kolekar@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-3945-led.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-led.c | 4 |
2 files changed, 0 insertions, 8 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945-led.c b/drivers/net/wireless/iwlwifi/iwl-3945-led.c index bd7e520d98c2..225e5f889346 100644 --- a/drivers/net/wireless/iwlwifi/iwl-3945-led.c +++ b/drivers/net/wireless/iwlwifi/iwl-3945-led.c | |||
@@ -167,10 +167,6 @@ static int iwl3945_led_disassociate(struct iwl_priv *priv, int led_id) | |||
167 | IWL_DEBUG_LED(priv, "Disassociated\n"); | 167 | IWL_DEBUG_LED(priv, "Disassociated\n"); |
168 | 168 | ||
169 | priv->allow_blinking = 0; | 169 | priv->allow_blinking = 0; |
170 | if (iwl_is_rfkill(priv)) | ||
171 | iwl3945_led_off(priv, led_id); | ||
172 | else | ||
173 | iwl3945_led_on(priv, led_id); | ||
174 | 170 | ||
175 | return 0; | 171 | return 0; |
176 | } | 172 | } |
diff --git a/drivers/net/wireless/iwlwifi/iwl-led.c b/drivers/net/wireless/iwlwifi/iwl-led.c index 19680f72087f..5e64252f80f6 100644 --- a/drivers/net/wireless/iwlwifi/iwl-led.c +++ b/drivers/net/wireless/iwlwifi/iwl-led.c | |||
@@ -176,10 +176,6 @@ static int iwl_led_associate(struct iwl_priv *priv, int led_id) | |||
176 | static int iwl_led_disassociate(struct iwl_priv *priv, int led_id) | 176 | static int iwl_led_disassociate(struct iwl_priv *priv, int led_id) |
177 | { | 177 | { |
178 | priv->allow_blinking = 0; | 178 | priv->allow_blinking = 0; |
179 | if (iwl_is_rfkill(priv)) | ||
180 | iwl4965_led_off_reg(priv, led_id); | ||
181 | else | ||
182 | iwl4965_led_on_reg(priv, led_id); | ||
183 | 179 | ||
184 | return 0; | 180 | return 0; |
185 | } | 181 | } |