| From 3dd823e6b86407aed1a025041d8f1df77e43a9c8 Mon Sep 17 00:00:00 2001 |
| From: Don Fry <donald.h.fry@intel.com> |
| Date: Sun, 6 Feb 2011 09:29:45 -0800 |
| Subject: iwlagn: Re-enable RF_KILL interrupt when down |
| |
| From: Don Fry <donald.h.fry@intel.com> |
| |
| commit 3dd823e6b86407aed1a025041d8f1df77e43a9c8 upstream. |
| |
| With commit 554d1d027b19265c4aa3f718b3126d2b86e09a08 only one RF_KILL |
| interrupt will be seen by the driver when the interface is down. |
| |
| Re-enable the interrupt when it occurs to see all transitions. |
| |
| Signed-off-by: Don Fry <donald.h.fry@intel.com> |
| Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> |
| Signed-off-by: John W. Linville <linville@tuxdriver.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/net/wireless/iwlwifi/iwl-agn.c | 6 ++++++ |
| 1 file changed, 6 insertions(+) |
| |
| --- a/drivers/net/wireless/iwlwifi/iwl-agn.c |
| +++ b/drivers/net/wireless/iwlwifi/iwl-agn.c |
| @@ -1044,6 +1044,9 @@ static void iwl_irq_tasklet_legacy(struc |
| /* only Re-enable if diabled by irq */ |
| if (test_bit(STATUS_INT_ENABLED, &priv->status)) |
| iwl_enable_interrupts(priv); |
| + /* Re-enable RF_KILL if it occurred */ |
| + else if (handled & CSR_INT_BIT_RF_KILL) |
| + iwl_enable_rfkill_int(priv); |
| |
| #ifdef CONFIG_IWLWIFI_DEBUG |
| if (iwl_get_debug_level(priv) & (IWL_DL_ISR)) { |
| @@ -1245,6 +1248,9 @@ static void iwl_irq_tasklet(struct iwl_p |
| /* only Re-enable if diabled by irq */ |
| if (test_bit(STATUS_INT_ENABLED, &priv->status)) |
| iwl_enable_interrupts(priv); |
| + /* Re-enable RF_KILL if it occurred */ |
| + else if (handled & CSR_INT_BIT_RF_KILL) |
| + iwl_enable_rfkill_int(priv); |
| |
| spin_unlock_irqrestore(&priv->lock, flags); |
| |