diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2008-10-21 06:40:02 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-10-31 19:00:23 -0400 |
commit | e6a9854b05c1a6af1308fe2b8c68f35abf28a3ee (patch) | |
tree | 241f611f8194586ccabf61bacb060508773b9d05 /drivers/net/wireless/iwlwifi/iwl-5000.c | |
parent | cb121bad67a32cde37adc2729b7e18aa4fd3063e (diff) |
mac80211/drivers: rewrite the rate control API
So after the previous changes we were still unhappy with how
convoluted the API is and decided to make things simpler for
everybody. This completely changes the rate control API, now
taking into account 802.11n with MCS rates and more control,
most drivers don't support that though.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-5000.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-5000.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c index 56a3f0c84a1e..d5282fa65084 100644 --- a/drivers/net/wireless/iwlwifi/iwl-5000.c +++ b/drivers/net/wireless/iwlwifi/iwl-5000.c | |||
@@ -390,8 +390,8 @@ static void iwl5000_chain_noise_reset(struct iwl_priv *priv) | |||
390 | static void iwl5000_rts_tx_cmd_flag(struct ieee80211_tx_info *info, | 390 | static void iwl5000_rts_tx_cmd_flag(struct ieee80211_tx_info *info, |
391 | __le32 *tx_flags) | 391 | __le32 *tx_flags) |
392 | { | 392 | { |
393 | if ((info->flags & IEEE80211_TX_CTL_USE_RTS_CTS) || | 393 | if ((info->control.rates[0].flags & IEEE80211_TX_RC_USE_RTS_CTS) || |
394 | (info->flags & IEEE80211_TX_CTL_USE_CTS_PROTECT)) | 394 | (info->control.rates[0].flags & IEEE80211_TX_RC_USE_CTS_PROTECT)) |
395 | *tx_flags |= TX_CMD_FLG_RTS_CTS_MSK; | 395 | *tx_flags |= TX_CMD_FLG_RTS_CTS_MSK; |
396 | else | 396 | else |
397 | *tx_flags &= ~TX_CMD_FLG_RTS_CTS_MSK; | 397 | *tx_flags &= ~TX_CMD_FLG_RTS_CTS_MSK; |
@@ -1154,7 +1154,7 @@ static int iwl5000_tx_status_reply_tx(struct iwl_priv *priv, | |||
1154 | agg->frame_count, agg->start_idx, idx); | 1154 | agg->frame_count, agg->start_idx, idx); |
1155 | 1155 | ||
1156 | info = IEEE80211_SKB_CB(priv->txq[txq_id].txb[idx].skb[0]); | 1156 | info = IEEE80211_SKB_CB(priv->txq[txq_id].txb[idx].skb[0]); |
1157 | info->status.retry_count = tx_resp->failure_frame; | 1157 | info->status.rates[0].count = tx_resp->failure_frame + 1; |
1158 | info->flags &= ~IEEE80211_TX_CTL_AMPDU; | 1158 | info->flags &= ~IEEE80211_TX_CTL_AMPDU; |
1159 | info->flags |= iwl_is_tx_success(status)? | 1159 | info->flags |= iwl_is_tx_success(status)? |
1160 | IEEE80211_TX_STAT_ACK : 0; | 1160 | IEEE80211_TX_STAT_ACK : 0; |
@@ -1307,7 +1307,7 @@ static void iwl5000_rx_reply_tx(struct iwl_priv *priv, | |||
1307 | iwl_txq_check_empty(priv, sta_id, tid, txq_id); | 1307 | iwl_txq_check_empty(priv, sta_id, tid, txq_id); |
1308 | } | 1308 | } |
1309 | } else { | 1309 | } else { |
1310 | info->status.retry_count = tx_resp->failure_frame; | 1310 | info->status.rates[0].count = tx_resp->failure_frame + 1; |
1311 | info->flags = | 1311 | info->flags = |
1312 | iwl_is_tx_success(status) ? IEEE80211_TX_STAT_ACK : 0; | 1312 | iwl_is_tx_success(status) ? IEEE80211_TX_STAT_ACK : 0; |
1313 | iwl_hwrate_to_tx_control(priv, | 1313 | iwl_hwrate_to_tx_control(priv, |