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>
This commit is contained in:
committed by
Johannes Berg
parent
3595c003f9
commit
ae8baec228
@@ -1046,15 +1046,12 @@ static int iwl_trans_pcie_start_fw(struct iwl_trans *trans,
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Activate/Deactivate Tx DMA/FIFO channels according tx fifos mask
|
* Activate/Deactivate Tx DMA/FIFO channels according tx fifos mask
|
||||||
* must be called under the irq lock and with MAC access
|
|
||||||
*/
|
*/
|
||||||
static void iwl_trans_txq_set_sched(struct iwl_trans *trans, u32 mask)
|
static void iwl_trans_txq_set_sched(struct iwl_trans *trans, u32 mask)
|
||||||
{
|
{
|
||||||
struct iwl_trans_pcie __maybe_unused *trans_pcie =
|
struct iwl_trans_pcie __maybe_unused *trans_pcie =
|
||||||
IWL_TRANS_GET_PCIE_TRANS(trans);
|
IWL_TRANS_GET_PCIE_TRANS(trans);
|
||||||
|
|
||||||
lockdep_assert_held(&trans_pcie->irq_lock);
|
|
||||||
|
|
||||||
iwl_write_prph(trans, SCD_TXFACT, mask);
|
iwl_write_prph(trans, SCD_TXFACT, mask);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1062,12 +1059,9 @@ static void iwl_tx_start(struct iwl_trans *trans)
|
|||||||
{
|
{
|
||||||
struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans);
|
struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans);
|
||||||
u32 a;
|
u32 a;
|
||||||
unsigned long flags;
|
|
||||||
int i, chan;
|
int i, chan;
|
||||||
u32 reg_val;
|
u32 reg_val;
|
||||||
|
|
||||||
spin_lock_irqsave(&trans_pcie->irq_lock, flags);
|
|
||||||
|
|
||||||
/* make sure all queue are not stopped/used */
|
/* make sure all queue are not stopped/used */
|
||||||
memset(trans_pcie->queue_stopped, 0, sizeof(trans_pcie->queue_stopped));
|
memset(trans_pcie->queue_stopped, 0, sizeof(trans_pcie->queue_stopped));
|
||||||
memset(trans_pcie->queue_used, 0, sizeof(trans_pcie->queue_used));
|
memset(trans_pcie->queue_used, 0, sizeof(trans_pcie->queue_used));
|
||||||
@@ -1118,8 +1112,6 @@ static void iwl_tx_start(struct iwl_trans *trans)
|
|||||||
iwl_write_direct32(trans, FH_TX_CHICKEN_BITS_REG,
|
iwl_write_direct32(trans, FH_TX_CHICKEN_BITS_REG,
|
||||||
reg_val | FH_TX_CHICKEN_BITS_SCD_AUTO_RETRY_EN);
|
reg_val | FH_TX_CHICKEN_BITS_SCD_AUTO_RETRY_EN);
|
||||||
|
|
||||||
spin_unlock_irqrestore(&trans_pcie->irq_lock, flags);
|
|
||||||
|
|
||||||
/* Enable L1-Active */
|
/* Enable L1-Active */
|
||||||
iwl_clear_bits_prph(trans, APMG_PCIDEV_STT_REG,
|
iwl_clear_bits_prph(trans, APMG_PCIDEV_STT_REG,
|
||||||
APMG_PCIDEV_STT_VAL_L1_ACT_DIS);
|
APMG_PCIDEV_STT_VAL_L1_ACT_DIS);
|
||||||
|
Reference in New Issue
Block a user