diff options
author | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2013-07-25 13:14:34 +0300 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2013-07-26 10:07:10 +0200 |
commit | a53ee0a308b16e392e0219c585b10f329345766b (patch) | |
tree | 139296ac36182bb54338e05081809d6ccb3fb28f /drivers/net/wireless/iwlwifi/pcie | |
parent | b6658ff80c43bcf84be0bbe371c88af1452e7776 (diff) | |
download | kernel_goldelico_gta04-a53ee0a308b16e392e0219c585b10f329345766b.zip kernel_goldelico_gta04-a53ee0a308b16e392e0219c585b10f329345766b.tar.gz kernel_goldelico_gta04-a53ee0a308b16e392e0219c585b10f329345766b.tar.bz2 |
iwlwifi: pcie: clear RFKILL interrupt in AMPG
If we forget to do so, we can't send HCMD to firmware while
the NIC is in RFKILL state.
Cc: stable@vger.kernel.org
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/pcie')
-rw-r--r-- | drivers/net/wireless/iwlwifi/pcie/rx.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/pcie/rx.c b/drivers/net/wireless/iwlwifi/pcie/rx.c index fd848cd..f600e68 100644 --- a/drivers/net/wireless/iwlwifi/pcie/rx.c +++ b/drivers/net/wireless/iwlwifi/pcie/rx.c @@ -888,6 +888,14 @@ irqreturn_t iwl_pcie_irq_handler(int irq, void *dev_id) iwl_op_mode_hw_rf_kill(trans->op_mode, hw_rfkill); if (hw_rfkill) { + /* + * Clear the interrupt in APMG if the NIC is going down. + * Note that when the NIC exits RFkill (else branch), we + * can't access prph and the NIC will be reset in + * start_hw anyway. + */ + iwl_write_prph(trans, APMG_RTC_INT_STT_REG, + APMG_RTC_INT_STT_RFKILL); set_bit(STATUS_RFKILL, &trans_pcie->status); if (test_and_clear_bit(STATUS_HCMD_ACTIVE, &trans_pcie->status)) |