aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi
diff options
context:
space:
mode:
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>2012-06-14 05:27:56 -0400
committerJohannes Berg <johannes.berg@intel.com>2012-06-18 04:46:45 -0400
commitae8baec22878be1f8d14b5bb00ac83f7954a9832 (patch)
treeb579f800952bf3f3d3c042f46743066798624c4e /drivers/net/wireless/iwlwifi
parent3595c003f962bcf089f83e8ea44fd3169ad60ca3 (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.c8
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 */
1051static void iwl_trans_txq_set_sched(struct iwl_trans *trans, u32 mask) 1050static 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);