]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
wifi: rtw89: show EHT rate in debugfs
authorPing-Ke Shih <pkshih@realtek.com>
Wed, 11 Oct 2023 11:52:55 +0000 (19:52 +0800)
committerKalle Valo <kvalo@kernel.org>
Thu, 12 Oct 2023 12:14:28 +0000 (15:14 +0300)
Since we have TX rate from RA report of C2H event and RX rate from RX
descriptor, show them in debugfs like

  TX rate [1]: EHT 2SS MCS-7 GI:3.2 BW:80 (hw_rate=0x427)
  RX rate [1]: EHT 2SS MCS-7 GI:3.2 BW:80 (hw_rate=0x427)

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20231011115256.6121-6-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/debug.c

index 6990d3679bc04899a5c5abe49fee4a615740b15c..a3f795d240ea5e90b310a11dd9ed1c117458adbb 100644 (file)
@@ -3467,6 +3467,11 @@ static void rtw89_sta_info_get_iter(void *data, struct ieee80211_sta *sta)
                [NL80211_RATE_INFO_HE_GI_1_6] = "1.6",
                [NL80211_RATE_INFO_HE_GI_3_2] = "3.2",
        };
+       static const char * const eht_gi_str[] = {
+               [NL80211_RATE_INFO_EHT_GI_0_8] = "0.8",
+               [NL80211_RATE_INFO_EHT_GI_1_6] = "1.6",
+               [NL80211_RATE_INFO_EHT_GI_3_2] = "3.2",
+       };
        struct rtw89_sta *rtwsta = (struct rtw89_sta *)sta->drv_priv;
        struct rate_info *rate = &rtwsta->ra_report.txrate;
        struct ieee80211_rx_status *status = &rtwsta->rx_status;
@@ -3492,6 +3497,10 @@ static void rtw89_sta_info_get_iter(void *data, struct ieee80211_sta *sta)
                seq_printf(m, "HE %dSS MCS-%d GI:%s", rate->nss, rate->mcs,
                           rate->he_gi <= NL80211_RATE_INFO_HE_GI_3_2 ?
                           he_gi_str[rate->he_gi] : "N/A");
+       else if (rate->flags & RATE_INFO_FLAGS_EHT_MCS)
+               seq_printf(m, "EHT %dSS MCS-%d GI:%s", rate->nss, rate->mcs,
+                          rate->eht_gi < ARRAY_SIZE(eht_gi_str) ?
+                          eht_gi_str[rate->eht_gi] : "N/A");
        else
                seq_printf(m, "Legacy %d", rate->legacy);
        seq_printf(m, "%s", rtwsta->ra_report.might_fallback_legacy ? " FB_G" : "");
@@ -3520,6 +3529,11 @@ static void rtw89_sta_info_get_iter(void *data, struct ieee80211_sta *sta)
                           status->he_gi <= NL80211_RATE_INFO_HE_GI_3_2 ?
                           he_gi_str[rate->he_gi] : "N/A");
                break;
+       case RX_ENC_EHT:
+               seq_printf(m, "EHT %dSS MCS-%d GI:%s", status->nss, status->rate_idx,
+                          status->eht.gi < ARRAY_SIZE(eht_gi_str) ?
+                          eht_gi_str[status->eht.gi] : "N/A");
+               break;
        }
        seq_printf(m, " BW:%u", rtw89_rate_info_bw_to_mhz(status->bw));
        seq_printf(m, "\t(hw_rate=0x%x)\n", rtwsta->rx_hw_rate);