aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-agn.c
diff options
context:
space:
mode:
authorBen Cahill <ben.m.cahill@intel.com>2009-11-06 17:53:01 -0500
committerJohn W. Linville <linville@tuxdriver.com>2009-11-11 15:23:47 -0500
commit8756990f99ecdfe64ed32cce878e36bddc16bdcc (patch)
treedb7a218666ed46af34fdb03ce3e0436b5da0c180 /drivers/net/wireless/iwlwifi/iwl-agn.c
parenta7e6611034530fce62f5499f77dd4fb6cde4d130 (diff)
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>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-agn.c')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index 2abd1f5b5eea..8198e14b8fad 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -1084,6 +1084,7 @@ static void iwl_irq_tasklet(struct iwl_priv *priv)
1084 u32 inta = 0; 1084 u32 inta = 0;
1085 u32 handled = 0; 1085 u32 handled = 0;
1086 unsigned long flags; 1086 unsigned long flags;
1087 u32 i;
1087#ifdef CONFIG_IWLWIFI_DEBUG 1088#ifdef CONFIG_IWLWIFI_DEBUG
1088 u32 inta_mask; 1089 u32 inta_mask;
1089#endif 1090#endif
@@ -1194,12 +1195,8 @@ static void iwl_irq_tasklet(struct iwl_priv *priv)
1194 if (inta & CSR_INT_BIT_WAKEUP) { 1195 if (inta & CSR_INT_BIT_WAKEUP) {
1195 IWL_DEBUG_ISR(priv, "Wakeup interrupt\n"); 1196 IWL_DEBUG_ISR(priv, "Wakeup interrupt\n");
1196 iwl_rx_queue_update_write_ptr(priv, &priv->rxq); 1197 iwl_rx_queue_update_write_ptr(priv, &priv->rxq);
1197 iwl_txq_update_write_ptr(priv, &priv->txq[0]); 1198 for (i = 0; i < priv->hw_params.max_txq_num; i++)
1198 iwl_txq_update_write_ptr(priv, &priv->txq[1]); 1199 iwl_txq_update_write_ptr(priv, &priv->txq[i]);
1199 iwl_txq_update_write_ptr(priv, &priv->txq[2]);
1200 iwl_txq_update_write_ptr(priv, &priv->txq[3]);
1201 iwl_txq_update_write_ptr(priv, &priv->txq[4]);
1202 iwl_txq_update_write_ptr(priv, &priv->txq[5]);
1203 1200
1204 priv->isr_stats.wakeup++; 1201 priv->isr_stats.wakeup++;
1205 1202