forked from Minki/linux
iwlagn: update write pointers in iwl_irq_tasklet()
Follow-up to "update write pointers for all tx queues after wakeup"; that patch changed iwl_irq_tasklet_legacy(), but not iwl_irq_tasklet(), so newer devices were not covered. Comments from original patch: Wakeup interrupt has been updating write pointers (indexes, actually) only for tx queues 0-5. This is adequate just for 3945, but inadequate for other devices, all of which have more tx queues. Now updating all tx/command queues, so device can be aware of all new tx and host commands enqueued while device was asleep. This can potentially improve data traffic bandwidth and/or latency. Signed-off-by: Ben Cahill <ben.m.cahill@intel.com> Signed-off-by: Reinette Chatre <reinette.chatre@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
a7e6611034
commit
8756990f99
@ -1084,6 +1084,7 @@ static void iwl_irq_tasklet(struct iwl_priv *priv)
|
||||
u32 inta = 0;
|
||||
u32 handled = 0;
|
||||
unsigned long flags;
|
||||
u32 i;
|
||||
#ifdef CONFIG_IWLWIFI_DEBUG
|
||||
u32 inta_mask;
|
||||
#endif
|
||||
@ -1194,12 +1195,8 @@ static void iwl_irq_tasklet(struct iwl_priv *priv)
|
||||
if (inta & CSR_INT_BIT_WAKEUP) {
|
||||
IWL_DEBUG_ISR(priv, "Wakeup interrupt\n");
|
||||
iwl_rx_queue_update_write_ptr(priv, &priv->rxq);
|
||||
iwl_txq_update_write_ptr(priv, &priv->txq[0]);
|
||||
iwl_txq_update_write_ptr(priv, &priv->txq[1]);
|
||||
iwl_txq_update_write_ptr(priv, &priv->txq[2]);
|
||||
iwl_txq_update_write_ptr(priv, &priv->txq[3]);
|
||||
iwl_txq_update_write_ptr(priv, &priv->txq[4]);
|
||||
iwl_txq_update_write_ptr(priv, &priv->txq[5]);
|
||||
for (i = 0; i < priv->hw_params.max_txq_num; i++)
|
||||
iwl_txq_update_write_ptr(priv, &priv->txq[i]);
|
||||
|
||||
priv->isr_stats.wakeup++;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user