aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/pcie/tx.c
diff options
context:
space:
mode:
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>2012-05-28 09:33:48 -0400
committerJohannes Berg <johannes.berg@intel.com>2012-06-06 07:21:17 -0400
commit588d932044169979bf028eab2155f9acd1d0418d (patch)
tree7c281d1f88b54073662aef58accf8bc6bd417295 /drivers/net/wireless/iwlwifi/pcie/tx.c
parentd370493f9be79530950dfab23b980ce60bc84f34 (diff)
iwlwifi: SCD_INT_MSK is obsolete - don't update it
The scheduler can issue an interrupt when moving the read pointer. To get this interrupt, the driver needs to configure what queue can issue an interrupt when its read pointer moves in the scheduler: this is the SCD_INT_MSK. The driver also needs to enable the interrupt in CSR_INT_MASK (bit CSR_INT_BIT_SCD). Since we don't enable the scheduler interrupt in CSR_INT_MASK, there is no point in requesting an interrupt from the scheduler: it will be masked anyway. So don't configure the scheduler to issue interrupts at all. 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/tx.c')
-rw-r--r--drivers/net/wireless/iwlwifi/pcie/tx.c4
1 files changed, 0 insertions, 4 deletions
diff --git a/drivers/net/wireless/iwlwifi/pcie/tx.c b/drivers/net/wireless/iwlwifi/pcie/tx.c
index 583451c710e3..8a331a90f28e 100644
--- a/drivers/net/wireless/iwlwifi/pcie/tx.c
+++ b/drivers/net/wireless/iwlwifi/pcie/tx.c
@@ -480,8 +480,6 @@ void iwl_trans_pcie_tx_agg_setup(struct iwl_trans *trans, int txq_id, int fifo,
480 ((frame_limit << SCD_QUEUE_CTX_REG2_FRAME_LIMIT_POS) & 480 ((frame_limit << SCD_QUEUE_CTX_REG2_FRAME_LIMIT_POS) &
481 SCD_QUEUE_CTX_REG2_FRAME_LIMIT_MSK)); 481 SCD_QUEUE_CTX_REG2_FRAME_LIMIT_MSK));
482 482
483 iwl_set_bits_prph(trans, SCD_INTERRUPT_MASK, (1 << txq_id));
484
485 /* Set up Status area in SRAM, map to Tx DMA/FIFO, activate the queue */ 483 /* Set up Status area in SRAM, map to Tx DMA/FIFO, activate the queue */
486 iwl_trans_tx_queue_set_status(trans, &trans_pcie->txq[txq_id], 484 iwl_trans_tx_queue_set_status(trans, &trans_pcie->txq[txq_id],
487 fifo, true); 485 fifo, true);
@@ -506,8 +504,6 @@ void iwl_trans_pcie_tx_agg_disable(struct iwl_trans *trans, int txq_id)
506 trans_pcie->txq[txq_id].q.write_ptr = 0; 504 trans_pcie->txq[txq_id].q.write_ptr = 0;
507 iwl_trans_set_wr_ptrs(trans, txq_id, 0); 505 iwl_trans_set_wr_ptrs(trans, txq_id, 0);
508 506
509 iwl_clear_bits_prph(trans, SCD_INTERRUPT_MASK, BIT(txq_id));
510
511 iwl_trans_tx_queue_set_status(trans, &trans_pcie->txq[txq_id], 507 iwl_trans_tx_queue_set_status(trans, &trans_pcie->txq[txq_id],
512 0, false); 508 0, false);
513} 509}