diff options
author | Michal Kazior <michal.kazior@tieto.com> | 2012-04-11 02:47:56 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-04-13 14:32:50 -0400 |
commit | 4ee73f338a528f44fd90496adfbfd9c119401850 (patch) | |
tree | 665c02d2ec013a09b252713c8f94b604f6050cc7 /drivers/net/wireless | |
parent | f58cc809d2fe60989095c7b55fd14e1935a2f72a (diff) |
mac80211: remove hw.conf.channel usage where possible
Removes hw.conf.channel usage from the following functions:
* ieee80211_mandatory_rates
* ieee80211_sta_get_rates
* ieee80211_frame_duration
* ieee80211_rts_duration
* ieee80211_ctstoself_duration
This is in preparation for multi-channel operation.
Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r-- | drivers/net/wireless/ath/ath5k/ath5k.h | 2 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath5k/pcu.c | 9 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath5k/qcu.c | 8 | ||||
-rw-r--r-- | drivers/net/wireless/b43/xmit.c | 3 | ||||
-rw-r--r-- | drivers/net/wireless/b43legacy/main.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/b43legacy/xmit.c | 1 | ||||
-rw-r--r-- | drivers/net/wireless/rtl818x/rtl8187/dev.c | 1 |
7 files changed, 17 insertions, 9 deletions
diff --git a/drivers/net/wireless/ath/ath5k/ath5k.h b/drivers/net/wireless/ath/ath5k/ath5k.h index 55ef93dd743..64a453a6dfe 100644 --- a/drivers/net/wireless/ath/ath5k/ath5k.h +++ b/drivers/net/wireless/ath/ath5k/ath5k.h | |||
@@ -1527,7 +1527,7 @@ void ath5k_eeprom_detach(struct ath5k_hw *ah); | |||
1527 | 1527 | ||
1528 | /* Protocol Control Unit Functions */ | 1528 | /* Protocol Control Unit Functions */ |
1529 | /* Helpers */ | 1529 | /* Helpers */ |
1530 | int ath5k_hw_get_frame_duration(struct ath5k_hw *ah, | 1530 | int ath5k_hw_get_frame_duration(struct ath5k_hw *ah, enum ieee80211_band band, |
1531 | int len, struct ieee80211_rate *rate, bool shortpre); | 1531 | int len, struct ieee80211_rate *rate, bool shortpre); |
1532 | unsigned int ath5k_hw_get_default_slottime(struct ath5k_hw *ah); | 1532 | unsigned int ath5k_hw_get_default_slottime(struct ath5k_hw *ah); |
1533 | unsigned int ath5k_hw_get_default_sifs(struct ath5k_hw *ah); | 1533 | unsigned int ath5k_hw_get_default_sifs(struct ath5k_hw *ah); |
diff --git a/drivers/net/wireless/ath/ath5k/pcu.c b/drivers/net/wireless/ath/ath5k/pcu.c index cebfd6fd31d..1f16b4227d8 100644 --- a/drivers/net/wireless/ath/ath5k/pcu.c +++ b/drivers/net/wireless/ath/ath5k/pcu.c | |||
@@ -110,7 +110,7 @@ static const unsigned int ack_rates_high[] = | |||
110 | * bwmodes. | 110 | * bwmodes. |
111 | */ | 111 | */ |
112 | int | 112 | int |
113 | ath5k_hw_get_frame_duration(struct ath5k_hw *ah, | 113 | ath5k_hw_get_frame_duration(struct ath5k_hw *ah, enum ieee80211_band band, |
114 | int len, struct ieee80211_rate *rate, bool shortpre) | 114 | int len, struct ieee80211_rate *rate, bool shortpre) |
115 | { | 115 | { |
116 | int sifs, preamble, plcp_bits, sym_time; | 116 | int sifs, preamble, plcp_bits, sym_time; |
@@ -120,7 +120,7 @@ ath5k_hw_get_frame_duration(struct ath5k_hw *ah, | |||
120 | /* Fallback */ | 120 | /* Fallback */ |
121 | if (!ah->ah_bwmode) { | 121 | if (!ah->ah_bwmode) { |
122 | __le16 raw_dur = ieee80211_generic_frame_duration(ah->hw, | 122 | __le16 raw_dur = ieee80211_generic_frame_duration(ah->hw, |
123 | NULL, len, rate); | 123 | NULL, band, len, rate); |
124 | 124 | ||
125 | /* subtract difference between long and short preamble */ | 125 | /* subtract difference between long and short preamble */ |
126 | dur = le16_to_cpu(raw_dur); | 126 | dur = le16_to_cpu(raw_dur); |
@@ -302,14 +302,15 @@ ath5k_hw_write_rate_duration(struct ath5k_hw *ah) | |||
302 | * actual rate for this rate. See mac80211 tx.c | 302 | * actual rate for this rate. See mac80211 tx.c |
303 | * ieee80211_duration() for a brief description of | 303 | * ieee80211_duration() for a brief description of |
304 | * what rate we should choose to TX ACKs. */ | 304 | * what rate we should choose to TX ACKs. */ |
305 | tx_time = ath5k_hw_get_frame_duration(ah, 10, rate, false); | 305 | tx_time = ath5k_hw_get_frame_duration(ah, band, 10, |
306 | rate, false); | ||
306 | 307 | ||
307 | ath5k_hw_reg_write(ah, tx_time, reg); | 308 | ath5k_hw_reg_write(ah, tx_time, reg); |
308 | 309 | ||
309 | if (!(rate->flags & IEEE80211_RATE_SHORT_PREAMBLE)) | 310 | if (!(rate->flags & IEEE80211_RATE_SHORT_PREAMBLE)) |
310 | continue; | 311 | continue; |
311 | 312 | ||
312 | tx_time = ath5k_hw_get_frame_duration(ah, 10, rate, true); | 313 | tx_time = ath5k_hw_get_frame_duration(ah, band, 10, rate, true); |
313 | ath5k_hw_reg_write(ah, tx_time, | 314 | ath5k_hw_reg_write(ah, tx_time, |
314 | reg + (AR5K_SET_SHORT_PREAMBLE << 2)); | 315 | reg + (AR5K_SET_SHORT_PREAMBLE << 2)); |
315 | } | 316 | } |
diff --git a/drivers/net/wireless/ath/ath5k/qcu.c b/drivers/net/wireless/ath/ath5k/qcu.c index a6de200538c..65fe929529a 100644 --- a/drivers/net/wireless/ath/ath5k/qcu.c +++ b/drivers/net/wireless/ath/ath5k/qcu.c | |||
@@ -565,6 +565,7 @@ ath5k_hw_reset_tx_queue(struct ath5k_hw *ah, unsigned int queue) | |||
565 | int ath5k_hw_set_ifs_intervals(struct ath5k_hw *ah, unsigned int slot_time) | 565 | int ath5k_hw_set_ifs_intervals(struct ath5k_hw *ah, unsigned int slot_time) |
566 | { | 566 | { |
567 | struct ieee80211_channel *channel = ah->ah_current_channel; | 567 | struct ieee80211_channel *channel = ah->ah_current_channel; |
568 | enum ieee80211_band band; | ||
568 | struct ieee80211_rate *rate; | 569 | struct ieee80211_rate *rate; |
569 | u32 ack_tx_time, eifs, eifs_clock, sifs, sifs_clock; | 570 | u32 ack_tx_time, eifs, eifs_clock, sifs, sifs_clock; |
570 | u32 slot_time_clock = ath5k_hw_htoclock(ah, slot_time); | 571 | u32 slot_time_clock = ath5k_hw_htoclock(ah, slot_time); |
@@ -600,11 +601,12 @@ int ath5k_hw_set_ifs_intervals(struct ath5k_hw *ah, unsigned int slot_time) | |||
600 | * Also we have different lowest rate for 802.11a | 601 | * Also we have different lowest rate for 802.11a |
601 | */ | 602 | */ |
602 | if (channel->band == IEEE80211_BAND_5GHZ) | 603 | if (channel->band == IEEE80211_BAND_5GHZ) |
603 | rate = &ah->sbands[IEEE80211_BAND_5GHZ].bitrates[0]; | 604 | band = IEEE80211_BAND_5GHZ; |
604 | else | 605 | else |
605 | rate = &ah->sbands[IEEE80211_BAND_2GHZ].bitrates[0]; | 606 | band = IEEE80211_BAND_2GHZ; |
606 | 607 | ||
607 | ack_tx_time = ath5k_hw_get_frame_duration(ah, 10, rate, false); | 608 | rate = &ah->sbands[band].bitrates[0]; |
609 | ack_tx_time = ath5k_hw_get_frame_duration(ah, band, 10, rate, false); | ||
608 | 610 | ||
609 | /* ack_tx_time includes an SIFS already */ | 611 | /* ack_tx_time includes an SIFS already */ |
610 | eifs = ack_tx_time + sifs + 2 * slot_time; | 612 | eifs = ack_tx_time + sifs + 2 * slot_time; |
diff --git a/drivers/net/wireless/b43/xmit.c b/drivers/net/wireless/b43/xmit.c index cba41353627..b31ccc02fa2 100644 --- a/drivers/net/wireless/b43/xmit.c +++ b/drivers/net/wireless/b43/xmit.c | |||
@@ -290,7 +290,8 @@ int b43_generate_txhdr(struct b43_wldev *dev, | |||
290 | txhdr->dur_fb = wlhdr->duration_id; | 290 | txhdr->dur_fb = wlhdr->duration_id; |
291 | } else { | 291 | } else { |
292 | txhdr->dur_fb = ieee80211_generic_frame_duration( | 292 | txhdr->dur_fb = ieee80211_generic_frame_duration( |
293 | dev->wl->hw, info->control.vif, fragment_len, fbrate); | 293 | dev->wl->hw, info->control.vif, info->band, |
294 | fragment_len, fbrate); | ||
294 | } | 295 | } |
295 | 296 | ||
296 | plcp_fragment_len = fragment_len + FCS_LEN; | 297 | plcp_fragment_len = fragment_len + FCS_LEN; |
diff --git a/drivers/net/wireless/b43legacy/main.c b/drivers/net/wireless/b43legacy/main.c index df7e16dfb36..1be214b815f 100644 --- a/drivers/net/wireless/b43legacy/main.c +++ b/drivers/net/wireless/b43legacy/main.c | |||
@@ -1056,6 +1056,7 @@ static void b43legacy_write_probe_resp_plcp(struct b43legacy_wldev *dev, | |||
1056 | b43legacy_generate_plcp_hdr(&plcp, size + FCS_LEN, rate->hw_value); | 1056 | b43legacy_generate_plcp_hdr(&plcp, size + FCS_LEN, rate->hw_value); |
1057 | dur = ieee80211_generic_frame_duration(dev->wl->hw, | 1057 | dur = ieee80211_generic_frame_duration(dev->wl->hw, |
1058 | dev->wl->vif, | 1058 | dev->wl->vif, |
1059 | IEEE80211_BAND_2GHZ, | ||
1059 | size, | 1060 | size, |
1060 | rate); | 1061 | rate); |
1061 | /* Write PLCP in two parts and timing for packet transfer */ | 1062 | /* Write PLCP in two parts and timing for packet transfer */ |
@@ -1121,6 +1122,7 @@ static const u8 *b43legacy_generate_probe_resp(struct b43legacy_wldev *dev, | |||
1121 | IEEE80211_STYPE_PROBE_RESP); | 1122 | IEEE80211_STYPE_PROBE_RESP); |
1122 | dur = ieee80211_generic_frame_duration(dev->wl->hw, | 1123 | dur = ieee80211_generic_frame_duration(dev->wl->hw, |
1123 | dev->wl->vif, | 1124 | dev->wl->vif, |
1125 | IEEE80211_BAND_2GHZ, | ||
1124 | *dest_size, | 1126 | *dest_size, |
1125 | rate); | 1127 | rate); |
1126 | hdr->duration_id = dur; | 1128 | hdr->duration_id = dur; |
diff --git a/drivers/net/wireless/b43legacy/xmit.c b/drivers/net/wireless/b43legacy/xmit.c index e6c573af494..a8012f2749e 100644 --- a/drivers/net/wireless/b43legacy/xmit.c +++ b/drivers/net/wireless/b43legacy/xmit.c | |||
@@ -228,6 +228,7 @@ static int generate_txhdr_fw3(struct b43legacy_wldev *dev, | |||
228 | } else { | 228 | } else { |
229 | txhdr->dur_fb = ieee80211_generic_frame_duration(dev->wl->hw, | 229 | txhdr->dur_fb = ieee80211_generic_frame_duration(dev->wl->hw, |
230 | info->control.vif, | 230 | info->control.vif, |
231 | info->band, | ||
231 | fragment_len, | 232 | fragment_len, |
232 | rate_fb); | 233 | rate_fb); |
233 | } | 234 | } |
diff --git a/drivers/net/wireless/rtl818x/rtl8187/dev.c b/drivers/net/wireless/rtl818x/rtl8187/dev.c index cf53ac9d6f2..d8114962b0c 100644 --- a/drivers/net/wireless/rtl818x/rtl8187/dev.c +++ b/drivers/net/wireless/rtl818x/rtl8187/dev.c | |||
@@ -294,6 +294,7 @@ static void rtl8187_tx(struct ieee80211_hw *dev, struct sk_buff *skb) | |||
294 | hdr->retry = cpu_to_le32((info->control.rates[0].count - 1) << 8); | 294 | hdr->retry = cpu_to_le32((info->control.rates[0].count - 1) << 8); |
295 | hdr->tx_duration = | 295 | hdr->tx_duration = |
296 | ieee80211_generic_frame_duration(dev, priv->vif, | 296 | ieee80211_generic_frame_duration(dev, priv->vif, |
297 | info->band, | ||
297 | skb->len, txrate); | 298 | skb->len, txrate); |
298 | buf = hdr; | 299 | buf = hdr; |
299 | 300 | ||