diff options
Diffstat (limited to 'net/mac80211')
-rw-r--r-- | net/mac80211/rc80211_minstrel.c | 9 | ||||
-rw-r--r-- | net/mac80211/rc80211_minstrel.h | 12 | ||||
-rw-r--r-- | net/mac80211/rc80211_minstrel_ht.c | 7 |
3 files changed, 28 insertions, 0 deletions
diff --git a/net/mac80211/rc80211_minstrel.c b/net/mac80211/rc80211_minstrel.c index 8adac67395f7..58a89554b788 100644 --- a/net/mac80211/rc80211_minstrel.c +++ b/net/mac80211/rc80211_minstrel.c | |||
@@ -532,12 +532,21 @@ minstrel_alloc(struct ieee80211_hw *hw, struct dentry *debugfsdir) | |||
532 | mp->hw = hw; | 532 | mp->hw = hw; |
533 | mp->update_interval = 100; | 533 | mp->update_interval = 100; |
534 | 534 | ||
535 | #ifdef CONFIG_MAC80211_DEBUGFS | ||
536 | mp->fixed_rate_idx = (u32) -1; | ||
537 | mp->dbg_fixed_rate = debugfs_create_u32("fixed_rate_idx", | ||
538 | S_IRUGO | S_IWUGO, debugfsdir, &mp->fixed_rate_idx); | ||
539 | #endif | ||
540 | |||
535 | return mp; | 541 | return mp; |
536 | } | 542 | } |
537 | 543 | ||
538 | static void | 544 | static void |
539 | minstrel_free(void *priv) | 545 | minstrel_free(void *priv) |
540 | { | 546 | { |
547 | #ifdef CONFIG_MAC80211_DEBUGFS | ||
548 | debugfs_remove(((struct minstrel_priv *)priv)->dbg_fixed_rate); | ||
549 | #endif | ||
541 | kfree(priv); | 550 | kfree(priv); |
542 | } | 551 | } |
543 | 552 | ||
diff --git a/net/mac80211/rc80211_minstrel.h b/net/mac80211/rc80211_minstrel.h index 0f5a83370aa6..5d278eccaef0 100644 --- a/net/mac80211/rc80211_minstrel.h +++ b/net/mac80211/rc80211_minstrel.h | |||
@@ -78,6 +78,18 @@ struct minstrel_priv { | |||
78 | unsigned int update_interval; | 78 | unsigned int update_interval; |
79 | unsigned int lookaround_rate; | 79 | unsigned int lookaround_rate; |
80 | unsigned int lookaround_rate_mrr; | 80 | unsigned int lookaround_rate_mrr; |
81 | |||
82 | #ifdef CONFIG_MAC80211_DEBUGFS | ||
83 | /* | ||
84 | * enable fixed rate processing per RC | ||
85 | * - write static index to debugfs:ieee80211/phyX/rc/fixed_rate_idx | ||
86 | * - write -1 to enable RC processing again | ||
87 | * - setting will be applied on next update | ||
88 | */ | ||
89 | u32 fixed_rate_idx; | ||
90 | struct dentry *dbg_fixed_rate; | ||
91 | #endif | ||
92 | |||
81 | }; | 93 | }; |
82 | 94 | ||
83 | struct minstrel_debugfs_info { | 95 | struct minstrel_debugfs_info { |
diff --git a/net/mac80211/rc80211_minstrel_ht.c b/net/mac80211/rc80211_minstrel_ht.c index 333b5118be6d..66a1eeb279c6 100644 --- a/net/mac80211/rc80211_minstrel_ht.c +++ b/net/mac80211/rc80211_minstrel_ht.c | |||
@@ -609,6 +609,13 @@ minstrel_ht_get_rate(void *priv, struct ieee80211_sta *sta, void *priv_sta, | |||
609 | 609 | ||
610 | info->flags |= mi->tx_flags; | 610 | info->flags |= mi->tx_flags; |
611 | sample_idx = minstrel_get_sample_rate(mp, mi); | 611 | sample_idx = minstrel_get_sample_rate(mp, mi); |
612 | |||
613 | #ifdef CONFIG_MAC80211_DEBUGFS | ||
614 | /* use fixed index if set */ | ||
615 | if (mp->fixed_rate_idx != -1) | ||
616 | sample_idx = mp->fixed_rate_idx; | ||
617 | #endif | ||
618 | |||
612 | if (sample_idx >= 0) { | 619 | if (sample_idx >= 0) { |
613 | sample = true; | 620 | sample = true; |
614 | minstrel_ht_set_rate(mp, mi, &ar[0], sample_idx, | 621 | minstrel_ht_set_rate(mp, mi, &ar[0], sample_idx, |