diff options
| author | Tomas Winkler <tomas.winkler@intel.com> | 2008-07-18 01:53:05 -0400 |
|---|---|---|
| committer | John W. Linville <linville@tuxdriver.com> | 2008-08-04 15:09:08 -0400 |
| commit | e227ceac8429ecd775c213838f0415700727b7b4 (patch) | |
| tree | d4795e7d2d66d520bc324f54bd91a707575f5e13 | |
| parent | e2e3c57b271d74ed8fd4d378f1517525ef7e5921 (diff) | |
iwlwifi: rename iwl-4695-rs to iwl-agn-rs
This patch renames iwl-4965-rs to iwl-agn-rs as it provides
rate scale capability for all AGN capable iwlwifi drivers.
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
| -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); |
