iwlagn: set rts retry limit

setup the rts rety limit for tx command

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-tx.c b/drivers/net/wireless/iwlwifi/iwl-agn-tx.c
index dcb3bd6..2584f6f 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-tx.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-tx.c
@@ -113,8 +113,6 @@
 	tx_cmd->next_frame_len = 0;
 }
 
-#define RTS_DFAULT_RETRY_LIMIT		60
-
 static void iwlagn_tx_cmd_build_rate(struct iwl_priv *priv,
 				     struct iwl_tx_cmd *tx_cmd,
 				     struct ieee80211_tx_info *info,
@@ -126,17 +124,19 @@
 	u8 data_retry_limit;
 	u8 rate_plcp;
 
+	/* Set retry limit on RTS packets */
+	rts_retry_limit = IWLAGN_RTS_DFAULT_RETRY_LIMIT;
+
 	/* Set retry limit on DATA packets and Probe Responses*/
-	if (ieee80211_is_probe_resp(fc))
-		data_retry_limit = 3;
+	if (ieee80211_is_probe_resp(fc)) {
+		data_retry_limit = IWLAGN_MGMT_DFAULT_RETRY_LIMIT;
+		rts_retry_limit = min(data_retry_limit, rts_retry_limit);
+	} else if (ieee80211_is_back_req(fc))
+		data_retry_limit = IWLAGN_BAR_DFAULT_RETRY_LIMIT;
 	else
 		data_retry_limit = IWLAGN_DEFAULT_TX_RETRY;
-	tx_cmd->data_retry_limit = data_retry_limit;
 
-	/* Set retry limit on RTS packets */
-	rts_retry_limit = RTS_DFAULT_RETRY_LIMIT;
-	if (data_retry_limit < rts_retry_limit)
-		rts_retry_limit = data_retry_limit;
+	tx_cmd->data_retry_limit = data_retry_limit;
 	tx_cmd->rts_retry_limit = rts_retry_limit;
 
 	/* DATA packets will use the uCode station table for rate/antenna