diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-trans-pcie.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-trans-pcie.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c b/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c index aced6f8ae1e9..88e1c427f8f5 100644 --- a/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c +++ b/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c | |||
@@ -1044,7 +1044,7 @@ static int iwl_trans_pcie_start_fw(struct iwl_trans *trans, | |||
1044 | iwl_op_mode_hw_rf_kill(trans->op_mode, hw_rfkill); | 1044 | iwl_op_mode_hw_rf_kill(trans->op_mode, hw_rfkill); |
1045 | 1045 | ||
1046 | if (hw_rfkill) { | 1046 | if (hw_rfkill) { |
1047 | iwl_enable_interrupts(trans); | 1047 | iwl_enable_rfkill_int(trans); |
1048 | return -ERFKILL; | 1048 | return -ERFKILL; |
1049 | } | 1049 | } |
1050 | 1050 | ||
@@ -1553,8 +1553,7 @@ static void iwl_trans_pcie_stop_hw(struct iwl_trans *trans) | |||
1553 | iwl_write32(trans, CSR_INT, 0xFFFFFFFF); | 1553 | iwl_write32(trans, CSR_INT, 0xFFFFFFFF); |
1554 | 1554 | ||
1555 | /* Even if we stop the HW, we still want the RF kill interrupt */ | 1555 | /* Even if we stop the HW, we still want the RF kill interrupt */ |
1556 | IWL_DEBUG_ISR(trans, "Enabling rfkill interrupt\n"); | 1556 | iwl_enable_rfkill_int(trans); |
1557 | iwl_write32(trans, CSR_INT_MASK, CSR_INT_BIT_RF_KILL); | ||
1558 | } | 1557 | } |
1559 | 1558 | ||
1560 | static int iwl_trans_pcie_reclaim(struct iwl_trans *trans, int sta_id, int tid, | 1559 | static int iwl_trans_pcie_reclaim(struct iwl_trans *trans, int sta_id, int tid, |
@@ -1647,10 +1646,14 @@ static int iwl_trans_pcie_resume(struct iwl_trans *trans) | |||
1647 | { | 1646 | { |
1648 | bool hw_rfkill; | 1647 | bool hw_rfkill; |
1649 | 1648 | ||
1650 | iwl_enable_interrupts(trans); | ||
1651 | |||
1652 | hw_rfkill = !(iwl_read32(trans, CSR_GP_CNTRL) & | 1649 | hw_rfkill = !(iwl_read32(trans, CSR_GP_CNTRL) & |
1653 | CSR_GP_CNTRL_REG_FLAG_HW_RF_KILL_SW); | 1650 | CSR_GP_CNTRL_REG_FLAG_HW_RF_KILL_SW); |
1651 | |||
1652 | if (hw_rfkill) | ||
1653 | iwl_enable_rfkill_int(trans); | ||
1654 | else | ||
1655 | iwl_enable_interrupts(trans); | ||
1656 | |||
1654 | iwl_op_mode_hw_rf_kill(trans->op_mode, hw_rfkill); | 1657 | iwl_op_mode_hw_rf_kill(trans->op_mode, hw_rfkill); |
1655 | 1658 | ||
1656 | return 0; | 1659 | return 0; |