Lorenzo Bianconi <lorenzo@xxxxxxxxxx> writes: > Report tx rate from tx status packets instead of receiving periodic mcu > event. This improves flexibility, accuracy and AQL performance, and > simplifies code flow for better readability. > > Signed-off-by: Lorenzo Bianconi <lorenzo@xxxxxxxxxx> [...] > + /* We don't support reading GI info from txs packets. > + * For accurate tx status reporting and AQL improvement, > + * we need to make sure that flags match so polling GI > + * from per-sta counters directly. > + */ > + rate = &msta->wcid.rate; > + addr = MT_WTBL_LMAC_OFFS(idx, 0) + 7 * 4; Magic values. > + val = mt76_rr(dev, addr); > + > + switch (rate->bw) { > + case RATE_INFO_BW_160: > + bw = IEEE80211_STA_RX_BW_160; > + break; > + case RATE_INFO_BW_80: > + bw = IEEE80211_STA_RX_BW_80; > + break; > + case RATE_INFO_BW_40: > + bw = IEEE80211_STA_RX_BW_40; > + break; > + default: > + bw = IEEE80211_STA_RX_BW_20; > + break; > + } > + > + if (rate->flags & RATE_INFO_FLAGS_HE_MCS) { > + u8 offs = 24 + 2 * bw; > + > + rate->he_gi = (val & (0x3 << offs)) >> offs; Ditto. -- https://patchwork.kernel.org/project/linux-wireless/list/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches