diff options
author | Tomas Winkler <tomas.winkler@intel.com> | 2008-07-18 01:53:06 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-08-04 15:09:08 -0400 |
commit | 3ce84b9f2f495f59c4a4e68d814c348eaa497f65 (patch) | |
tree | 0d342d7ce132b5d310c26d207a3ec48c5de8e53f | |
parent | e227ceac8429ecd775c213838f0415700727b7b4 (diff) |
iwlwifi: kill iwl4965_fill_rs_info
iwl4965_fill_rs_info was used in sysfs. This info is already present
in iwl-agn-rs debugfs.
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/iwl-agn-rs.c | 92 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn-rs.h | 9 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl4965-base.c | 10 |
3 files changed, 0 insertions, 111 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c index eee22c6dec73..0e8100e70620 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c | |||
@@ -2600,98 +2600,6 @@ static struct rate_control_ops rs_ops = { | |||
2600 | #endif | 2600 | #endif |
2601 | }; | 2601 | }; |
2602 | 2602 | ||
2603 | int iwl4965_fill_rs_info(struct ieee80211_hw *hw, char *buf, u8 sta_id) | ||
2604 | { | ||
2605 | struct ieee80211_local *local = hw_to_local(hw); | ||
2606 | struct iwl_priv *priv = hw->priv; | ||
2607 | struct iwl_lq_sta *lq_sta; | ||
2608 | struct sta_info *sta; | ||
2609 | int cnt = 0, i; | ||
2610 | u32 samples = 0, success = 0, good = 0; | ||
2611 | unsigned long now = jiffies; | ||
2612 | u32 max_time = 0; | ||
2613 | u8 lq_type, antenna; | ||
2614 | |||
2615 | rcu_read_lock(); | ||
2616 | |||
2617 | sta = sta_info_get(local, priv->stations[sta_id].sta.sta.addr); | ||
2618 | if (!sta || !sta->rate_ctrl_priv) { | ||
2619 | if (sta) | ||
2620 | IWL_DEBUG_RATE("leave - no private rate data!\n"); | ||
2621 | else | ||
2622 | IWL_DEBUG_RATE("leave - no station!\n"); | ||
2623 | rcu_read_unlock(); | ||
2624 | return sprintf(buf, "station %d not found\n", sta_id); | ||
2625 | } | ||
2626 | |||
2627 | lq_sta = (void *)sta->rate_ctrl_priv; | ||
2628 | |||
2629 | lq_type = lq_sta->lq_info[lq_sta->active_tbl].lq_type; | ||
2630 | antenna = lq_sta->lq_info[lq_sta->active_tbl].ant_type; | ||
2631 | |||
2632 | if (is_legacy(lq_type)) | ||
2633 | i = IWL_RATE_54M_INDEX; | ||
2634 | else | ||
2635 | i = IWL_RATE_60M_INDEX; | ||
2636 | while (1) { | ||
2637 | u64 mask; | ||
2638 | int j; | ||
2639 | int active = lq_sta->active_tbl; | ||
2640 | |||
2641 | cnt += | ||
2642 | sprintf(&buf[cnt], " %2dMbs: ", iwl_rates[i].ieee / 2); | ||
2643 | |||
2644 | mask = (1ULL << (IWL_RATE_MAX_WINDOW - 1)); | ||
2645 | for (j = 0; j < IWL_RATE_MAX_WINDOW; j++, mask >>= 1) | ||
2646 | buf[cnt++] = | ||
2647 | (lq_sta->lq_info[active].win[i].data & mask) | ||
2648 | ? '1' : '0'; | ||
2649 | |||
2650 | samples += lq_sta->lq_info[active].win[i].counter; | ||
2651 | good += lq_sta->lq_info[active].win[i].success_counter; | ||
2652 | success += lq_sta->lq_info[active].win[i].success_counter * | ||
2653 | iwl_rates[i].ieee; | ||
2654 | |||
2655 | if (lq_sta->lq_info[active].win[i].stamp) { | ||
2656 | int delta = | ||
2657 | jiffies_to_msecs(now - | ||
2658 | lq_sta->lq_info[active].win[i].stamp); | ||
2659 | |||
2660 | if (delta > max_time) | ||
2661 | max_time = delta; | ||
2662 | |||
2663 | cnt += sprintf(&buf[cnt], "%5dms\n", delta); | ||
2664 | } else | ||
2665 | buf[cnt++] = '\n'; | ||
2666 | |||
2667 | j = iwl4965_get_prev_ieee_rate(i); | ||
2668 | if (j == i) | ||
2669 | break; | ||
2670 | i = j; | ||
2671 | } | ||
2672 | |||
2673 | /* | ||
2674 | * Display the average rate of all samples taken. | ||
2675 | * NOTE: We multiply # of samples by 2 since the IEEE measurement | ||
2676 | * added from iwl_rates is actually 2X the rate. | ||
2677 | */ | ||
2678 | if (samples) | ||
2679 | cnt += sprintf(&buf[cnt], | ||
2680 | "\nAverage rate is %3d.%02dMbs over last %4dms\n" | ||
2681 | "%3d%% success (%d good packets over %d tries)\n", | ||
2682 | success / (2 * samples), (success * 5 / samples) % 10, | ||
2683 | max_time, good * 100 / samples, good, samples); | ||
2684 | else | ||
2685 | cnt += sprintf(&buf[cnt], "\nAverage rate: 0Mbs\n"); | ||
2686 | |||
2687 | cnt += sprintf(&buf[cnt], "\nrate scale type %d antenna %d " | ||
2688 | "active_search %d rate index %d\n", lq_type, antenna, | ||
2689 | lq_sta->search_better_tbl, sta->last_txrate_idx); | ||
2690 | |||
2691 | rcu_read_unlock(); | ||
2692 | return cnt; | ||
2693 | } | ||
2694 | |||
2695 | int iwlagn_rate_control_register(void) | 2603 | int iwlagn_rate_control_register(void) |
2696 | { | 2604 | { |
2697 | return ieee80211_rate_control_register(&rs_ops); | 2605 | return ieee80211_rate_control_register(&rs_ops); |
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rs.h b/drivers/net/wireless/iwlwifi/iwl-agn-rs.h index 3b06c9da77e3..84d4d1e33755 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn-rs.h +++ b/drivers/net/wireless/iwlwifi/iwl-agn-rs.h | |||
@@ -287,15 +287,6 @@ static inline u8 iwl4965_get_prev_ieee_rate(u8 rate_index) | |||
287 | } | 287 | } |
288 | 288 | ||
289 | /** | 289 | /** |
290 | * iwl4965_fill_rs_info - Fill an output text buffer with the rate representation | ||
291 | * | ||
292 | * NOTE: This is provided as a quick mechanism for a user to visualize | ||
293 | * the performance of the rate control algorithm and is not meant to be | ||
294 | * parsed software. | ||
295 | */ | ||
296 | extern int iwl4965_fill_rs_info(struct ieee80211_hw *, char *buf, u8 sta_id); | ||
297 | |||
298 | /** | ||
299 | * iwl4965_rate_control_register - Register the rate control algorithm callbacks | 290 | * iwl4965_rate_control_register - Register the rate control algorithm callbacks |
300 | * | 291 | * |
301 | * Since the rate control algorithm is hardware specific, there is no need | 292 | * Since the rate control algorithm is hardware specific, there is no need |
diff --git a/drivers/net/wireless/iwlwifi/iwl4965-base.c b/drivers/net/wireless/iwlwifi/iwl4965-base.c index dcd11e9bd86c..9db6aac02185 100644 --- a/drivers/net/wireless/iwlwifi/iwl4965-base.c +++ b/drivers/net/wireless/iwlwifi/iwl4965-base.c | |||
@@ -3687,15 +3687,6 @@ static ssize_t show_temperature(struct device *d, | |||
3687 | 3687 | ||
3688 | static DEVICE_ATTR(temperature, S_IRUGO, show_temperature, NULL); | 3688 | static DEVICE_ATTR(temperature, S_IRUGO, show_temperature, NULL); |
3689 | 3689 | ||
3690 | static ssize_t show_rs_window(struct device *d, | ||
3691 | struct device_attribute *attr, | ||
3692 | char *buf) | ||
3693 | { | ||
3694 | struct iwl_priv *priv = d->driver_data; | ||
3695 | return iwl4965_fill_rs_info(priv->hw, buf, IWL_AP_ID); | ||
3696 | } | ||
3697 | static DEVICE_ATTR(rs_window, S_IRUGO, show_rs_window, NULL); | ||
3698 | |||
3699 | static ssize_t show_tx_power(struct device *d, | 3690 | static ssize_t show_tx_power(struct device *d, |
3700 | struct device_attribute *attr, char *buf) | 3691 | struct device_attribute *attr, char *buf) |
3701 | { | 3692 | { |
@@ -4118,7 +4109,6 @@ static struct attribute *iwl4965_sysfs_entries[] = { | |||
4118 | #endif | 4109 | #endif |
4119 | &dev_attr_power_level.attr, | 4110 | &dev_attr_power_level.attr, |
4120 | &dev_attr_retry_rate.attr, | 4111 | &dev_attr_retry_rate.attr, |
4121 | &dev_attr_rs_window.attr, | ||
4122 | &dev_attr_statistics.attr, | 4112 | &dev_attr_statistics.attr, |
4123 | &dev_attr_status.attr, | 4113 | &dev_attr_status.attr, |
4124 | &dev_attr_temperature.attr, | 4114 | &dev_attr_temperature.attr, |