mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-04-26 16:53:25 -04:00
wifi: mt76: mt7996: add eht rx rate support
Add support to report eht rx rate. Note that extended fields for eht in mt76_rx_status will make the struct size exceed the cb size, so make nss and band share the same u8. Signed-off-by: Shayne Chen <shayne.chen@mediatek.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
committed by
Felix Fietkau
parent
dda423dd65
commit
021af94599
@@ -1067,9 +1067,14 @@ mt76_rx_convert(struct mt76_dev *dev, struct sk_buff *skb,
|
||||
status->enc_flags = mstat.enc_flags;
|
||||
status->encoding = mstat.encoding;
|
||||
status->bw = mstat.bw;
|
||||
status->he_ru = mstat.he_ru;
|
||||
status->he_gi = mstat.he_gi;
|
||||
status->he_dcm = mstat.he_dcm;
|
||||
if (status->encoding == RX_ENC_EHT) {
|
||||
status->eht.ru = mstat.eht.ru;
|
||||
status->eht.gi = mstat.eht.gi;
|
||||
} else {
|
||||
status->he_ru = mstat.he_ru;
|
||||
status->he_gi = mstat.he_gi;
|
||||
status->he_dcm = mstat.he_dcm;
|
||||
}
|
||||
status->rate_idx = mstat.rate_idx;
|
||||
status->nss = mstat.nss;
|
||||
status->band = mstat.band;
|
||||
|
||||
@@ -621,12 +621,22 @@ struct mt76_rx_status {
|
||||
u16 freq;
|
||||
u32 flag;
|
||||
u8 enc_flags;
|
||||
u8 encoding:2, bw:3, he_ru:3;
|
||||
u8 he_gi:2, he_dcm:1;
|
||||
u8 encoding:3, bw:4;
|
||||
union {
|
||||
struct {
|
||||
u8 he_ru:3;
|
||||
u8 he_gi:2;
|
||||
u8 he_dcm:1;
|
||||
};
|
||||
struct {
|
||||
u8 ru:4;
|
||||
u8 gi:2;
|
||||
} eht;
|
||||
};
|
||||
|
||||
u8 amsdu:1, first_amsdu:1, last_amsdu:1;
|
||||
u8 rate_idx;
|
||||
u8 nss;
|
||||
u8 band;
|
||||
u8 nss:5, band:3;
|
||||
s8 signal;
|
||||
u8 chains;
|
||||
s8 chain_signal[IEEE80211_MAX_CHAINS];
|
||||
|
||||
@@ -572,11 +572,12 @@ mt7996_mac_fill_rx_rate(struct mt7996_dev *dev,
|
||||
case MT_PHY_TYPE_EHT_SU:
|
||||
case MT_PHY_TYPE_EHT_TRIG:
|
||||
case MT_PHY_TYPE_EHT_MU:
|
||||
/* TODO: currently report rx rate with HE rate */
|
||||
status->nss = nss;
|
||||
status->encoding = RX_ENC_HE;
|
||||
bw = min_t(int, bw, IEEE80211_STA_RX_BW_160);
|
||||
i = min_t(int, i & 0xf, 11);
|
||||
status->encoding = RX_ENC_EHT;
|
||||
i &= GENMASK(3, 0);
|
||||
|
||||
if (gi <= NL80211_RATE_INFO_EHT_GI_3_2)
|
||||
status->eht.gi = gi;
|
||||
break;
|
||||
default:
|
||||
return -EINVAL;
|
||||
|
||||
Reference in New Issue
Block a user