aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2011-04-28 10:27:08 -0400
committerWey-Yi Guy <wey-yi.w.guy@intel.com>2011-05-06 13:46:07 -0400
commitccb6c1c0ec2b76a41c8c85747b1a671e71b97e64 (patch)
treeb9383ab48a817554f24e241d9760a53e3542b5ff
parent4c2cde3b59d923d2952ef0accdde892e23b4997b (diff)
iwlagn: dont update bytecount table for command queue
The device doesn't use the bytecount table for the command queue, only for aggregation queues to make aggregation decisions. So don't update it for the command queue (and we even updated it with wrong values). Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn-tx.c28
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-tx.c4
2 files changed, 13 insertions, 19 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-tx.c b/drivers/net/wireless/iwlwifi/iwl-agn-tx.c
index 494de0e59cb4..5445fd6a5a91 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-tx.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-tx.c
@@ -112,21 +112,19 @@ void iwlagn_txq_update_byte_cnt_tbl(struct iwl_priv *priv,
112 112
113 WARN_ON(len > 0xFFF || write_ptr >= TFD_QUEUE_SIZE_MAX); 113 WARN_ON(len > 0xFFF || write_ptr >= TFD_QUEUE_SIZE_MAX);
114 114
115 if (txq_id != priv->cmd_queue) { 115 sta_id = txq->cmd[txq->q.write_ptr]->cmd.tx.sta_id;
116 sta_id = txq->cmd[txq->q.write_ptr]->cmd.tx.sta_id; 116 sec_ctl = txq->cmd[txq->q.write_ptr]->cmd.tx.sec_ctl;
117 sec_ctl = txq->cmd[txq->q.write_ptr]->cmd.tx.sec_ctl; 117
118 118 switch (sec_ctl & TX_CMD_SEC_MSK) {
119 switch (sec_ctl & TX_CMD_SEC_MSK) { 119 case TX_CMD_SEC_CCM:
120 case TX_CMD_SEC_CCM: 120 len += CCMP_MIC_LEN;
121 len += CCMP_MIC_LEN; 121 break;
122 break; 122 case TX_CMD_SEC_TKIP:
123 case TX_CMD_SEC_TKIP: 123 len += TKIP_ICV_LEN;
124 len += TKIP_ICV_LEN; 124 break;
125 break; 125 case TX_CMD_SEC_WEP:
126 case TX_CMD_SEC_WEP: 126 len += WEP_IV_LEN + WEP_ICV_LEN;
127 len += WEP_IV_LEN + WEP_ICV_LEN; 127 break;
128 break;
129 }
130 } 128 }
131 129
132 bc_ent = cpu_to_le16((len & 0xFFF) | (sta_id << 12)); 130 bc_ent = cpu_to_le16((len & 0xFFF) | (sta_id << 12));
diff --git a/drivers/net/wireless/iwlwifi/iwl-tx.c b/drivers/net/wireless/iwlwifi/iwl-tx.c
index 517d1049d7d9..5a7cd177fe5e 100644
--- a/drivers/net/wireless/iwlwifi/iwl-tx.c
+++ b/drivers/net/wireless/iwlwifi/iwl-tx.c
@@ -540,10 +540,6 @@ int iwl_enqueue_hcmd(struct iwl_priv *priv, struct iwl_host_cmd *cmd)
540#endif 540#endif
541 txq->need_update = 1; 541 txq->need_update = 1;
542 542
543 if (priv->cfg->ops->lib->txq_update_byte_cnt_tbl)
544 /* Set up entry in queue's byte count circular buffer */
545 priv->cfg->ops->lib->txq_update_byte_cnt_tbl(priv, txq, 0);
546
547 phys_addr = pci_map_single(priv->pci_dev, &out_cmd->hdr, 543 phys_addr = pci_map_single(priv->pci_dev, &out_cmd->hdr,
548 fix_size, PCI_DMA_BIDIRECTIONAL); 544 fix_size, PCI_DMA_BIDIRECTIONAL);
549 dma_unmap_addr_set(out_meta, mapping, phys_addr); 545 dma_unmap_addr_set(out_meta, mapping, phys_addr);