blob: 6943e395624ef1de1a36c5db86e321c43340976f [file] [log] [blame]
From 81b15b74393bddb1f453300f85c37668ff98f8c7 Mon Sep 17 00:00:00 2001
From: "Henry.Yen" <henry.yen@mediatek.com>
Date: Mon, 8 Jan 2024 17:19:01 +0800
Subject: [PATCH 08/13] wifi: mt76: mt7915: add support for realtime Rx rate
updates
Add support for realtime Rx rate updates.
Currently, Rx rate is updated according to packet-triggered RxV
parsing flow, i.e., mt76_connac2_mac_fill_rx_rate(). However, whenever
the session enters hardware acceleration, driver layer won't have
any clue about what the current Rx rate is. So we make use of MCU
CMD to obtain Rx rate instead.
Signed-off-by: Henry.Yen <henry.yen@mediatek.com>
---
mt76_connac.h | 6 ++++++
mt7915/main.c | 2 +-
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/mt76_connac.h b/mt76_connac.h
index 98d64d3..1be41d6 100644
--- a/mt76_connac.h
+++ b/mt76_connac.h
@@ -255,6 +255,12 @@ static inline bool is_connac_v1(struct mt76_dev *dev)
return is_mt7615(dev) || is_mt7663(dev) || is_mt7622(dev);
}
+static inline bool is_connac_v2(struct mt76_dev *dev)
+{
+ return is_mt7915(dev) || is_mt7916(dev) ||
+ is_mt7981(dev) || is_mt7986(dev);
+}
+
static inline bool is_mt76_fw_txp(struct mt76_dev *dev)
{
switch (mt76_chip(dev)) {
diff --git a/mt7915/main.c b/mt7915/main.c
index dfaee4c..b84c666 100644
--- a/mt7915/main.c
+++ b/mt7915/main.c
@@ -1114,7 +1114,7 @@ static void mt7915_sta_statistics(struct ieee80211_hw *hw,
struct rate_info *txrate = &msta->wcid.rate;
struct rate_info rxrate = {};
- if (is_mt7915(&phy->dev->mt76) &&
+ if (is_connac_v2(&phy->dev->mt76) &&
!mt7915_mcu_get_rx_rate(phy, vif, sta, &rxrate)) {
sinfo->rxrate = rxrate;
sinfo->filled |= BIT_ULL(NL80211_STA_INFO_RX_BITRATE);
--
2.18.0