Commit f4567012 authored by Ping-Ke Shih's avatar Ping-Ke Shih Committed by Kalle Valo
Browse files

wifi: rtw89: parse TX EHT rate selected by firmware from RA C2H report



RA (rate adaptive) C2H report is to reflect current TX rate firmware is
using. Parse C2H event encoded in EHT mode, and then user space and debugfs
can use the information to know TX rate.

Signed-off-by: default avatarPing-Ke Shih <pkshih@realtek.com>
Signed-off-by: default avatarKalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20231011115256.6121-5-pkshih@realtek.com
parent 1f3cd090
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -2742,6 +2742,7 @@ enum rtw89_ra_report_mode {
	RTW89_RA_RPT_MODE_HT,
	RTW89_RA_RPT_MODE_VHT,
	RTW89_RA_RPT_MODE_HE,
	RTW89_RA_RPT_MODE_EHT,
};

enum rtw89_dig_noisy_level {
+12 −0
Original line number Diff line number Diff line
@@ -2399,6 +2399,18 @@ static void rtw89_phy_c2h_ra_rpt_iter(void *data, struct ieee80211_sta *sta)
			ra_report->txrate.he_gi = NL80211_RATE_INFO_HE_GI_3_2;
		mcs = ra_report->txrate.mcs;
		break;
	case RTW89_RA_RPT_MODE_EHT:
		ra_report->txrate.flags |= RATE_INFO_FLAGS_EHT_MCS;
		ra_report->txrate.mcs = u8_get_bits(rate, RTW89_RA_RATE_MASK_MCS_V1);
		ra_report->txrate.nss = u8_get_bits(rate, RTW89_RA_RATE_MASK_NSS_V1) + 1;
		if (giltf == RTW89_GILTF_2XHE08 || giltf == RTW89_GILTF_1XHE08)
			ra_report->txrate.eht_gi = NL80211_RATE_INFO_EHT_GI_0_8;
		else if (giltf == RTW89_GILTF_2XHE16 || giltf == RTW89_GILTF_1XHE16)
			ra_report->txrate.eht_gi = NL80211_RATE_INFO_EHT_GI_1_6;
		else
			ra_report->txrate.eht_gi = NL80211_RATE_INFO_EHT_GI_3_2;
		mcs = ra_report->txrate.mcs;
		break;
	}

	ra_report->txrate.bw = rtw89_hw_to_rate_info_bw(bw);