aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStanislaw Gruszka <sgruszka@redhat.com>2011-12-23 02:13:49 -0500
committerJohn W. Linville <linville@tuxdriver.com>2012-01-04 14:30:45 -0500
commit81fb46139504f72a92243245df878e1a1af35f89 (patch)
tree3c7eb73a97eede57d68c24c7ce53e315f348be01
parent5d0bef903abe8ac438b660c77d886e6b0394797c (diff)
iwlegacy: 3945: simplify calculations of retry limit
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/iwlegacy/3945-mac.c3
-rw-r--r--drivers/net/wireless/iwlegacy/3945.c15
-rw-r--r--drivers/net/wireless/iwlegacy/3945.h3
3 files changed, 6 insertions, 15 deletions
diff --git a/drivers/net/wireless/iwlegacy/3945-mac.c b/drivers/net/wireless/iwlegacy/3945-mac.c
index daef6b58f6cc..c8179756bf3c 100644
--- a/drivers/net/wireless/iwlegacy/3945-mac.c
+++ b/drivers/net/wireless/iwlegacy/3945-mac.c
@@ -570,8 +570,7 @@ il3945_tx_skb(struct il_priv *il, struct sk_buff *skb)
570 /* TODO need this for burst mode later on */ 570 /* TODO need this for burst mode later on */
571 il3945_build_tx_cmd_basic(il, out_cmd, info, hdr, sta_id); 571 il3945_build_tx_cmd_basic(il, out_cmd, info, hdr, sta_id);
572 572
573 /* set is_hcca to 0; it probably will never be implemented */ 573 il3945_hw_build_tx_cmd_rate(il, out_cmd, info, hdr, sta_id);
574 il3945_hw_build_tx_cmd_rate(il, out_cmd, info, hdr, sta_id, 0);
575 574
576 /* Total # bytes to be transmitted */ 575 /* Total # bytes to be transmitted */
577 len = (u16) skb->len; 576 len = (u16) skb->len;
diff --git a/drivers/net/wireless/iwlegacy/3945.c b/drivers/net/wireless/iwlegacy/3945.c
index 44a121167806..1489b1573a6a 100644
--- a/drivers/net/wireless/iwlegacy/3945.c
+++ b/drivers/net/wireless/iwlegacy/3945.c
@@ -680,13 +680,13 @@ il3945_hw_txq_free_tfd(struct il_priv *il, struct il_tx_queue *txq)
680void 680void
681il3945_hw_build_tx_cmd_rate(struct il_priv *il, struct il_device_cmd *cmd, 681il3945_hw_build_tx_cmd_rate(struct il_priv *il, struct il_device_cmd *cmd,
682 struct ieee80211_tx_info *info, 682 struct ieee80211_tx_info *info,
683 struct ieee80211_hdr *hdr, int sta_id, int tx_id) 683 struct ieee80211_hdr *hdr, int sta_id)
684{ 684{
685 u16 hw_value = ieee80211_get_tx_rate(il->hw, info)->hw_value; 685 u16 hw_value = ieee80211_get_tx_rate(il->hw, info)->hw_value;
686 u16 rate_idx = min(hw_value & 0xffff, RATE_COUNT_3945 - 1); 686 u16 rate_idx = min(hw_value & 0xffff, RATE_COUNT_3945 - 1);
687 u16 rate_mask; 687 u16 rate_mask;
688 int rate; 688 int rate;
689 u8 rts_retry_limit; 689 const u8 rts_retry_limit = 7;
690 u8 data_retry_limit; 690 u8 data_retry_limit;
691 __le32 tx_flags; 691 __le32 tx_flags;
692 __le16 fc = hdr->frame_control; 692 __le16 fc = hdr->frame_control;
@@ -705,15 +705,8 @@ il3945_hw_build_tx_cmd_rate(struct il_priv *il, struct il_device_cmd *cmd,
705 else 705 else
706 data_retry_limit = IL_DEFAULT_TX_RETRY; 706 data_retry_limit = IL_DEFAULT_TX_RETRY;
707 tx_cmd->data_retry_limit = data_retry_limit; 707 tx_cmd->data_retry_limit = data_retry_limit;
708 708 /* Set retry limit on RTS packets */
709 if (tx_id >= IL39_CMD_QUEUE_NUM) 709 tx_cmd->rts_retry_limit = min(data_retry_limit, rts_retry_limit);
710 rts_retry_limit = 3;
711 else
712 rts_retry_limit = 7;
713
714 if (data_retry_limit < rts_retry_limit)
715 rts_retry_limit = data_retry_limit;
716 tx_cmd->rts_retry_limit = rts_retry_limit;
717 710
718 tx_cmd->rate = rate; 711 tx_cmd->rate = rate;
719 tx_cmd->tx_flags = tx_flags; 712 tx_cmd->tx_flags = tx_flags;
diff --git a/drivers/net/wireless/iwlegacy/3945.h b/drivers/net/wireless/iwlegacy/3945.h
index 970e5c3a410a..9f42f79f8778 100644
--- a/drivers/net/wireless/iwlegacy/3945.h
+++ b/drivers/net/wireless/iwlegacy/3945.h
@@ -239,8 +239,7 @@ extern unsigned int il3945_hw_get_beacon_cmd(struct il_priv *il,
239 u8 rate); 239 u8 rate);
240void il3945_hw_build_tx_cmd_rate(struct il_priv *il, struct il_device_cmd *cmd, 240void il3945_hw_build_tx_cmd_rate(struct il_priv *il, struct il_device_cmd *cmd,
241 struct ieee80211_tx_info *info, 241 struct ieee80211_tx_info *info,
242 struct ieee80211_hdr *hdr, int sta_id, 242 struct ieee80211_hdr *hdr, int sta_id);
243 int tx_id);
244extern int il3945_hw_reg_send_txpower(struct il_priv *il); 243extern int il3945_hw_reg_send_txpower(struct il_priv *il);
245extern int il3945_hw_reg_set_txpower(struct il_priv *il, s8 power); 244extern int il3945_hw_reg_set_txpower(struct il_priv *il, s8 power);
246extern void il3945_hdl_stats(struct il_priv *il, struct il_rx_buf *rxb); 245extern void il3945_hdl_stats(struct il_priv *il, struct il_rx_buf *rxb);