diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi')
-rw-r--r-- | drivers/net/wireless/iwlwifi/Makefile | 2 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn-rs.c (renamed from drivers/net/wireless/iwlwifi/iwl-4965-rs.c) | 219 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn-rs.h (renamed from drivers/net/wireless/iwlwifi/iwl-4965-rs.h) | 14 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-core.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-dev.h | 2 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-sta.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl4965-base.c | 6 |
7 files changed, 119 insertions, 128 deletions
diff --git a/drivers/net/wireless/iwlwifi/Makefile b/drivers/net/wireless/iwlwifi/Makefile index 1f52b92f08b5..f50d2f8fd5c9 100644 --- a/drivers/net/wireless/iwlwifi/Makefile +++ b/drivers/net/wireless/iwlwifi/Makefile | |||
@@ -11,7 +11,7 @@ iwl3945-objs := iwl3945-base.o iwl-3945.o iwl-3945-rs.o | |||
11 | iwl3945-$(CONFIG_IWL3945_LEDS) += iwl-3945-led.o | 11 | iwl3945-$(CONFIG_IWL3945_LEDS) += iwl-3945-led.o |
12 | 12 | ||
13 | obj-$(CONFIG_IWL4965) += iwl4965.o | 13 | obj-$(CONFIG_IWL4965) += iwl4965.o |
14 | iwl4965-objs := iwl4965-base.o iwl-4965.o iwl-4965-rs.o | 14 | iwl4965-objs := iwl4965-base.o iwl-4965.o iwl-agn-rs.o |
15 | 15 | ||
16 | ifeq ($(CONFIG_IWL5000),y) | 16 | ifeq ($(CONFIG_IWL5000),y) |
17 | iwl4965-objs += iwl-5000.o | 17 | iwl4965-objs += iwl-5000.o |
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965-rs.c b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c index 3ccb84aa5dbc..eee22c6dec73 100644 --- a/drivers/net/wireless/iwlwifi/iwl-4965-rs.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c | |||
@@ -42,7 +42,7 @@ | |||
42 | #include "iwl-core.h" | 42 | #include "iwl-core.h" |
43 | #include "iwl-helpers.h" | 43 | #include "iwl-helpers.h" |
44 | 44 | ||
45 | #define RS_NAME "iwl-4965-rs" | 45 | #define RS_NAME "iwl-agn-rs" |
46 | 46 | ||
47 | #define NUM_TRY_BEFORE_ANT_TOGGLE 1 | 47 | #define NUM_TRY_BEFORE_ANT_TOGGLE 1 |
48 | #define IWL_NUMBER_TRY 1 | 48 | #define IWL_NUMBER_TRY 1 |
@@ -77,9 +77,9 @@ static const u8 ant_toggle_lookup[] = { | |||
77 | }; | 77 | }; |
78 | 78 | ||
79 | /** | 79 | /** |
80 | * struct iwl4965_rate_scale_data -- tx success history for one rate | 80 | * struct iwl_rate_scale_data -- tx success history for one rate |
81 | */ | 81 | */ |
82 | struct iwl4965_rate_scale_data { | 82 | struct iwl_rate_scale_data { |
83 | u64 data; /* bitmap of successful frames */ | 83 | u64 data; /* bitmap of successful frames */ |
84 | s32 success_counter; /* number of frames successful */ | 84 | s32 success_counter; /* number of frames successful */ |
85 | s32 success_ratio; /* per-cent * 128 */ | 85 | s32 success_ratio; /* per-cent * 128 */ |
@@ -89,12 +89,12 @@ struct iwl4965_rate_scale_data { | |||
89 | }; | 89 | }; |
90 | 90 | ||
91 | /** | 91 | /** |
92 | * struct iwl4965_scale_tbl_info -- tx params and success history for all rates | 92 | * struct iwl_scale_tbl_info -- tx params and success history for all rates |
93 | * | 93 | * |
94 | * There are two of these in struct iwl4965_lq_sta, | 94 | * There are two of these in struct iwl_lq_sta, |
95 | * one for "active", and one for "search". | 95 | * one for "active", and one for "search". |
96 | */ | 96 | */ |
97 | struct iwl4965_scale_tbl_info { | 97 | struct iwl_scale_tbl_info { |
98 | enum iwl_table_type lq_type; | 98 | enum iwl_table_type lq_type; |
99 | u8 ant_type; | 99 | u8 ant_type; |
100 | u8 is_SGI; /* 1 = short guard interval */ | 100 | u8 is_SGI; /* 1 = short guard interval */ |
@@ -103,10 +103,10 @@ struct iwl4965_scale_tbl_info { | |||
103 | u8 action; /* change modulation; IWL_[LEGACY/SISO/MIMO]_SWITCH_* */ | 103 | u8 action; /* change modulation; IWL_[LEGACY/SISO/MIMO]_SWITCH_* */ |
104 | s32 *expected_tpt; /* throughput metrics; expected_tpt_G, etc. */ | 104 | s32 *expected_tpt; /* throughput metrics; expected_tpt_G, etc. */ |
105 | u32 current_rate; /* rate_n_flags, uCode API format */ | 105 | u32 current_rate; /* rate_n_flags, uCode API format */ |
106 | struct iwl4965_rate_scale_data win[IWL_RATE_COUNT]; /* rate histories */ | 106 | struct iwl_rate_scale_data win[IWL_RATE_COUNT]; /* rate histories */ |
107 | }; | 107 | }; |
108 | 108 | ||
109 | struct iwl4965_traffic_load { | 109 | struct iwl_traffic_load { |
110 | unsigned long time_stamp; /* age of the oldest statistics */ | 110 | unsigned long time_stamp; /* age of the oldest statistics */ |
111 | u32 packet_count[TID_QUEUE_MAX_SIZE]; /* packet count in this time | 111 | u32 packet_count[TID_QUEUE_MAX_SIZE]; /* packet count in this time |
112 | * slice */ | 112 | * slice */ |
@@ -118,11 +118,11 @@ struct iwl4965_traffic_load { | |||
118 | }; | 118 | }; |
119 | 119 | ||
120 | /** | 120 | /** |
121 | * struct iwl4965_lq_sta -- driver's rate scaling private structure | 121 | * struct iwl_lq_sta -- driver's rate scaling private structure |
122 | * | 122 | * |
123 | * Pointer to this gets passed back and forth between driver and mac80211. | 123 | * Pointer to this gets passed back and forth between driver and mac80211. |
124 | */ | 124 | */ |
125 | struct iwl4965_lq_sta { | 125 | struct iwl_lq_sta { |
126 | u8 active_tbl; /* index of active table, range 0-1 */ | 126 | u8 active_tbl; /* index of active table, range 0-1 */ |
127 | u8 enable_counter; /* indicates HT mode */ | 127 | u8 enable_counter; /* indicates HT mode */ |
128 | u8 stay_in_tbl; /* 1: disallow, 0: allow search for new mode */ | 128 | u8 stay_in_tbl; /* 1: disallow, 0: allow search for new mode */ |
@@ -153,8 +153,8 @@ struct iwl4965_lq_sta { | |||
153 | u16 active_rate_basic; | 153 | u16 active_rate_basic; |
154 | 154 | ||
155 | struct iwl_link_quality_cmd lq; | 155 | struct iwl_link_quality_cmd lq; |
156 | struct iwl4965_scale_tbl_info lq_info[LQ_SIZE]; /* "active", "search" */ | 156 | struct iwl_scale_tbl_info lq_info[LQ_SIZE]; /* "active", "search" */ |
157 | struct iwl4965_traffic_load load[TID_MAX_LOAD_COUNT]; | 157 | struct iwl_traffic_load load[TID_MAX_LOAD_COUNT]; |
158 | u8 tx_agg_tid_en; | 158 | u8 tx_agg_tid_en; |
159 | #ifdef CONFIG_MAC80211_DEBUGFS | 159 | #ifdef CONFIG_MAC80211_DEBUGFS |
160 | struct dentry *rs_sta_dbgfs_scale_table_file; | 160 | struct dentry *rs_sta_dbgfs_scale_table_file; |
@@ -170,16 +170,15 @@ static void rs_rate_scale_perform(struct iwl_priv *priv, | |||
170 | struct ieee80211_hdr *hdr, | 170 | struct ieee80211_hdr *hdr, |
171 | struct sta_info *sta); | 171 | struct sta_info *sta); |
172 | static void rs_fill_link_cmd(const struct iwl_priv *priv, | 172 | static void rs_fill_link_cmd(const struct iwl_priv *priv, |
173 | struct iwl4965_lq_sta *lq_sta, | 173 | struct iwl_lq_sta *lq_sta, u32 rate_n_flags); |
174 | u32 rate_n_flags); | ||
175 | 174 | ||
176 | 175 | ||
177 | #ifdef CONFIG_MAC80211_DEBUGFS | 176 | #ifdef CONFIG_MAC80211_DEBUGFS |
178 | static void rs_dbgfs_set_mcs(struct iwl4965_lq_sta *lq_sta, | 177 | static void rs_dbgfs_set_mcs(struct iwl_lq_sta *lq_sta, |
179 | u32 *rate_n_flags, int index); | 178 | u32 *rate_n_flags, int index); |
180 | #else | 179 | #else |
181 | static void rs_dbgfs_set_mcs(struct iwl4965_lq_sta *lq_sta, | 180 | static void rs_dbgfs_set_mcs(struct iwl_lq_sta *lq_sta, |
182 | u32 *rate_n_flags, int index) | 181 | u32 *rate_n_flags, int index) |
183 | {} | 182 | {} |
184 | #endif | 183 | #endif |
185 | 184 | ||
@@ -234,7 +233,7 @@ static inline u8 rs_extract_rate(u32 rate_n_flags) | |||
234 | return (u8)(rate_n_flags & 0xFF); | 233 | return (u8)(rate_n_flags & 0xFF); |
235 | } | 234 | } |
236 | 235 | ||
237 | static void rs_rate_scale_clear_window(struct iwl4965_rate_scale_data *window) | 236 | static void rs_rate_scale_clear_window(struct iwl_rate_scale_data *window) |
238 | { | 237 | { |
239 | window->data = 0; | 238 | window->data = 0; |
240 | window->success_counter = 0; | 239 | window->success_counter = 0; |
@@ -253,7 +252,7 @@ static inline u8 rs_is_valid_ant(u8 valid_antenna, u8 ant_type) | |||
253 | * removes the old data from the statistics. All data that is older than | 252 | * removes the old data from the statistics. All data that is older than |
254 | * TID_MAX_TIME_DIFF, will be deleted. | 253 | * TID_MAX_TIME_DIFF, will be deleted. |
255 | */ | 254 | */ |
256 | static void rs_tl_rm_old_stats(struct iwl4965_traffic_load *tl, u32 curr_time) | 255 | static void rs_tl_rm_old_stats(struct iwl_traffic_load *tl, u32 curr_time) |
257 | { | 256 | { |
258 | /* The oldest age we want to keep */ | 257 | /* The oldest age we want to keep */ |
259 | u32 oldest_time = curr_time - TID_MAX_TIME_DIFF; | 258 | u32 oldest_time = curr_time - TID_MAX_TIME_DIFF; |
@@ -274,13 +273,13 @@ static void rs_tl_rm_old_stats(struct iwl4965_traffic_load *tl, u32 curr_time) | |||
274 | * increment traffic load value for tid and also remove | 273 | * increment traffic load value for tid and also remove |
275 | * any old values if passed the certain time period | 274 | * any old values if passed the certain time period |
276 | */ | 275 | */ |
277 | static u8 rs_tl_add_packet(struct iwl4965_lq_sta *lq_data, | 276 | static u8 rs_tl_add_packet(struct iwl_lq_sta *lq_data, |
278 | struct ieee80211_hdr *hdr) | 277 | struct ieee80211_hdr *hdr) |
279 | { | 278 | { |
280 | u32 curr_time = jiffies_to_msecs(jiffies); | 279 | u32 curr_time = jiffies_to_msecs(jiffies); |
281 | u32 time_diff; | 280 | u32 time_diff; |
282 | s32 index; | 281 | s32 index; |
283 | struct iwl4965_traffic_load *tl = NULL; | 282 | struct iwl_traffic_load *tl = NULL; |
284 | __le16 fc = hdr->frame_control; | 283 | __le16 fc = hdr->frame_control; |
285 | u8 tid; | 284 | u8 tid; |
286 | 285 | ||
@@ -325,12 +324,12 @@ static u8 rs_tl_add_packet(struct iwl4965_lq_sta *lq_data, | |||
325 | /* | 324 | /* |
326 | get the traffic load value for tid | 325 | get the traffic load value for tid |
327 | */ | 326 | */ |
328 | static u32 rs_tl_get_load(struct iwl4965_lq_sta *lq_data, u8 tid) | 327 | static u32 rs_tl_get_load(struct iwl_lq_sta *lq_data, u8 tid) |
329 | { | 328 | { |
330 | u32 curr_time = jiffies_to_msecs(jiffies); | 329 | u32 curr_time = jiffies_to_msecs(jiffies); |
331 | u32 time_diff; | 330 | u32 time_diff; |
332 | s32 index; | 331 | s32 index; |
333 | struct iwl4965_traffic_load *tl = NULL; | 332 | struct iwl_traffic_load *tl = NULL; |
334 | 333 | ||
335 | if (tid >= TID_MAX_LOAD_COUNT) | 334 | if (tid >= TID_MAX_LOAD_COUNT) |
336 | return 0; | 335 | return 0; |
@@ -354,8 +353,8 @@ static u32 rs_tl_get_load(struct iwl4965_lq_sta *lq_data, u8 tid) | |||
354 | } | 353 | } |
355 | 354 | ||
356 | static void rs_tl_turn_on_agg_for_tid(struct iwl_priv *priv, | 355 | static void rs_tl_turn_on_agg_for_tid(struct iwl_priv *priv, |
357 | struct iwl4965_lq_sta *lq_data, u8 tid, | 356 | struct iwl_lq_sta *lq_data, u8 tid, |
358 | struct sta_info *sta) | 357 | struct sta_info *sta) |
359 | { | 358 | { |
360 | unsigned long state; | 359 | unsigned long state; |
361 | DECLARE_MAC_BUF(mac); | 360 | DECLARE_MAC_BUF(mac); |
@@ -373,8 +372,8 @@ static void rs_tl_turn_on_agg_for_tid(struct iwl_priv *priv, | |||
373 | } | 372 | } |
374 | 373 | ||
375 | static void rs_tl_turn_on_agg(struct iwl_priv *priv, u8 tid, | 374 | static void rs_tl_turn_on_agg(struct iwl_priv *priv, u8 tid, |
376 | struct iwl4965_lq_sta *lq_data, | 375 | struct iwl_lq_sta *lq_data, |
377 | struct sta_info *sta) | 376 | struct sta_info *sta) |
378 | { | 377 | { |
379 | if ((tid < TID_MAX_LOAD_COUNT)) | 378 | if ((tid < TID_MAX_LOAD_COUNT)) |
380 | rs_tl_turn_on_agg_for_tid(priv, lq_data, tid, sta); | 379 | rs_tl_turn_on_agg_for_tid(priv, lq_data, tid, sta); |
@@ -397,11 +396,11 @@ static inline int get_num_of_ant_from_rate(u32 rate_n_flags) | |||
397 | * at this rate. window->data contains the bitmask of successful | 396 | * at this rate. window->data contains the bitmask of successful |
398 | * packets. | 397 | * packets. |
399 | */ | 398 | */ |
400 | static int rs_collect_tx_data(struct iwl4965_rate_scale_data *windows, | 399 | static int rs_collect_tx_data(struct iwl_rate_scale_data *windows, |
401 | int scale_index, s32 tpt, int retries, | 400 | int scale_index, s32 tpt, int retries, |
402 | int successes) | 401 | int successes) |
403 | { | 402 | { |
404 | struct iwl4965_rate_scale_data *window = NULL; | 403 | struct iwl_rate_scale_data *window = NULL; |
405 | static const u64 mask = (((u64)1) << (IWL_RATE_MAX_WINDOW - 1)); | 404 | static const u64 mask = (((u64)1) << (IWL_RATE_MAX_WINDOW - 1)); |
406 | s32 fail_count; | 405 | s32 fail_count; |
407 | 406 | ||
@@ -473,7 +472,7 @@ static int rs_collect_tx_data(struct iwl4965_rate_scale_data *windows, | |||
473 | * Fill uCode API rate_n_flags field, based on "search" or "active" table. | 472 | * Fill uCode API rate_n_flags field, based on "search" or "active" table. |
474 | */ | 473 | */ |
475 | /* FIXME:RS:remove this function and put the flags statically in the table */ | 474 | /* FIXME:RS:remove this function and put the flags statically in the table */ |
476 | static u32 rate_n_flags_from_tbl(struct iwl4965_scale_tbl_info *tbl, | 475 | static u32 rate_n_flags_from_tbl(struct iwl_scale_tbl_info *tbl, |
477 | int index, u8 use_green) | 476 | int index, u8 use_green) |
478 | { | 477 | { |
479 | u32 rate_n_flags = 0; | 478 | u32 rate_n_flags = 0; |
@@ -530,7 +529,7 @@ static u32 rate_n_flags_from_tbl(struct iwl4965_scale_tbl_info *tbl, | |||
530 | */ | 529 | */ |
531 | static int rs_get_tbl_info_from_mcs(const u32 rate_n_flags, | 530 | static int rs_get_tbl_info_from_mcs(const u32 rate_n_flags, |
532 | enum ieee80211_band band, | 531 | enum ieee80211_band band, |
533 | struct iwl4965_scale_tbl_info *tbl, | 532 | struct iwl_scale_tbl_info *tbl, |
534 | int *rate_idx) | 533 | int *rate_idx) |
535 | { | 534 | { |
536 | u32 ant_msk = (rate_n_flags & RATE_MCS_ANT_ABC_MSK); | 535 | u32 ant_msk = (rate_n_flags & RATE_MCS_ANT_ABC_MSK); |
@@ -591,7 +590,7 @@ static int rs_get_tbl_info_from_mcs(const u32 rate_n_flags, | |||
591 | /* switch to another antenna/antennas and return 1 */ | 590 | /* switch to another antenna/antennas and return 1 */ |
592 | /* if no other valid antenna found, return 0 */ | 591 | /* if no other valid antenna found, return 0 */ |
593 | static int rs_toggle_antenna(u32 valid_ant, u32 *rate_n_flags, | 592 | static int rs_toggle_antenna(u32 valid_ant, u32 *rate_n_flags, |
594 | struct iwl4965_scale_tbl_info *tbl) | 593 | struct iwl_scale_tbl_info *tbl) |
595 | { | 594 | { |
596 | u8 new_ant_type; | 595 | u8 new_ant_type; |
597 | 596 | ||
@@ -638,9 +637,9 @@ static inline u8 rs_use_green(struct iwl_priv *priv, struct ieee80211_conf *conf | |||
638 | * basic available rates. | 637 | * basic available rates. |
639 | * | 638 | * |
640 | */ | 639 | */ |
641 | static u16 rs_get_supported_rates(struct iwl4965_lq_sta *lq_sta, | 640 | static u16 rs_get_supported_rates(struct iwl_lq_sta *lq_sta, |
642 | struct ieee80211_hdr *hdr, | 641 | struct ieee80211_hdr *hdr, |
643 | enum iwl_table_type rate_type) | 642 | enum iwl_table_type rate_type) |
644 | { | 643 | { |
645 | if (hdr && is_multicast_ether_addr(hdr->addr1) && | 644 | if (hdr && is_multicast_ether_addr(hdr->addr1) && |
646 | lq_sta->active_rate_basic) | 645 | lq_sta->active_rate_basic) |
@@ -714,9 +713,9 @@ static u16 rs_get_adjacent_rate(struct iwl_priv *priv, u8 index, u16 rate_mask, | |||
714 | return (high << 8) | low; | 713 | return (high << 8) | low; |
715 | } | 714 | } |
716 | 715 | ||
717 | static u32 rs_get_lower_rate(struct iwl4965_lq_sta *lq_sta, | 716 | static u32 rs_get_lower_rate(struct iwl_lq_sta *lq_sta, |
718 | struct iwl4965_scale_tbl_info *tbl, u8 scale_index, | 717 | struct iwl_scale_tbl_info *tbl, |
719 | u8 ht_possible) | 718 | u8 scale_index, u8 ht_possible) |
720 | { | 719 | { |
721 | s32 low; | 720 | s32 low; |
722 | u16 rate_mask; | 721 | u16 rate_mask; |
@@ -780,7 +779,7 @@ static void rs_tx_status(void *priv_rate, struct net_device *dev, | |||
780 | int status; | 779 | int status; |
781 | u8 retries; | 780 | u8 retries; |
782 | int rs_index, index = 0; | 781 | int rs_index, index = 0; |
783 | struct iwl4965_lq_sta *lq_sta; | 782 | struct iwl_lq_sta *lq_sta; |
784 | struct iwl_link_quality_cmd *table; | 783 | struct iwl_link_quality_cmd *table; |
785 | struct sta_info *sta; | 784 | struct sta_info *sta; |
786 | struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data; | 785 | struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data; |
@@ -788,11 +787,11 @@ static void rs_tx_status(void *priv_rate, struct net_device *dev, | |||
788 | struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr); | 787 | struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr); |
789 | struct ieee80211_hw *hw = local_to_hw(local); | 788 | struct ieee80211_hw *hw = local_to_hw(local); |
790 | struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); | 789 | struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); |
791 | struct iwl4965_rate_scale_data *window = NULL; | 790 | struct iwl_rate_scale_data *window = NULL; |
792 | struct iwl4965_rate_scale_data *search_win = NULL; | 791 | struct iwl_rate_scale_data *search_win = NULL; |
793 | u32 tx_rate; | 792 | u32 tx_rate; |
794 | struct iwl4965_scale_tbl_info tbl_type; | 793 | struct iwl_scale_tbl_info tbl_type; |
795 | struct iwl4965_scale_tbl_info *curr_tbl, *search_tbl; | 794 | struct iwl_scale_tbl_info *curr_tbl, *search_tbl; |
796 | u8 active_index = 0; | 795 | u8 active_index = 0; |
797 | __le16 fc = hdr->frame_control; | 796 | __le16 fc = hdr->frame_control; |
798 | s32 tpt = 0; | 797 | s32 tpt = 0; |
@@ -820,7 +819,7 @@ static void rs_tx_status(void *priv_rate, struct net_device *dev, | |||
820 | goto out; | 819 | goto out; |
821 | 820 | ||
822 | 821 | ||
823 | lq_sta = (struct iwl4965_lq_sta *)sta->rate_ctrl_priv; | 822 | lq_sta = (struct iwl_lq_sta *)sta->rate_ctrl_priv; |
824 | 823 | ||
825 | if ((priv->iw_mode == IEEE80211_IF_TYPE_IBSS) && | 824 | if ((priv->iw_mode == IEEE80211_IF_TYPE_IBSS) && |
826 | !lq_sta->ibss_sta_added) | 825 | !lq_sta->ibss_sta_added) |
@@ -831,10 +830,8 @@ static void rs_tx_status(void *priv_rate, struct net_device *dev, | |||
831 | 830 | ||
832 | curr_tbl = &(lq_sta->lq_info[active_index]); | 831 | curr_tbl = &(lq_sta->lq_info[active_index]); |
833 | search_tbl = &(lq_sta->lq_info[(1 - active_index)]); | 832 | search_tbl = &(lq_sta->lq_info[(1 - active_index)]); |
834 | window = (struct iwl4965_rate_scale_data *) | 833 | window = (struct iwl_rate_scale_data *)&(curr_tbl->win[0]); |
835 | &(curr_tbl->win[0]); | 834 | search_win = (struct iwl_rate_scale_data *)&(search_tbl->win[0]); |
836 | search_win = (struct iwl4965_rate_scale_data *) | ||
837 | &(search_tbl->win[0]); | ||
838 | 835 | ||
839 | /* | 836 | /* |
840 | * Ignore this Tx frame response if its initial rate doesn't match | 837 | * Ignore this Tx frame response if its initial rate doesn't match |
@@ -983,7 +980,7 @@ out: | |||
983 | * searching for a new mode. | 980 | * searching for a new mode. |
984 | */ | 981 | */ |
985 | static void rs_set_stay_in_table(struct iwl_priv *priv, u8 is_legacy, | 982 | static void rs_set_stay_in_table(struct iwl_priv *priv, u8 is_legacy, |
986 | struct iwl4965_lq_sta *lq_sta) | 983 | struct iwl_lq_sta *lq_sta) |
987 | { | 984 | { |
988 | IWL_DEBUG_RATE("we are staying in the same table\n"); | 985 | IWL_DEBUG_RATE("we are staying in the same table\n"); |
989 | lq_sta->stay_in_tbl = 1; /* only place this gets set */ | 986 | lq_sta->stay_in_tbl = 1; /* only place this gets set */ |
@@ -1004,8 +1001,8 @@ static void rs_set_stay_in_table(struct iwl_priv *priv, u8 is_legacy, | |||
1004 | /* | 1001 | /* |
1005 | * Find correct throughput table for given mode of modulation | 1002 | * Find correct throughput table for given mode of modulation |
1006 | */ | 1003 | */ |
1007 | static void rs_set_expected_tpt_table(struct iwl4965_lq_sta *lq_sta, | 1004 | static void rs_set_expected_tpt_table(struct iwl_lq_sta *lq_sta, |
1008 | struct iwl4965_scale_tbl_info *tbl) | 1005 | struct iwl_scale_tbl_info *tbl) |
1009 | { | 1006 | { |
1010 | if (is_legacy(tbl->lq_type)) { | 1007 | if (is_legacy(tbl->lq_type)) { |
1011 | if (!is_a_band(tbl->lq_type)) | 1008 | if (!is_a_band(tbl->lq_type)) |
@@ -1050,12 +1047,12 @@ static void rs_set_expected_tpt_table(struct iwl4965_lq_sta *lq_sta, | |||
1050 | * bit rate will typically need to increase, but not if performance was bad. | 1047 | * bit rate will typically need to increase, but not if performance was bad. |
1051 | */ | 1048 | */ |
1052 | static s32 rs_get_best_rate(struct iwl_priv *priv, | 1049 | static s32 rs_get_best_rate(struct iwl_priv *priv, |
1053 | struct iwl4965_lq_sta *lq_sta, | 1050 | struct iwl_lq_sta *lq_sta, |
1054 | struct iwl4965_scale_tbl_info *tbl, /* "search" */ | 1051 | struct iwl_scale_tbl_info *tbl, /* "search" */ |
1055 | u16 rate_mask, s8 index) | 1052 | u16 rate_mask, s8 index) |
1056 | { | 1053 | { |
1057 | /* "active" values */ | 1054 | /* "active" values */ |
1058 | struct iwl4965_scale_tbl_info *active_tbl = | 1055 | struct iwl_scale_tbl_info *active_tbl = |
1059 | &(lq_sta->lq_info[lq_sta->active_tbl]); | 1056 | &(lq_sta->lq_info[lq_sta->active_tbl]); |
1060 | s32 active_sr = active_tbl->win[index].success_ratio; | 1057 | s32 active_sr = active_tbl->win[index].success_ratio; |
1061 | s32 active_tpt = active_tbl->expected_tpt[index]; | 1058 | s32 active_tpt = active_tbl->expected_tpt[index]; |
@@ -1143,10 +1140,10 @@ static s32 rs_get_best_rate(struct iwl_priv *priv, | |||
1143 | * Set up search table for MIMO | 1140 | * Set up search table for MIMO |
1144 | */ | 1141 | */ |
1145 | static int rs_switch_to_mimo2(struct iwl_priv *priv, | 1142 | static int rs_switch_to_mimo2(struct iwl_priv *priv, |
1146 | struct iwl4965_lq_sta *lq_sta, | 1143 | struct iwl_lq_sta *lq_sta, |
1147 | struct ieee80211_conf *conf, | 1144 | struct ieee80211_conf *conf, |
1148 | struct sta_info *sta, | 1145 | struct sta_info *sta, |
1149 | struct iwl4965_scale_tbl_info *tbl, int index) | 1146 | struct iwl_scale_tbl_info *tbl, int index) |
1150 | { | 1147 | { |
1151 | u16 rate_mask; | 1148 | u16 rate_mask; |
1152 | s32 rate; | 1149 | s32 rate; |
@@ -1210,10 +1207,10 @@ static int rs_switch_to_mimo2(struct iwl_priv *priv, | |||
1210 | * Set up search table for SISO | 1207 | * Set up search table for SISO |
1211 | */ | 1208 | */ |
1212 | static int rs_switch_to_siso(struct iwl_priv *priv, | 1209 | static int rs_switch_to_siso(struct iwl_priv *priv, |
1213 | struct iwl4965_lq_sta *lq_sta, | 1210 | struct iwl_lq_sta *lq_sta, |
1214 | struct ieee80211_conf *conf, | 1211 | struct ieee80211_conf *conf, |
1215 | struct sta_info *sta, | 1212 | struct sta_info *sta, |
1216 | struct iwl4965_scale_tbl_info *tbl, int index) | 1213 | struct iwl_scale_tbl_info *tbl, int index) |
1217 | { | 1214 | { |
1218 | u16 rate_mask; | 1215 | u16 rate_mask; |
1219 | u8 is_green = lq_sta->is_green; | 1216 | u8 is_green = lq_sta->is_green; |
@@ -1270,18 +1267,17 @@ static int rs_switch_to_siso(struct iwl_priv *priv, | |||
1270 | * Try to switch to new modulation mode from legacy | 1267 | * Try to switch to new modulation mode from legacy |
1271 | */ | 1268 | */ |
1272 | static int rs_move_legacy_other(struct iwl_priv *priv, | 1269 | static int rs_move_legacy_other(struct iwl_priv *priv, |
1273 | struct iwl4965_lq_sta *lq_sta, | 1270 | struct iwl_lq_sta *lq_sta, |
1274 | struct ieee80211_conf *conf, | 1271 | struct ieee80211_conf *conf, |
1275 | struct sta_info *sta, | 1272 | struct sta_info *sta, |
1276 | int index) | 1273 | int index) |
1277 | { | 1274 | { |
1278 | struct iwl4965_scale_tbl_info *tbl = | 1275 | struct iwl_scale_tbl_info *tbl = &(lq_sta->lq_info[lq_sta->active_tbl]); |
1279 | &(lq_sta->lq_info[lq_sta->active_tbl]); | 1276 | struct iwl_scale_tbl_info *search_tbl = |
1280 | struct iwl4965_scale_tbl_info *search_tbl = | 1277 | &(lq_sta->lq_info[(1 - lq_sta->active_tbl)]); |
1281 | &(lq_sta->lq_info[(1 - lq_sta->active_tbl)]); | 1278 | struct iwl_rate_scale_data *window = &(tbl->win[index]); |
1282 | struct iwl4965_rate_scale_data *window = &(tbl->win[index]); | 1279 | u32 sz = (sizeof(struct iwl_scale_tbl_info) - |
1283 | u32 sz = (sizeof(struct iwl4965_scale_tbl_info) - | 1280 | (sizeof(struct iwl_rate_scale_data) * IWL_RATE_COUNT)); |
1284 | (sizeof(struct iwl4965_rate_scale_data) * IWL_RATE_COUNT)); | ||
1285 | u8 start_action = tbl->action; | 1281 | u8 start_action = tbl->action; |
1286 | u8 valid_tx_ant = priv->hw_params.valid_tx_ant; | 1282 | u8 valid_tx_ant = priv->hw_params.valid_tx_ant; |
1287 | int ret = 0; | 1283 | int ret = 0; |
@@ -1360,19 +1356,17 @@ static int rs_move_legacy_other(struct iwl_priv *priv, | |||
1360 | * Try to switch to new modulation mode from SISO | 1356 | * Try to switch to new modulation mode from SISO |
1361 | */ | 1357 | */ |
1362 | static int rs_move_siso_to_other(struct iwl_priv *priv, | 1358 | static int rs_move_siso_to_other(struct iwl_priv *priv, |
1363 | struct iwl4965_lq_sta *lq_sta, | 1359 | struct iwl_lq_sta *lq_sta, |
1364 | struct ieee80211_conf *conf, | 1360 | struct ieee80211_conf *conf, |
1365 | struct sta_info *sta, | 1361 | struct sta_info *sta, int index) |
1366 | int index) | ||
1367 | { | 1362 | { |
1368 | u8 is_green = lq_sta->is_green; | 1363 | u8 is_green = lq_sta->is_green; |
1369 | struct iwl4965_scale_tbl_info *tbl = | 1364 | struct iwl_scale_tbl_info *tbl = &(lq_sta->lq_info[lq_sta->active_tbl]); |
1370 | &(lq_sta->lq_info[lq_sta->active_tbl]); | 1365 | struct iwl_scale_tbl_info *search_tbl = |
1371 | struct iwl4965_scale_tbl_info *search_tbl = | 1366 | &(lq_sta->lq_info[(1 - lq_sta->active_tbl)]); |
1372 | &(lq_sta->lq_info[(1 - lq_sta->active_tbl)]); | 1367 | struct iwl_rate_scale_data *window = &(tbl->win[index]); |
1373 | struct iwl4965_rate_scale_data *window = &(tbl->win[index]); | 1368 | u32 sz = (sizeof(struct iwl_scale_tbl_info) - |
1374 | u32 sz = (sizeof(struct iwl4965_scale_tbl_info) - | 1369 | (sizeof(struct iwl_rate_scale_data) * IWL_RATE_COUNT)); |
1375 | (sizeof(struct iwl4965_rate_scale_data) * IWL_RATE_COUNT)); | ||
1376 | u8 start_action = tbl->action; | 1370 | u8 start_action = tbl->action; |
1377 | u8 valid_tx_ant = priv->hw_params.valid_tx_ant; | 1371 | u8 valid_tx_ant = priv->hw_params.valid_tx_ant; |
1378 | int ret; | 1372 | int ret; |
@@ -1455,18 +1449,16 @@ static int rs_move_siso_to_other(struct iwl_priv *priv, | |||
1455 | * Try to switch to new modulation mode from MIMO | 1449 | * Try to switch to new modulation mode from MIMO |
1456 | */ | 1450 | */ |
1457 | static int rs_move_mimo_to_other(struct iwl_priv *priv, | 1451 | static int rs_move_mimo_to_other(struct iwl_priv *priv, |
1458 | struct iwl4965_lq_sta *lq_sta, | 1452 | struct iwl_lq_sta *lq_sta, |
1459 | struct ieee80211_conf *conf, | 1453 | struct ieee80211_conf *conf, |
1460 | struct sta_info *sta, | 1454 | struct sta_info *sta, int index) |
1461 | int index) | ||
1462 | { | 1455 | { |
1463 | s8 is_green = lq_sta->is_green; | 1456 | s8 is_green = lq_sta->is_green; |
1464 | struct iwl4965_scale_tbl_info *tbl = | 1457 | struct iwl_scale_tbl_info *tbl = &(lq_sta->lq_info[lq_sta->active_tbl]); |
1465 | &(lq_sta->lq_info[lq_sta->active_tbl]); | 1458 | struct iwl_scale_tbl_info *search_tbl = |
1466 | struct iwl4965_scale_tbl_info *search_tbl = | 1459 | &(lq_sta->lq_info[(1 - lq_sta->active_tbl)]); |
1467 | &(lq_sta->lq_info[(1 - lq_sta->active_tbl)]); | 1460 | u32 sz = (sizeof(struct iwl_scale_tbl_info) - |
1468 | u32 sz = (sizeof(struct iwl4965_scale_tbl_info) - | 1461 | (sizeof(struct iwl_rate_scale_data) * IWL_RATE_COUNT)); |
1469 | (sizeof(struct iwl4965_rate_scale_data) * IWL_RATE_COUNT)); | ||
1470 | u8 start_action = tbl->action; | 1462 | u8 start_action = tbl->action; |
1471 | /*u8 valid_tx_ant = priv->hw_params.valid_tx_ant;*/ | 1463 | /*u8 valid_tx_ant = priv->hw_params.valid_tx_ant;*/ |
1472 | int ret; | 1464 | int ret; |
@@ -1552,9 +1544,9 @@ static int rs_move_mimo_to_other(struct iwl_priv *priv, | |||
1552 | * 2) # times calling this function | 1544 | * 2) # times calling this function |
1553 | * 3) elapsed time in this mode (not used, for now) | 1545 | * 3) elapsed time in this mode (not used, for now) |
1554 | */ | 1546 | */ |
1555 | static void rs_stay_in_table(struct iwl4965_lq_sta *lq_sta) | 1547 | static void rs_stay_in_table(struct iwl_lq_sta *lq_sta) |
1556 | { | 1548 | { |
1557 | struct iwl4965_scale_tbl_info *tbl; | 1549 | struct iwl_scale_tbl_info *tbl; |
1558 | int i; | 1550 | int i; |
1559 | int active_tbl; | 1551 | int active_tbl; |
1560 | int flush_interval_passed = 0; | 1552 | int flush_interval_passed = 0; |
@@ -1642,7 +1634,7 @@ static void rs_rate_scale_perform(struct iwl_priv *priv, | |||
1642 | int high = IWL_RATE_INVALID; | 1634 | int high = IWL_RATE_INVALID; |
1643 | int index; | 1635 | int index; |
1644 | int i; | 1636 | int i; |
1645 | struct iwl4965_rate_scale_data *window = NULL; | 1637 | struct iwl_rate_scale_data *window = NULL; |
1646 | int current_tpt = IWL_INVALID_VALUE; | 1638 | int current_tpt = IWL_INVALID_VALUE; |
1647 | int low_tpt = IWL_INVALID_VALUE; | 1639 | int low_tpt = IWL_INVALID_VALUE; |
1648 | int high_tpt = IWL_INVALID_VALUE; | 1640 | int high_tpt = IWL_INVALID_VALUE; |
@@ -1651,8 +1643,8 @@ static void rs_rate_scale_perform(struct iwl_priv *priv, | |||
1651 | __le16 fc; | 1643 | __le16 fc; |
1652 | u16 rate_mask; | 1644 | u16 rate_mask; |
1653 | u8 update_lq = 0; | 1645 | u8 update_lq = 0; |
1654 | struct iwl4965_lq_sta *lq_sta; | 1646 | struct iwl_lq_sta *lq_sta; |
1655 | struct iwl4965_scale_tbl_info *tbl, *tbl1; | 1647 | struct iwl_scale_tbl_info *tbl, *tbl1; |
1656 | u16 rate_scale_index_msk = 0; | 1648 | u16 rate_scale_index_msk = 0; |
1657 | u32 rate; | 1649 | u32 rate; |
1658 | u8 is_green = 0; | 1650 | u8 is_green = 0; |
@@ -1675,7 +1667,7 @@ static void rs_rate_scale_perform(struct iwl_priv *priv, | |||
1675 | if (!sta || !sta->rate_ctrl_priv) | 1667 | if (!sta || !sta->rate_ctrl_priv) |
1676 | return; | 1668 | return; |
1677 | 1669 | ||
1678 | lq_sta = (struct iwl4965_lq_sta *)sta->rate_ctrl_priv; | 1670 | lq_sta = (struct iwl_lq_sta *)sta->rate_ctrl_priv; |
1679 | 1671 | ||
1680 | tid = rs_tl_add_packet(lq_sta, hdr); | 1672 | tid = rs_tl_add_packet(lq_sta, hdr); |
1681 | 1673 | ||
@@ -2030,8 +2022,8 @@ static void rs_initialize_lq(struct iwl_priv *priv, | |||
2030 | struct ieee80211_conf *conf, | 2022 | struct ieee80211_conf *conf, |
2031 | struct sta_info *sta) | 2023 | struct sta_info *sta) |
2032 | { | 2024 | { |
2033 | struct iwl4965_lq_sta *lq_sta; | 2025 | struct iwl_lq_sta *lq_sta; |
2034 | struct iwl4965_scale_tbl_info *tbl; | 2026 | struct iwl_scale_tbl_info *tbl; |
2035 | int rate_idx; | 2027 | int rate_idx; |
2036 | int i; | 2028 | int i; |
2037 | u32 rate; | 2029 | u32 rate; |
@@ -2042,7 +2034,7 @@ static void rs_initialize_lq(struct iwl_priv *priv, | |||
2042 | if (!sta || !sta->rate_ctrl_priv) | 2034 | if (!sta || !sta->rate_ctrl_priv) |
2043 | goto out; | 2035 | goto out; |
2044 | 2036 | ||
2045 | lq_sta = (struct iwl4965_lq_sta *)sta->rate_ctrl_priv; | 2037 | lq_sta = (struct iwl_lq_sta *)sta->rate_ctrl_priv; |
2046 | i = sta->last_txrate_idx; | 2038 | i = sta->last_txrate_idx; |
2047 | 2039 | ||
2048 | if ((lq_sta->lq.sta_id == 0xff) && | 2040 | if ((lq_sta->lq.sta_id == 0xff) && |
@@ -2096,7 +2088,7 @@ static void rs_get_rate(void *priv_rate, struct net_device *dev, | |||
2096 | struct sta_info *sta; | 2088 | struct sta_info *sta; |
2097 | __le16 fc; | 2089 | __le16 fc; |
2098 | struct iwl_priv *priv = (struct iwl_priv *)priv_rate; | 2090 | struct iwl_priv *priv = (struct iwl_priv *)priv_rate; |
2099 | struct iwl4965_lq_sta *lq_sta; | 2091 | struct iwl_lq_sta *lq_sta; |
2100 | 2092 | ||
2101 | IWL_DEBUG_RATE_LIMIT("rate scale calculate new rate for skb\n"); | 2093 | IWL_DEBUG_RATE_LIMIT("rate scale calculate new rate for skb\n"); |
2102 | 2094 | ||
@@ -2113,7 +2105,7 @@ static void rs_get_rate(void *priv_rate, struct net_device *dev, | |||
2113 | goto out; | 2105 | goto out; |
2114 | } | 2106 | } |
2115 | 2107 | ||
2116 | lq_sta = (struct iwl4965_lq_sta *)sta->rate_ctrl_priv; | 2108 | lq_sta = (struct iwl_lq_sta *)sta->rate_ctrl_priv; |
2117 | i = sta->last_txrate_idx; | 2109 | i = sta->last_txrate_idx; |
2118 | 2110 | ||
2119 | if ((priv->iw_mode == IEEE80211_IF_TYPE_IBSS) && | 2111 | if ((priv->iw_mode == IEEE80211_IF_TYPE_IBSS) && |
@@ -2149,14 +2141,14 @@ out: | |||
2149 | 2141 | ||
2150 | static void *rs_alloc_sta(void *priv_rate, gfp_t gfp) | 2142 | static void *rs_alloc_sta(void *priv_rate, gfp_t gfp) |
2151 | { | 2143 | { |
2152 | struct iwl4965_lq_sta *lq_sta; | 2144 | struct iwl_lq_sta *lq_sta; |
2153 | struct iwl_priv *priv; | 2145 | struct iwl_priv *priv; |
2154 | int i, j; | 2146 | int i, j; |
2155 | 2147 | ||
2156 | priv = (struct iwl_priv *)priv_rate; | 2148 | priv = (struct iwl_priv *)priv_rate; |
2157 | IWL_DEBUG_RATE("create station rate scale window\n"); | 2149 | IWL_DEBUG_RATE("create station rate scale window\n"); |
2158 | 2150 | ||
2159 | lq_sta = kzalloc(sizeof(struct iwl4965_lq_sta), gfp); | 2151 | lq_sta = kzalloc(sizeof(struct iwl_lq_sta), gfp); |
2160 | 2152 | ||
2161 | if (lq_sta == NULL) | 2153 | if (lq_sta == NULL) |
2162 | return NULL; | 2154 | return NULL; |
@@ -2178,7 +2170,7 @@ static void rs_rate_init(void *priv_rate, void *priv_sta, | |||
2178 | struct ieee80211_conf *conf = &local->hw.conf; | 2170 | struct ieee80211_conf *conf = &local->hw.conf; |
2179 | struct ieee80211_supported_band *sband; | 2171 | struct ieee80211_supported_band *sband; |
2180 | struct iwl_priv *priv = (struct iwl_priv *)priv_rate; | 2172 | struct iwl_priv *priv = (struct iwl_priv *)priv_rate; |
2181 | struct iwl4965_lq_sta *lq_sta = priv_sta; | 2173 | struct iwl_lq_sta *lq_sta = priv_sta; |
2182 | 2174 | ||
2183 | sband = local->hw.wiphy->bands[local->hw.conf.channel->band]; | 2175 | sband = local->hw.wiphy->bands[local->hw.conf.channel->band]; |
2184 | 2176 | ||
@@ -2271,10 +2263,9 @@ static void rs_rate_init(void *priv_rate, void *priv_sta, | |||
2271 | } | 2263 | } |
2272 | 2264 | ||
2273 | static void rs_fill_link_cmd(const struct iwl_priv *priv, | 2265 | static void rs_fill_link_cmd(const struct iwl_priv *priv, |
2274 | struct iwl4965_lq_sta *lq_sta, | 2266 | struct iwl_lq_sta *lq_sta, u32 new_rate) |
2275 | u32 new_rate) | ||
2276 | { | 2267 | { |
2277 | struct iwl4965_scale_tbl_info tbl_type; | 2268 | struct iwl_scale_tbl_info tbl_type; |
2278 | int index = 0; | 2269 | int index = 0; |
2279 | int rate_idx; | 2270 | int rate_idx; |
2280 | int repeat_rate = 0; | 2271 | int repeat_rate = 0; |
@@ -2413,7 +2404,7 @@ static void rs_clear(void *priv_rate) | |||
2413 | 2404 | ||
2414 | static void rs_free_sta(void *priv_rate, void *priv_sta) | 2405 | static void rs_free_sta(void *priv_rate, void *priv_sta) |
2415 | { | 2406 | { |
2416 | struct iwl4965_lq_sta *lq_sta = priv_sta; | 2407 | struct iwl_lq_sta *lq_sta = priv_sta; |
2417 | struct iwl_priv *priv; | 2408 | struct iwl_priv *priv; |
2418 | 2409 | ||
2419 | priv = (struct iwl_priv *)priv_rate; | 2410 | priv = (struct iwl_priv *)priv_rate; |
@@ -2429,8 +2420,8 @@ static int open_file_generic(struct inode *inode, struct file *file) | |||
2429 | file->private_data = inode->i_private; | 2420 | file->private_data = inode->i_private; |
2430 | return 0; | 2421 | return 0; |
2431 | } | 2422 | } |
2432 | static void rs_dbgfs_set_mcs(struct iwl4965_lq_sta *lq_sta, | 2423 | static void rs_dbgfs_set_mcs(struct iwl_lq_sta *lq_sta, |
2433 | u32 *rate_n_flags, int index) | 2424 | u32 *rate_n_flags, int index) |
2434 | { | 2425 | { |
2435 | struct iwl_priv *priv; | 2426 | struct iwl_priv *priv; |
2436 | 2427 | ||
@@ -2453,7 +2444,7 @@ static void rs_dbgfs_set_mcs(struct iwl4965_lq_sta *lq_sta, | |||
2453 | static ssize_t rs_sta_dbgfs_scale_table_write(struct file *file, | 2444 | static ssize_t rs_sta_dbgfs_scale_table_write(struct file *file, |
2454 | const char __user *user_buf, size_t count, loff_t *ppos) | 2445 | const char __user *user_buf, size_t count, loff_t *ppos) |
2455 | { | 2446 | { |
2456 | struct iwl4965_lq_sta *lq_sta = file->private_data; | 2447 | struct iwl_lq_sta *lq_sta = file->private_data; |
2457 | struct iwl_priv *priv; | 2448 | struct iwl_priv *priv; |
2458 | char buf[64]; | 2449 | char buf[64]; |
2459 | int buf_size; | 2450 | int buf_size; |
@@ -2493,7 +2484,7 @@ static ssize_t rs_sta_dbgfs_scale_table_read(struct file *file, | |||
2493 | int desc = 0; | 2484 | int desc = 0; |
2494 | int i = 0; | 2485 | int i = 0; |
2495 | 2486 | ||
2496 | struct iwl4965_lq_sta *lq_sta = file->private_data; | 2487 | struct iwl_lq_sta *lq_sta = file->private_data; |
2497 | 2488 | ||
2498 | desc += sprintf(buff+desc, "sta_id %d\n", lq_sta->lq.sta_id); | 2489 | desc += sprintf(buff+desc, "sta_id %d\n", lq_sta->lq.sta_id); |
2499 | desc += sprintf(buff+desc, "failed=%d success=%d rate=0%X\n", | 2490 | desc += sprintf(buff+desc, "failed=%d success=%d rate=0%X\n", |
@@ -2541,7 +2532,7 @@ static ssize_t rs_sta_dbgfs_stats_table_read(struct file *file, | |||
2541 | int desc = 0; | 2532 | int desc = 0; |
2542 | int i, j; | 2533 | int i, j; |
2543 | 2534 | ||
2544 | struct iwl4965_lq_sta *lq_sta = file->private_data; | 2535 | struct iwl_lq_sta *lq_sta = file->private_data; |
2545 | for (i = 0; i < LQ_SIZE; i++) { | 2536 | for (i = 0; i < LQ_SIZE; i++) { |
2546 | desc += sprintf(buff+desc, "%s type=%d SGI=%d FAT=%d DUP=%d\n" | 2537 | desc += sprintf(buff+desc, "%s type=%d SGI=%d FAT=%d DUP=%d\n" |
2547 | "rate=0x%X\n", | 2538 | "rate=0x%X\n", |
@@ -2570,7 +2561,7 @@ static const struct file_operations rs_sta_dbgfs_stats_table_ops = { | |||
2570 | static void rs_add_debugfs(void *priv, void *priv_sta, | 2561 | static void rs_add_debugfs(void *priv, void *priv_sta, |
2571 | struct dentry *dir) | 2562 | struct dentry *dir) |
2572 | { | 2563 | { |
2573 | struct iwl4965_lq_sta *lq_sta = priv_sta; | 2564 | struct iwl_lq_sta *lq_sta = priv_sta; |
2574 | lq_sta->rs_sta_dbgfs_scale_table_file = | 2565 | lq_sta->rs_sta_dbgfs_scale_table_file = |
2575 | debugfs_create_file("rate_scale_table", 0600, dir, | 2566 | debugfs_create_file("rate_scale_table", 0600, dir, |
2576 | lq_sta, &rs_sta_dbgfs_scale_table_ops); | 2567 | lq_sta, &rs_sta_dbgfs_scale_table_ops); |
@@ -2585,7 +2576,7 @@ static void rs_add_debugfs(void *priv, void *priv_sta, | |||
2585 | 2576 | ||
2586 | static void rs_remove_debugfs(void *priv, void *priv_sta) | 2577 | static void rs_remove_debugfs(void *priv, void *priv_sta) |
2587 | { | 2578 | { |
2588 | struct iwl4965_lq_sta *lq_sta = priv_sta; | 2579 | struct iwl_lq_sta *lq_sta = priv_sta; |
2589 | debugfs_remove(lq_sta->rs_sta_dbgfs_scale_table_file); | 2580 | debugfs_remove(lq_sta->rs_sta_dbgfs_scale_table_file); |
2590 | debugfs_remove(lq_sta->rs_sta_dbgfs_stats_table_file); | 2581 | debugfs_remove(lq_sta->rs_sta_dbgfs_stats_table_file); |
2591 | debugfs_remove(lq_sta->rs_sta_dbgfs_tx_agg_tid_en_file); | 2582 | debugfs_remove(lq_sta->rs_sta_dbgfs_tx_agg_tid_en_file); |
@@ -2613,7 +2604,7 @@ int iwl4965_fill_rs_info(struct ieee80211_hw *hw, char *buf, u8 sta_id) | |||
2613 | { | 2604 | { |
2614 | struct ieee80211_local *local = hw_to_local(hw); | 2605 | struct ieee80211_local *local = hw_to_local(hw); |
2615 | struct iwl_priv *priv = hw->priv; | 2606 | struct iwl_priv *priv = hw->priv; |
2616 | struct iwl4965_lq_sta *lq_sta; | 2607 | struct iwl_lq_sta *lq_sta; |
2617 | struct sta_info *sta; | 2608 | struct sta_info *sta; |
2618 | int cnt = 0, i; | 2609 | int cnt = 0, i; |
2619 | u32 samples = 0, success = 0, good = 0; | 2610 | u32 samples = 0, success = 0, good = 0; |
@@ -2701,12 +2692,12 @@ int iwl4965_fill_rs_info(struct ieee80211_hw *hw, char *buf, u8 sta_id) | |||
2701 | return cnt; | 2692 | return cnt; |
2702 | } | 2693 | } |
2703 | 2694 | ||
2704 | int iwl4965_rate_control_register(void) | 2695 | int iwlagn_rate_control_register(void) |
2705 | { | 2696 | { |
2706 | return ieee80211_rate_control_register(&rs_ops); | 2697 | return ieee80211_rate_control_register(&rs_ops); |
2707 | } | 2698 | } |
2708 | 2699 | ||
2709 | void iwl4965_rate_control_unregister(void) | 2700 | void iwlagn_rate_control_unregister(void) |
2710 | { | 2701 | { |
2711 | ieee80211_rate_control_unregister(&rs_ops); | 2702 | ieee80211_rate_control_unregister(&rs_ops); |
2712 | } | 2703 | } |
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965-rs.h b/drivers/net/wireless/iwlwifi/iwl-agn-rs.h index 9b9972885aa5..3b06c9da77e3 100644 --- a/drivers/net/wireless/iwlwifi/iwl-4965-rs.h +++ b/drivers/net/wireless/iwlwifi/iwl-agn-rs.h | |||
@@ -24,8 +24,8 @@ | |||
24 | * | 24 | * |
25 | *****************************************************************************/ | 25 | *****************************************************************************/ |
26 | 26 | ||
27 | #ifndef __iwl_4965_rs_h__ | 27 | #ifndef __iwl_agn_rs_h__ |
28 | #define __iwl_4965_rs_h__ | 28 | #define __iwl_agn_rs_h__ |
29 | 29 | ||
30 | #include "iwl-dev.h" | 30 | #include "iwl-dev.h" |
31 | 31 | ||
@@ -88,7 +88,7 @@ enum { | |||
88 | #define IWL_RATE_5M_MASK (1 << IWL_RATE_5M_INDEX) | 88 | #define IWL_RATE_5M_MASK (1 << IWL_RATE_5M_INDEX) |
89 | #define IWL_RATE_11M_MASK (1 << IWL_RATE_11M_INDEX) | 89 | #define IWL_RATE_11M_MASK (1 << IWL_RATE_11M_INDEX) |
90 | 90 | ||
91 | /* 4965 uCode API values for legacy bit rates, both OFDM and CCK */ | 91 | /* uCode API values for legacy bit rates, both OFDM and CCK */ |
92 | enum { | 92 | enum { |
93 | IWL_RATE_6M_PLCP = 13, | 93 | IWL_RATE_6M_PLCP = 13, |
94 | IWL_RATE_9M_PLCP = 15, | 94 | IWL_RATE_9M_PLCP = 15, |
@@ -107,7 +107,7 @@ enum { | |||
107 | /*FIXME:RS:add IWL_RATE_LEGACY_INVM_PLCP = 0,*/ | 107 | /*FIXME:RS:add IWL_RATE_LEGACY_INVM_PLCP = 0,*/ |
108 | }; | 108 | }; |
109 | 109 | ||
110 | /* 4965 uCode API values for OFDM high-throughput (HT) bit rates */ | 110 | /* uCode API values for OFDM high-throughput (HT) bit rates */ |
111 | enum { | 111 | enum { |
112 | IWL_RATE_SISO_6M_PLCP = 0, | 112 | IWL_RATE_SISO_6M_PLCP = 0, |
113 | IWL_RATE_SISO_12M_PLCP = 1, | 113 | IWL_RATE_SISO_12M_PLCP = 1, |
@@ -305,7 +305,7 @@ extern int iwl4965_fill_rs_info(struct ieee80211_hw *, char *buf, u8 sta_id); | |||
305 | * ieee80211_register_hw | 305 | * ieee80211_register_hw |
306 | * | 306 | * |
307 | */ | 307 | */ |
308 | extern int iwl4965_rate_control_register(void); | 308 | extern int iwlagn_rate_control_register(void); |
309 | 309 | ||
310 | /** | 310 | /** |
311 | * iwl4965_rate_control_unregister - Unregister the rate control callbacks | 311 | * iwl4965_rate_control_unregister - Unregister the rate control callbacks |
@@ -313,6 +313,6 @@ extern int iwl4965_rate_control_register(void); | |||
313 | * This should be called after calling ieee80211_unregister_hw, but before | 313 | * This should be called after calling ieee80211_unregister_hw, but before |
314 | * the driver is unloaded. | 314 | * the driver is unloaded. |
315 | */ | 315 | */ |
316 | extern void iwl4965_rate_control_unregister(void); | 316 | extern void iwlagn_rate_control_unregister(void); |
317 | 317 | ||
318 | #endif | 318 | #endif /* __iwl_agn__rs__ */ |
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c index e3427c205ccf..60d443e77c38 100644 --- a/drivers/net/wireless/iwlwifi/iwl-core.c +++ b/drivers/net/wireless/iwlwifi/iwl-core.c | |||
@@ -815,7 +815,7 @@ int iwl_setup_mac(struct iwl_priv *priv) | |||
815 | { | 815 | { |
816 | int ret; | 816 | int ret; |
817 | struct ieee80211_hw *hw = priv->hw; | 817 | struct ieee80211_hw *hw = priv->hw; |
818 | hw->rate_control_algorithm = "iwl-4965-rs"; | 818 | hw->rate_control_algorithm = "iwl-agn-rs"; |
819 | 819 | ||
820 | /* Tell mac80211 our characteristics */ | 820 | /* Tell mac80211 our characteristics */ |
821 | hw->flags = IEEE80211_HW_SIGNAL_DBM | | 821 | hw->flags = IEEE80211_HW_SIGNAL_DBM | |
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h index ff16cca2b8c7..7ac56b1350b7 100644 --- a/drivers/net/wireless/iwlwifi/iwl-dev.h +++ b/drivers/net/wireless/iwlwifi/iwl-dev.h | |||
@@ -45,6 +45,7 @@ | |||
45 | #include "iwl-debug.h" | 45 | #include "iwl-debug.h" |
46 | #include "iwl-led.h" | 46 | #include "iwl-led.h" |
47 | #include "iwl-power.h" | 47 | #include "iwl-power.h" |
48 | #include "iwl-agn-rs.h" | ||
48 | 49 | ||
49 | /* configuration for the iwl4965 */ | 50 | /* configuration for the iwl4965 */ |
50 | extern struct iwl_cfg iwl4965_agn_cfg; | 51 | extern struct iwl_cfg iwl4965_agn_cfg; |
@@ -191,7 +192,6 @@ struct iwl4965_clip_group { | |||
191 | const s8 clip_powers[IWL_MAX_RATES]; | 192 | const s8 clip_powers[IWL_MAX_RATES]; |
192 | }; | 193 | }; |
193 | 194 | ||
194 | #include "iwl-4965-rs.h" | ||
195 | 195 | ||
196 | #define IWL_TX_FIFO_AC0 0 | 196 | #define IWL_TX_FIFO_AC0 0 |
197 | #define IWL_TX_FIFO_AC1 1 | 197 | #define IWL_TX_FIFO_AC1 1 |
diff --git a/drivers/net/wireless/iwlwifi/iwl-sta.c b/drivers/net/wireless/iwlwifi/iwl-sta.c index 6d1467d0bd9d..10af82170f6b 100644 --- a/drivers/net/wireless/iwlwifi/iwl-sta.c +++ b/drivers/net/wireless/iwlwifi/iwl-sta.c | |||
@@ -839,7 +839,7 @@ EXPORT_SYMBOL(iwl_send_lq_cmd); | |||
839 | * for automatic fallback during transmission. | 839 | * for automatic fallback during transmission. |
840 | * | 840 | * |
841 | * NOTE: This sets up a default set of values. These will be replaced later | 841 | * NOTE: This sets up a default set of values. These will be replaced later |
842 | * if the driver's iwl-4965-rs rate scaling algorithm is used, instead of | 842 | * if the driver's iwl-agn-rs rate scaling algorithm is used, instead of |
843 | * rc80211_simple. | 843 | * rc80211_simple. |
844 | * | 844 | * |
845 | * NOTE: Run REPLY_ADD_STA command to set up station table entry, before | 845 | * NOTE: Run REPLY_ADD_STA command to set up station table entry, before |
diff --git a/drivers/net/wireless/iwlwifi/iwl4965-base.c b/drivers/net/wireless/iwlwifi/iwl4965-base.c index ac02342d2281..dcd11e9bd86c 100644 --- a/drivers/net/wireless/iwlwifi/iwl4965-base.c +++ b/drivers/net/wireless/iwlwifi/iwl4965-base.c | |||
@@ -4503,7 +4503,7 @@ static int __init iwl4965_init(void) | |||
4503 | printk(KERN_INFO DRV_NAME ": " DRV_DESCRIPTION ", " DRV_VERSION "\n"); | 4503 | printk(KERN_INFO DRV_NAME ": " DRV_DESCRIPTION ", " DRV_VERSION "\n"); |
4504 | printk(KERN_INFO DRV_NAME ": " DRV_COPYRIGHT "\n"); | 4504 | printk(KERN_INFO DRV_NAME ": " DRV_COPYRIGHT "\n"); |
4505 | 4505 | ||
4506 | ret = iwl4965_rate_control_register(); | 4506 | ret = iwlagn_rate_control_register(); |
4507 | if (ret) { | 4507 | if (ret) { |
4508 | IWL_ERROR("Unable to register rate control algorithm: %d\n", ret); | 4508 | IWL_ERROR("Unable to register rate control algorithm: %d\n", ret); |
4509 | return ret; | 4509 | return ret; |
@@ -4518,14 +4518,14 @@ static int __init iwl4965_init(void) | |||
4518 | return ret; | 4518 | return ret; |
4519 | 4519 | ||
4520 | error_register: | 4520 | error_register: |
4521 | iwl4965_rate_control_unregister(); | 4521 | iwlagn_rate_control_unregister(); |
4522 | return ret; | 4522 | return ret; |
4523 | } | 4523 | } |
4524 | 4524 | ||
4525 | static void __exit iwl4965_exit(void) | 4525 | static void __exit iwl4965_exit(void) |
4526 | { | 4526 | { |
4527 | pci_unregister_driver(&iwl_driver); | 4527 | pci_unregister_driver(&iwl_driver); |
4528 | iwl4965_rate_control_unregister(); | 4528 | iwlagn_rate_control_unregister(); |
4529 | } | 4529 | } |
4530 | 4530 | ||
4531 | module_exit(iwl4965_exit); | 4531 | module_exit(iwl4965_exit); |