diff options
author | Lorenzo Bianconi <lorenzo.bianconi83@gmail.com> | 2015-08-06 17:47:33 -0400 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2015-08-14 11:49:51 -0400 |
commit | b119ad6e726cc805f739f8f6843b9de4df1f895e (patch) | |
tree | 059dd7446c6e86eb3df1619efd7acab6a9e07a96 /net/mac80211/debugfs_netdev.c | |
parent | e910867bd285bb8470c47076d99d0325aaea895c (diff) |
mac80211: add rate mask logic for vht rates
Define rc_rateidx_vht_mcs_mask array and rate_idx_match_vht_mcs_mask()
method in order to apply mcs mask for vht rates
Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi83@gmail.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/debugfs_netdev.c')
-rw-r--r-- | net/mac80211/debugfs_netdev.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/net/mac80211/debugfs_netdev.c b/net/mac80211/debugfs_netdev.c index c09c0131bfa2..1021e87c051f 100644 --- a/net/mac80211/debugfs_netdev.c +++ b/net/mac80211/debugfs_netdev.c | |||
@@ -186,6 +186,38 @@ IEEE80211_IF_FILE(rc_rateidx_mcs_mask_2ghz, | |||
186 | IEEE80211_IF_FILE(rc_rateidx_mcs_mask_5ghz, | 186 | IEEE80211_IF_FILE(rc_rateidx_mcs_mask_5ghz, |
187 | rc_rateidx_mcs_mask[IEEE80211_BAND_5GHZ], HEXARRAY); | 187 | rc_rateidx_mcs_mask[IEEE80211_BAND_5GHZ], HEXARRAY); |
188 | 188 | ||
189 | static ssize_t ieee80211_if_fmt_rc_rateidx_vht_mcs_mask_2ghz( | ||
190 | const struct ieee80211_sub_if_data *sdata, | ||
191 | char *buf, int buflen) | ||
192 | { | ||
193 | int i, len = 0; | ||
194 | const u16 *mask = sdata->rc_rateidx_vht_mcs_mask[IEEE80211_BAND_2GHZ]; | ||
195 | |||
196 | for (i = 0; i < NL80211_VHT_NSS_MAX; i++) | ||
197 | len += scnprintf(buf + len, buflen - len, "%04x ", mask[i]); | ||
198 | len += scnprintf(buf + len, buflen - len, "\n"); | ||
199 | |||
200 | return len; | ||
201 | } | ||
202 | |||
203 | IEEE80211_IF_FILE_R(rc_rateidx_vht_mcs_mask_2ghz); | ||
204 | |||
205 | static ssize_t ieee80211_if_fmt_rc_rateidx_vht_mcs_mask_5ghz( | ||
206 | const struct ieee80211_sub_if_data *sdata, | ||
207 | char *buf, int buflen) | ||
208 | { | ||
209 | int i, len = 0; | ||
210 | const u16 *mask = sdata->rc_rateidx_vht_mcs_mask[IEEE80211_BAND_5GHZ]; | ||
211 | |||
212 | for (i = 0; i < NL80211_VHT_NSS_MAX; i++) | ||
213 | len += scnprintf(buf + len, buflen - len, "%04x ", mask[i]); | ||
214 | len += scnprintf(buf + len, buflen - len, "\n"); | ||
215 | |||
216 | return len; | ||
217 | } | ||
218 | |||
219 | IEEE80211_IF_FILE_R(rc_rateidx_vht_mcs_mask_5ghz); | ||
220 | |||
189 | IEEE80211_IF_FILE(flags, flags, HEX); | 221 | IEEE80211_IF_FILE(flags, flags, HEX); |
190 | IEEE80211_IF_FILE(state, state, LHEX); | 222 | IEEE80211_IF_FILE(state, state, LHEX); |
191 | IEEE80211_IF_FILE(txpower, vif.bss_conf.txpower, DEC); | 223 | IEEE80211_IF_FILE(txpower, vif.bss_conf.txpower, DEC); |
@@ -565,6 +597,8 @@ static void add_common_files(struct ieee80211_sub_if_data *sdata) | |||
565 | DEBUGFS_ADD(rc_rateidx_mask_5ghz); | 597 | DEBUGFS_ADD(rc_rateidx_mask_5ghz); |
566 | DEBUGFS_ADD(rc_rateidx_mcs_mask_2ghz); | 598 | DEBUGFS_ADD(rc_rateidx_mcs_mask_2ghz); |
567 | DEBUGFS_ADD(rc_rateidx_mcs_mask_5ghz); | 599 | DEBUGFS_ADD(rc_rateidx_mcs_mask_5ghz); |
600 | DEBUGFS_ADD(rc_rateidx_vht_mcs_mask_2ghz); | ||
601 | DEBUGFS_ADD(rc_rateidx_vht_mcs_mask_5ghz); | ||
568 | DEBUGFS_ADD(hw_queues); | 602 | DEBUGFS_ADD(hw_queues); |
569 | } | 603 | } |
570 | 604 | ||