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/iwl3945-base.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/iwl3945-base.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl3945-base.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c index b1464c71ea0a..2cd33b4e9e13 100644 --- a/drivers/net/wireless/iwlwifi/iwl3945-base.c +++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c | |||
@@ -2395,6 +2395,7 @@ static void iwl3945_build_tx_cmd_basic(struct iwl3945_priv *priv, | |||
2395 | { | 2395 | { |
2396 | __le16 fc = hdr->frame_control; | 2396 | __le16 fc = hdr->frame_control; |
2397 | __le32 tx_flags = cmd->cmd.tx.tx_flags; | 2397 | __le32 tx_flags = cmd->cmd.tx.tx_flags; |
2398 | u8 rc_flags = info->control.rates[0].flags; | ||
2398 | 2399 | ||
2399 | cmd->cmd.tx.stop_time.life_time = TX_CMD_LIFE_TIME_INFINITE; | 2400 | cmd->cmd.tx.stop_time.life_time = TX_CMD_LIFE_TIME_INFINITE; |
2400 | if (!(info->flags & IEEE80211_TX_CTL_NO_ACK)) { | 2401 | if (!(info->flags & IEEE80211_TX_CTL_NO_ACK)) { |
@@ -2421,10 +2422,10 @@ static void iwl3945_build_tx_cmd_basic(struct iwl3945_priv *priv, | |||
2421 | tx_flags |= TX_CMD_FLG_SEQ_CTL_MSK; | 2422 | tx_flags |= TX_CMD_FLG_SEQ_CTL_MSK; |
2422 | } | 2423 | } |
2423 | 2424 | ||
2424 | if (info->flags & IEEE80211_TX_CTL_USE_RTS_CTS) { | 2425 | if (rc_flags & IEEE80211_TX_RC_USE_RTS_CTS) { |
2425 | tx_flags |= TX_CMD_FLG_RTS_MSK; | 2426 | tx_flags |= TX_CMD_FLG_RTS_MSK; |
2426 | tx_flags &= ~TX_CMD_FLG_CTS_MSK; | 2427 | tx_flags &= ~TX_CMD_FLG_CTS_MSK; |
2427 | } else if (info->flags & IEEE80211_TX_CTL_USE_CTS_PROTECT) { | 2428 | } else if (rc_flags & IEEE80211_TX_RC_USE_CTS_PROTECT) { |
2428 | tx_flags &= ~TX_CMD_FLG_RTS_MSK; | 2429 | tx_flags &= ~TX_CMD_FLG_RTS_MSK; |
2429 | tx_flags |= TX_CMD_FLG_CTS_MSK; | 2430 | tx_flags |= TX_CMD_FLG_CTS_MSK; |
2430 | } | 2431 | } |