]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - net/mac80211/debugfs_netdev.c
mac80211: add rate mask logic for vht rates
[karo-tx-linux.git] / net / mac80211 / debugfs_netdev.c
index 29236e832e44470a4f13637847c2d1cbafb9bfb2..1021e87c051f35168eef1274a38a4d720054359e 100644 (file)
@@ -186,6 +186,38 @@ IEEE80211_IF_FILE(rc_rateidx_mcs_mask_2ghz,
 IEEE80211_IF_FILE(rc_rateidx_mcs_mask_5ghz,
                  rc_rateidx_mcs_mask[IEEE80211_BAND_5GHZ], HEXARRAY);
 
+static ssize_t ieee80211_if_fmt_rc_rateidx_vht_mcs_mask_2ghz(
+                               const struct ieee80211_sub_if_data *sdata,
+                               char *buf, int buflen)
+{
+       int i, len = 0;
+       const u16 *mask = sdata->rc_rateidx_vht_mcs_mask[IEEE80211_BAND_2GHZ];
+
+       for (i = 0; i < NL80211_VHT_NSS_MAX; i++)
+               len += scnprintf(buf + len, buflen - len, "%04x ", mask[i]);
+       len += scnprintf(buf + len, buflen - len, "\n");
+
+       return len;
+}
+
+IEEE80211_IF_FILE_R(rc_rateidx_vht_mcs_mask_2ghz);
+
+static ssize_t ieee80211_if_fmt_rc_rateidx_vht_mcs_mask_5ghz(
+                               const struct ieee80211_sub_if_data *sdata,
+                               char *buf, int buflen)
+{
+       int i, len = 0;
+       const u16 *mask = sdata->rc_rateidx_vht_mcs_mask[IEEE80211_BAND_5GHZ];
+
+       for (i = 0; i < NL80211_VHT_NSS_MAX; i++)
+               len += scnprintf(buf + len, buflen - len, "%04x ", mask[i]);
+       len += scnprintf(buf + len, buflen - len, "\n");
+
+       return len;
+}
+
+IEEE80211_IF_FILE_R(rc_rateidx_vht_mcs_mask_5ghz);
+
 IEEE80211_IF_FILE(flags, flags, HEX);
 IEEE80211_IF_FILE(state, state, LHEX);
 IEEE80211_IF_FILE(txpower, vif.bss_conf.txpower, DEC);
@@ -565,6 +597,8 @@ static void add_common_files(struct ieee80211_sub_if_data *sdata)
        DEBUGFS_ADD(rc_rateidx_mask_5ghz);
        DEBUGFS_ADD(rc_rateidx_mcs_mask_2ghz);
        DEBUGFS_ADD(rc_rateidx_mcs_mask_5ghz);
+       DEBUGFS_ADD(rc_rateidx_vht_mcs_mask_2ghz);
+       DEBUGFS_ADD(rc_rateidx_vht_mcs_mask_5ghz);
        DEBUGFS_ADD(hw_queues);
 }
 
@@ -723,6 +757,7 @@ void ieee80211_debugfs_remove_netdev(struct ieee80211_sub_if_data *sdata)
 
        debugfs_remove_recursive(sdata->vif.debugfs_dir);
        sdata->vif.debugfs_dir = NULL;
+       sdata->debugfs.subdir_stations = NULL;
 }
 
 void ieee80211_debugfs_rename_netdev(struct ieee80211_sub_if_data *sdata)