diff options
author | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2012-06-14 05:27:56 -0400 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2012-06-18 04:46:45 -0400 |
commit | ae8baec22878be1f8d14b5bb00ac83f7954a9832 (patch) | |
tree | b579f800952bf3f3d3c042f46743066798624c4e /drivers/net/wireless/iwlwifi | |
parent | 3595c003f962bcf089f83e8ea44fd3169ad60ca3 (diff) |
iwlwifi: don't disable interrupt while starting tx
This is really not needed, we already have a lock inside
the accesses to the prph.
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')
-rw-r--r-- | drivers/net/wireless/iwlwifi/pcie/trans.c | 8 |
1 files changed, 0 insertions, 8 deletions
diff --git a/drivers/net/wireless/iwlwifi/pcie/trans.c b/drivers/net/wireless/iwlwifi/pcie/trans.c index e20880acdd34..42f369d15f48 100644 --- a/drivers/net/wireless/iwlwifi/pcie/trans.c +++ b/drivers/net/wireless/iwlwifi/pcie/trans.c | |||
@@ -1046,15 +1046,12 @@ static int iwl_trans_pcie_start_fw(struct iwl_trans *trans, | |||
1046 | 1046 | ||
1047 | /* | 1047 | /* |
1048 | * Activate/Deactivate Tx DMA/FIFO channels according tx fifos mask | 1048 | * Activate/Deactivate Tx DMA/FIFO channels according tx fifos mask |
1049 | * must be called under the irq lock and with MAC access | ||
1050 | */ | 1049 | */ |
1051 | static void iwl_trans_txq_set_sched(struct iwl_trans *trans, u32 mask) | 1050 | static void iwl_trans_txq_set_sched(struct iwl_trans *trans, u32 mask) |
1052 | { | 1051 | { |
1053 | struct iwl_trans_pcie __maybe_unused *trans_pcie = | 1052 | struct iwl_trans_pcie __maybe_unused *trans_pcie = |
1054 | IWL_TRANS_GET_PCIE_TRANS(trans); | 1053 | IWL_TRANS_GET_PCIE_TRANS(trans); |
1055 | 1054 | ||
1056 | lockdep_assert_held(&trans_pcie->irq_lock); | ||
1057 | |||
1058 | iwl_write_prph(trans, SCD_TXFACT, mask); | 1055 | iwl_write_prph(trans, SCD_TXFACT, mask); |
1059 | } | 1056 | } |
1060 | 1057 | ||
@@ -1062,12 +1059,9 @@ static void iwl_tx_start(struct iwl_trans *trans) | |||
1062 | { | 1059 | { |
1063 | struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans); | 1060 | struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans); |
1064 | u32 a; | 1061 | u32 a; |
1065 | unsigned long flags; | ||
1066 | int i, chan; | 1062 | int i, chan; |
1067 | u32 reg_val; | 1063 | u32 reg_val; |
1068 | 1064 | ||
1069 | spin_lock_irqsave(&trans_pcie->irq_lock, flags); | ||
1070 | |||
1071 | /* make sure all queue are not stopped/used */ | 1065 | /* make sure all queue are not stopped/used */ |
1072 | memset(trans_pcie->queue_stopped, 0, sizeof(trans_pcie->queue_stopped)); | 1066 | memset(trans_pcie->queue_stopped, 0, sizeof(trans_pcie->queue_stopped)); |
1073 | memset(trans_pcie->queue_used, 0, sizeof(trans_pcie->queue_used)); | 1067 | memset(trans_pcie->queue_used, 0, sizeof(trans_pcie->queue_used)); |
@@ -1118,8 +1112,6 @@ static void iwl_tx_start(struct iwl_trans *trans) | |||
1118 | iwl_write_direct32(trans, FH_TX_CHICKEN_BITS_REG, | 1112 | iwl_write_direct32(trans, FH_TX_CHICKEN_BITS_REG, |
1119 | reg_val | FH_TX_CHICKEN_BITS_SCD_AUTO_RETRY_EN); | 1113 | reg_val | FH_TX_CHICKEN_BITS_SCD_AUTO_RETRY_EN); |
1120 | 1114 | ||
1121 | spin_unlock_irqrestore(&trans_pcie->irq_lock, flags); | ||
1122 | |||
1123 | /* Enable L1-Active */ | 1115 | /* Enable L1-Active */ |
1124 | iwl_clear_bits_prph(trans, APMG_PCIDEV_STT_REG, | 1116 | iwl_clear_bits_prph(trans, APMG_PCIDEV_STT_REG, |
1125 | APMG_PCIDEV_STT_VAL_L1_ACT_DIS); | 1117 | APMG_PCIDEV_STT_VAL_L1_ACT_DIS); |