iwlwifi: set correct base rate for A band in rs_dbgfs_set_mcs
PATCH 1/1 iwlwifi: set correct base rate for A band in rs_dbgfs_set_mcs
From: Ron Rindjunsky <[email protected]>
This patch fixes base rate needed for fixed rate operation in A band
Signed-off-by Ron Rindjunsky <[email protected]>
Signed-off-by Tomas Winkler <[email protected]>
--- drivers/net/wireless/iwlwifi/iwl-4965-rs.c | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-)
drivers/net/wireless/iwlwifi/iwl-4965-rs.c +8 -2
@@ -2021,12 +2021,18 @@ static int open_file_generic(struct inode *inode, struct file *file)static void rs_dbgfs_set_mcs (struct iwl_rate_scale_priv *rs_priv,struct iwl_rate *mcs,int index) { -const u32 cck_rate =0x820A ; +u32 base_rate; + +if (rs_priv->phymode == (u8 )MODE_IEEE80211A ) + base_rate =0x800D ; +else + base_rate =0x820A ; +if (rs_priv->dbg_fixed.rate_n_flags) {if (index <12 ) mcs->rate_n_flags = rs_priv->dbg_fixed.rate_n_flags;else - mcs->rate_n_flags = cck_rate; + mcs->rate_n_flags = base_rate;IWL_DEBUG_RATE ("Fixed rate ON\n" );return ; }
Signature · 8 lines
1.5.2.2 --------------------------------------------------------------------- Intel Israel (74) Limited This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies.
PATCH 1/1 iwlwifi: renaming last_used and first_empty
This patch renames queue pointers to write_ptr and read_ptr instead of first_empty and last_used. This is closer to technical terminology we everyday use
Signed-off-by Tomas Winkler <[email protected]>
--- drivers/net/wireless/iwlwifi/iwl-3945.c | 12 +++--- drivers/net/wireless/iwlwifi/iwl-4965.c | 24 +++++----- drivers/net/wireless/iwlwifi/iwl3945-base.c | 61 +++++++++++++------------ drivers/net/wireless/iwlwifi/iwl4965-base.c | 65 ++++++++++++++------------- drivers/net/wireless/iwlwifi/iwlwifi.h | 4 +- 5 files changed, 84 insertions(+), 82 deletions(-)
drivers/net/wireless/iwlwifi/iwl-3945.c +6 -6
@@ -518,14 +518,14 @@ int iwl_hw_txq_attach_buf_to_tfd(struct iwl_priv *priv, void *ptr, }/** -* iwl_hw_txq_free_tfd - Free one TFD, those at index [txq->q.last_used] +* iwl_hw_txq_free_tfd - Free one TFD, those at index [txq->q.read_ptr] * * Does NOT advance any indexes */ int iwl_hw_txq_free_tfd (struct iwl_priv *priv,struct iwl_tx_queue *txq) {struct iwl_tfd_frame *bd_tmp = (struct iwl_tfd_frame *)&txq->bd[0 ]; -struct iwl_tfd_frame *bd = &bd_tmp[txq->q.last_used]; +struct iwl_tfd_frame *bd = &bd_tmp[txq->q.read_ptr];struct pci_dev *dev = priv->pci_dev;int i;int counter;
@@ -548,12 +548,12 @@ int iwl_hw_txq_free_tfd(struct iwl_priv *priv, struct iwl_tx_queue *txq)for (i =1 ; i < counter; i++) {pci_unmap_single (dev,le32_to_cpu (bd->pa[i].addr),le32_to_cpu (bd->pa[i].len),PCI_DMA_TODEVICE ); -if (txq->txb[txq->q.last_used].skb[0 ]) { -struct sk_buff *skb = txq->txb[txq->q.last_used].skb[0 ]; -if (txq->txb[txq->q.last_used].skb[0 ]) { +if (txq->txb[txq->q.read_ptr].skb[0 ]) { +struct sk_buff *skb = txq->txb[txq->q.read_ptr].skb[0 ]; +if (txq->txb[txq->q.read_ptr].skb[0 ]) {/* Can be called from interrupt context */ dev_kfree_skb_any (skb); - txq->txb[txq->q.last_used].skb[0 ] =NULL ; + txq->txb[txq->q.read_ptr].skb[0 ] =NULL ; } } }
drivers/net/wireless/iwlwifi/iwl-4965.c +12 -12
@@ -1748,14 +1748,14 @@ void iwl_hw_txq_ctx_free(struct iwl_priv *priv) }/** -* iwl_hw_txq_free_tfd - Free one TFD, those at index [txq->q.last_used] +* iwl_hw_txq_free_tfd - Free one TFD, those at index [txq->q.read_ptr] * * Does NOT advance any indexes */ int iwl_hw_txq_free_tfd (struct iwl_priv *priv,struct iwl_tx_queue *txq) {struct iwl_tfd_frame *bd_tmp = (struct iwl_tfd_frame *)&txq->bd[0 ]; -struct iwl_tfd_frame *bd = &bd_tmp[txq->q.last_used]; +struct iwl_tfd_frame *bd = &bd_tmp[txq->q.read_ptr];struct pci_dev *dev = priv->pci_dev;int i;int counter =0 ;
@@ -1795,11 +1795,11 @@ int iwl_hw_txq_free_tfd(struct iwl_priv *priv, struct iwl_tx_queue *txq)IWL_GET_BITS (bd->pa[index], tb1_len), PCI_DMA_TODEVICE); -if (txq->txb[txq->q.last_used].skb[i]) { -struct sk_buff *skb = txq->txb[txq->q.last_used].skb[i]; +if (txq->txb[txq->q.read_ptr].skb[i]) { +struct sk_buff *skb = txq->txb[txq->q.read_ptr].skb[i];dev_kfree_skb (skb); - txq->txb[txq->q.last_used].skb[i] =NULL ; + txq->txb[txq->q.read_ptr].skb[i] =NULL ; } }return 0 ;
@@ -2775,11 +2775,11 @@ int iwl4965_tx_queue_update_wr_ptr(struct iwl_priv *priv, len = byte_cnt +IWL_TX_CRC_SIZE +IWL_TX_DELIMITER_SIZE ;IWL_SET_BITS16 (shared_data->queues_byte_cnt_tbls[txq_id]. - tfd_offset[txq->q.first_empty], byte_cnt, len); + tfd_offset[txq->q.write_ptr], byte_cnt, len); -if (txq->q.first_empty <IWL4965_MAX_WIN_SIZE ) +if (txq->q.write_ptr <IWL4965_MAX_WIN_SIZE )IWL_SET_BITS16 (shared_data->queues_byte_cnt_tbls[txq_id]. - tfd_offset[IWL4965_QUEUE_SIZE + txq->q.first_empty], + tfd_offset[IWL4965_QUEUE_SIZE + txq->q.write_ptr], byte_cnt, len);return 0 ;
@@ -4197,8 +4197,8 @@ static int iwl4965_tx_queue_agg_enable(struct iwl_priv *priv, int txq_id,iwl_set_bits_restricted_reg (priv,SCD_QUEUECHAIN_SEL , (1 <<txq_id)); - priv->txq[txq_id].q.last_used = (ssn_idx &0xff ); - priv->txq[txq_id].q.first_empty = (ssn_idx &0xff ); + priv->txq[txq_id].q.read_ptr = (ssn_idx &0xff ); + priv->txq[txq_id].q.write_ptr = (ssn_idx &0xff );/* supposes that ssn_idx is valid (!= 0xFFF) */ iwl4965_set_wr_ptrs (priv, txq_id, ssn_idx);
@@ -4249,8 +4249,8 @@ static int iwl4965_tx_queue_agg_disable(struct iwl_priv *priv, u16 txq_id,iwl_clear_bits_restricted_reg (priv,SCD_QUEUECHAIN_SEL , (1 << txq_id)); - priv->txq[txq_id].q.last_used = (ssn_idx &0xff ); - priv->txq[txq_id].q.first_empty = (ssn_idx &0xff ); + priv->txq[txq_id].q.read_ptr = (ssn_idx &0xff ); + priv->txq[txq_id].q.write_ptr = (ssn_idx &0xff );/* supposes that ssn_idx is valid (!= 0xFFF) */ iwl4965_set_wr_ptrs (priv, txq_id, ssn_idx);
drivers/net/wireless/iwlwifi/iwl3945-base.c +31 -30
167 lines not on this page · raw message
drivers/net/wireless/iwlwifi/iwl4965-base.c +33 -32
187 lines not on this page · raw message
drivers/net/wireless/iwlwifi/iwlwifi.h +2 -2
@@ -149,8 +149,8 @@ struct iwl_rt_tx_hdr {*/ struct iwl_queue {int n_bd;/* number of BDs in this queue */ -int first_empty;/* 1-st empty entry (index) host_w*/ -int last_used;/* last used entry (index) host_r*/ +int write_ptr;/* 1-st empty entry (index) host_w*/ +int read_ptr;/* last used entry (index) host_r*/ dma_addr_t dma_addr;/* physical addr for BD's */ int n_window;/* safe queue window */ u32 id;
Signature · 8 lines
1.5.2.2 --------------------------------------------------------------------- Intel Israel (74) Limited This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies.