diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-4965-rs.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-4965-rs.c | 53 |
1 files changed, 27 insertions, 26 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965-rs.c b/drivers/net/wireless/iwlwifi/iwl-4965-rs.c index 4b46226ff350..7d7ce7489ab5 100644 --- a/drivers/net/wireless/iwlwifi/iwl-4965-rs.c +++ b/drivers/net/wireless/iwlwifi/iwl-4965-rs.c | |||
@@ -39,6 +39,7 @@ | |||
39 | #include "../net/mac80211/ieee80211_rate.h" | 39 | #include "../net/mac80211/ieee80211_rate.h" |
40 | 40 | ||
41 | #include "iwl-4965.h" | 41 | #include "iwl-4965.h" |
42 | #include "iwl-core.h" | ||
42 | #include "iwl-helpers.h" | 43 | #include "iwl-helpers.h" |
43 | 44 | ||
44 | #define RS_NAME "iwl-4965-rs" | 45 | #define RS_NAME "iwl-4965-rs" |
@@ -162,11 +163,11 @@ struct iwl4965_lq_sta { | |||
162 | struct dentry *rs_sta_dbgfs_tx_agg_tid_en_file; | 163 | struct dentry *rs_sta_dbgfs_tx_agg_tid_en_file; |
163 | #endif | 164 | #endif |
164 | struct iwl4965_rate dbg_fixed; | 165 | struct iwl4965_rate dbg_fixed; |
165 | struct iwl4965_priv *drv; | 166 | struct iwl_priv *drv; |
166 | #endif | 167 | #endif |
167 | }; | 168 | }; |
168 | 169 | ||
169 | static void rs_rate_scale_perform(struct iwl4965_priv *priv, | 170 | static void rs_rate_scale_perform(struct iwl_priv *priv, |
170 | struct net_device *dev, | 171 | struct net_device *dev, |
171 | struct ieee80211_hdr *hdr, | 172 | struct ieee80211_hdr *hdr, |
172 | struct sta_info *sta); | 173 | struct sta_info *sta); |
@@ -229,8 +230,8 @@ static s32 expected_tpt_mimo40MHzSGI[IWL_RATE_COUNT] = { | |||
229 | 0, 0, 0, 0, 131, 131, 191, 222, 242, 270, 284, 289, 293 | 230 | 0, 0, 0, 0, 131, 131, 191, 222, 242, 270, 284, 289, 293 |
230 | }; | 231 | }; |
231 | 232 | ||
232 | static int iwl4965_lq_sync_callback(struct iwl4965_priv *priv, | 233 | static int iwl4965_lq_sync_callback(struct iwl_priv *priv, |
233 | struct iwl4965_cmd *cmd, struct sk_buff *skb) | 234 | struct iwl_cmd *cmd, struct sk_buff *skb) |
234 | { | 235 | { |
235 | /*We didn't cache the SKB; let the caller free it */ | 236 | /*We didn't cache the SKB; let the caller free it */ |
236 | return 1; | 237 | return 1; |
@@ -241,13 +242,13 @@ static inline u8 iwl4965_rate_get_rate(u32 rate_n_flags) | |||
241 | return (u8)(rate_n_flags & 0xFF); | 242 | return (u8)(rate_n_flags & 0xFF); |
242 | } | 243 | } |
243 | 244 | ||
244 | static int rs_send_lq_cmd(struct iwl4965_priv *priv, | 245 | static int rs_send_lq_cmd(struct iwl_priv *priv, |
245 | struct iwl4965_link_quality_cmd *lq, u8 flags) | 246 | struct iwl4965_link_quality_cmd *lq, u8 flags) |
246 | { | 247 | { |
247 | #ifdef CONFIG_IWL4965_DEBUG | 248 | #ifdef CONFIG_IWLWIFI_DEBUG |
248 | int i; | 249 | int i; |
249 | #endif | 250 | #endif |
250 | struct iwl4965_host_cmd cmd = { | 251 | struct iwl_host_cmd cmd = { |
251 | .id = REPLY_TX_LINK_QUALITY_CMD, | 252 | .id = REPLY_TX_LINK_QUALITY_CMD, |
252 | .len = sizeof(struct iwl4965_link_quality_cmd), | 253 | .len = sizeof(struct iwl4965_link_quality_cmd), |
253 | .meta.flags = flags, | 254 | .meta.flags = flags, |
@@ -265,7 +266,7 @@ static int rs_send_lq_cmd(struct iwl4965_priv *priv, | |||
265 | IWL_DEBUG_RATE("lq dta 0x%X 0x%X\n", | 266 | IWL_DEBUG_RATE("lq dta 0x%X 0x%X\n", |
266 | lq->general_params.single_stream_ant_msk, | 267 | lq->general_params.single_stream_ant_msk, |
267 | lq->general_params.dual_stream_ant_msk); | 268 | lq->general_params.dual_stream_ant_msk); |
268 | #ifdef CONFIG_IWL4965_DEBUG | 269 | #ifdef CONFIG_IWLWIFI_DEBUG |
269 | for (i = 0; i < LINK_QUAL_MAX_RETRY_NUM; i++) | 270 | for (i = 0; i < LINK_QUAL_MAX_RETRY_NUM; i++) |
270 | IWL_DEBUG_RATE("lq index %d 0x%X\n", | 271 | IWL_DEBUG_RATE("lq index %d 0x%X\n", |
271 | i, lq->rs_table[i].rate_n_flags); | 272 | i, lq->rs_table[i].rate_n_flags); |
@@ -276,7 +277,7 @@ static int rs_send_lq_cmd(struct iwl4965_priv *priv, | |||
276 | 277 | ||
277 | if (iwl4965_is_associated(priv) && priv->assoc_station_added && | 278 | if (iwl4965_is_associated(priv) && priv->assoc_station_added && |
278 | priv->lq_mngr.lq_ready) | 279 | priv->lq_mngr.lq_ready) |
279 | return iwl4965_send_cmd(priv, &cmd); | 280 | return iwl_send_cmd(priv, &cmd); |
280 | 281 | ||
281 | return 0; | 282 | return 0; |
282 | } | 283 | } |
@@ -388,7 +389,7 @@ static u32 rs_tl_get_load(struct iwl4965_lq_sta *lq_data, u8 tid) | |||
388 | return tl->total; | 389 | return tl->total; |
389 | } | 390 | } |
390 | 391 | ||
391 | static void rs_tl_turn_on_agg_for_tid(struct iwl4965_priv *priv, | 392 | static void rs_tl_turn_on_agg_for_tid(struct iwl_priv *priv, |
392 | struct iwl4965_lq_sta *lq_data, u8 tid, | 393 | struct iwl4965_lq_sta *lq_data, u8 tid, |
393 | struct sta_info *sta) | 394 | struct sta_info *sta) |
394 | { | 395 | { |
@@ -407,7 +408,7 @@ static void rs_tl_turn_on_agg_for_tid(struct iwl4965_priv *priv, | |||
407 | } | 408 | } |
408 | } | 409 | } |
409 | 410 | ||
410 | static void rs_tl_turn_on_agg(struct iwl4965_priv *priv, u8 tid, | 411 | static void rs_tl_turn_on_agg(struct iwl_priv *priv, u8 tid, |
411 | struct iwl4965_lq_sta *lq_data, | 412 | struct iwl4965_lq_sta *lq_data, |
412 | struct sta_info *sta) | 413 | struct sta_info *sta) |
413 | { | 414 | { |
@@ -658,7 +659,7 @@ static inline void rs_toggle_antenna(struct iwl4965_rate *new_rate, | |||
658 | } | 659 | } |
659 | } | 660 | } |
660 | 661 | ||
661 | static inline u8 rs_use_green(struct iwl4965_priv *priv, | 662 | static inline u8 rs_use_green(struct iwl_priv *priv, |
662 | struct ieee80211_conf *conf) | 663 | struct ieee80211_conf *conf) |
663 | { | 664 | { |
664 | #ifdef CONFIG_IWL4965_HT | 665 | #ifdef CONFIG_IWL4965_HT |
@@ -821,7 +822,7 @@ static void rs_tx_status(void *priv_rate, struct net_device *dev, | |||
821 | struct iwl4965_link_quality_cmd *table; | 822 | struct iwl4965_link_quality_cmd *table; |
822 | struct sta_info *sta; | 823 | struct sta_info *sta; |
823 | struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data; | 824 | struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data; |
824 | struct iwl4965_priv *priv = (struct iwl4965_priv *)priv_rate; | 825 | struct iwl_priv *priv = (struct iwl_priv *)priv_rate; |
825 | struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr); | 826 | struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr); |
826 | struct ieee80211_hw *hw = local_to_hw(local); | 827 | struct ieee80211_hw *hw = local_to_hw(local); |
827 | struct iwl4965_rate_scale_data *window = NULL; | 828 | struct iwl4965_rate_scale_data *window = NULL; |
@@ -1128,7 +1129,7 @@ static void rs_get_expected_tpt_table(struct iwl4965_lq_sta *lq_sta, | |||
1128 | * to decrease to match "active" throughput. When moving from MIMO to SISO, | 1129 | * to decrease to match "active" throughput. When moving from MIMO to SISO, |
1129 | * bit rate will typically need to increase, but not if performance was bad. | 1130 | * bit rate will typically need to increase, but not if performance was bad. |
1130 | */ | 1131 | */ |
1131 | static s32 rs_get_best_rate(struct iwl4965_priv *priv, | 1132 | static s32 rs_get_best_rate(struct iwl_priv *priv, |
1132 | struct iwl4965_lq_sta *lq_sta, | 1133 | struct iwl4965_lq_sta *lq_sta, |
1133 | struct iwl4965_scale_tbl_info *tbl, /* "search" */ | 1134 | struct iwl4965_scale_tbl_info *tbl, /* "search" */ |
1134 | u16 rate_mask, s8 index, s8 rate) | 1135 | u16 rate_mask, s8 index, s8 rate) |
@@ -1226,7 +1227,7 @@ static inline u8 rs_is_both_ant_supp(u8 valid_antenna) | |||
1226 | /* | 1227 | /* |
1227 | * Set up search table for MIMO | 1228 | * Set up search table for MIMO |
1228 | */ | 1229 | */ |
1229 | static int rs_switch_to_mimo(struct iwl4965_priv *priv, | 1230 | static int rs_switch_to_mimo(struct iwl_priv *priv, |
1230 | struct iwl4965_lq_sta *lq_sta, | 1231 | struct iwl4965_lq_sta *lq_sta, |
1231 | struct ieee80211_conf *conf, | 1232 | struct ieee80211_conf *conf, |
1232 | struct sta_info *sta, | 1233 | struct sta_info *sta, |
@@ -1291,7 +1292,7 @@ static int rs_switch_to_mimo(struct iwl4965_priv *priv, | |||
1291 | /* | 1292 | /* |
1292 | * Set up search table for SISO | 1293 | * Set up search table for SISO |
1293 | */ | 1294 | */ |
1294 | static int rs_switch_to_siso(struct iwl4965_priv *priv, | 1295 | static int rs_switch_to_siso(struct iwl_priv *priv, |
1295 | struct iwl4965_lq_sta *lq_sta, | 1296 | struct iwl4965_lq_sta *lq_sta, |
1296 | struct ieee80211_conf *conf, | 1297 | struct ieee80211_conf *conf, |
1297 | struct sta_info *sta, | 1298 | struct sta_info *sta, |
@@ -1354,7 +1355,7 @@ static int rs_switch_to_siso(struct iwl4965_priv *priv, | |||
1354 | /* | 1355 | /* |
1355 | * Try to switch to new modulation mode from legacy | 1356 | * Try to switch to new modulation mode from legacy |
1356 | */ | 1357 | */ |
1357 | static int rs_move_legacy_other(struct iwl4965_priv *priv, | 1358 | static int rs_move_legacy_other(struct iwl_priv *priv, |
1358 | struct iwl4965_lq_sta *lq_sta, | 1359 | struct iwl4965_lq_sta *lq_sta, |
1359 | struct ieee80211_conf *conf, | 1360 | struct ieee80211_conf *conf, |
1360 | struct sta_info *sta, | 1361 | struct sta_info *sta, |
@@ -1452,7 +1453,7 @@ static int rs_move_legacy_other(struct iwl4965_priv *priv, | |||
1452 | /* | 1453 | /* |
1453 | * Try to switch to new modulation mode from SISO | 1454 | * Try to switch to new modulation mode from SISO |
1454 | */ | 1455 | */ |
1455 | static int rs_move_siso_to_other(struct iwl4965_priv *priv, | 1456 | static int rs_move_siso_to_other(struct iwl_priv *priv, |
1456 | struct iwl4965_lq_sta *lq_sta, | 1457 | struct iwl4965_lq_sta *lq_sta, |
1457 | struct ieee80211_conf *conf, | 1458 | struct ieee80211_conf *conf, |
1458 | struct sta_info *sta, | 1459 | struct sta_info *sta, |
@@ -1548,7 +1549,7 @@ static int rs_move_siso_to_other(struct iwl4965_priv *priv, | |||
1548 | /* | 1549 | /* |
1549 | * Try to switch to new modulation mode from MIMO | 1550 | * Try to switch to new modulation mode from MIMO |
1550 | */ | 1551 | */ |
1551 | static int rs_move_mimo_to_other(struct iwl4965_priv *priv, | 1552 | static int rs_move_mimo_to_other(struct iwl_priv *priv, |
1552 | struct iwl4965_lq_sta *lq_sta, | 1553 | struct iwl4965_lq_sta *lq_sta, |
1553 | struct ieee80211_conf *conf, | 1554 | struct ieee80211_conf *conf, |
1554 | struct sta_info *sta, | 1555 | struct sta_info *sta, |
@@ -1728,7 +1729,7 @@ static void rs_stay_in_table(struct iwl4965_lq_sta *lq_sta) | |||
1728 | /* | 1729 | /* |
1729 | * Do rate scaling and search for new modulation mode. | 1730 | * Do rate scaling and search for new modulation mode. |
1730 | */ | 1731 | */ |
1731 | static void rs_rate_scale_perform(struct iwl4965_priv *priv, | 1732 | static void rs_rate_scale_perform(struct iwl_priv *priv, |
1732 | struct net_device *dev, | 1733 | struct net_device *dev, |
1733 | struct ieee80211_hdr *hdr, | 1734 | struct ieee80211_hdr *hdr, |
1734 | struct sta_info *sta) | 1735 | struct sta_info *sta) |
@@ -2148,7 +2149,7 @@ out: | |||
2148 | } | 2149 | } |
2149 | 2150 | ||
2150 | 2151 | ||
2151 | static void rs_initialize_lq(struct iwl4965_priv *priv, | 2152 | static void rs_initialize_lq(struct iwl_priv *priv, |
2152 | struct ieee80211_conf *conf, | 2153 | struct ieee80211_conf *conf, |
2153 | struct sta_info *sta) | 2154 | struct sta_info *sta) |
2154 | { | 2155 | { |
@@ -2213,7 +2214,7 @@ static void rs_get_rate(void *priv_rate, struct net_device *dev, | |||
2213 | struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data; | 2214 | struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data; |
2214 | struct sta_info *sta; | 2215 | struct sta_info *sta; |
2215 | u16 fc; | 2216 | u16 fc; |
2216 | struct iwl4965_priv *priv = (struct iwl4965_priv *)priv_rate; | 2217 | struct iwl_priv *priv = (struct iwl_priv *)priv_rate; |
2217 | struct iwl4965_lq_sta *lq_sta; | 2218 | struct iwl4965_lq_sta *lq_sta; |
2218 | 2219 | ||
2219 | IWL_DEBUG_RATE_LIMIT("rate scale calculate new rate for skb\n"); | 2220 | IWL_DEBUG_RATE_LIMIT("rate scale calculate new rate for skb\n"); |
@@ -2294,7 +2295,7 @@ static void rs_rate_init(void *priv_rate, void *priv_sta, | |||
2294 | int i, j; | 2295 | int i, j; |
2295 | struct ieee80211_conf *conf = &local->hw.conf; | 2296 | struct ieee80211_conf *conf = &local->hw.conf; |
2296 | struct ieee80211_supported_band *sband; | 2297 | struct ieee80211_supported_band *sband; |
2297 | struct iwl4965_priv *priv = (struct iwl4965_priv *)priv_rate; | 2298 | struct iwl_priv *priv = (struct iwl_priv *)priv_rate; |
2298 | struct iwl4965_lq_sta *lq_sta = priv_sta; | 2299 | struct iwl4965_lq_sta *lq_sta = priv_sta; |
2299 | 2300 | ||
2300 | sband = local->hw.wiphy->bands[local->hw.conf.channel->band]; | 2301 | sband = local->hw.wiphy->bands[local->hw.conf.channel->band]; |
@@ -2516,7 +2517,7 @@ static void rs_free(void *priv_rate) | |||
2516 | 2517 | ||
2517 | static void rs_clear(void *priv_rate) | 2518 | static void rs_clear(void *priv_rate) |
2518 | { | 2519 | { |
2519 | struct iwl4965_priv *priv = (struct iwl4965_priv *) priv_rate; | 2520 | struct iwl_priv *priv = (struct iwl_priv *) priv_rate; |
2520 | 2521 | ||
2521 | IWL_DEBUG_RATE("enter\n"); | 2522 | IWL_DEBUG_RATE("enter\n"); |
2522 | 2523 | ||
@@ -2726,7 +2727,7 @@ static struct rate_control_ops rs_ops = { | |||
2726 | int iwl4965_fill_rs_info(struct ieee80211_hw *hw, char *buf, u8 sta_id) | 2727 | int iwl4965_fill_rs_info(struct ieee80211_hw *hw, char *buf, u8 sta_id) |
2727 | { | 2728 | { |
2728 | struct ieee80211_local *local = hw_to_local(hw); | 2729 | struct ieee80211_local *local = hw_to_local(hw); |
2729 | struct iwl4965_priv *priv = hw->priv; | 2730 | struct iwl_priv *priv = hw->priv; |
2730 | struct iwl4965_lq_sta *lq_sta; | 2731 | struct iwl4965_lq_sta *lq_sta; |
2731 | struct sta_info *sta; | 2732 | struct sta_info *sta; |
2732 | int cnt = 0, i; | 2733 | int cnt = 0, i; |
@@ -2816,7 +2817,7 @@ int iwl4965_fill_rs_info(struct ieee80211_hw *hw, char *buf, u8 sta_id) | |||
2816 | 2817 | ||
2817 | void iwl4965_rate_scale_init(struct ieee80211_hw *hw, s32 sta_id) | 2818 | void iwl4965_rate_scale_init(struct ieee80211_hw *hw, s32 sta_id) |
2818 | { | 2819 | { |
2819 | struct iwl4965_priv *priv = hw->priv; | 2820 | struct iwl_priv *priv = hw->priv; |
2820 | 2821 | ||
2821 | priv->lq_mngr.lq_ready = 1; | 2822 | priv->lq_mngr.lq_ready = 1; |
2822 | } | 2823 | } |