summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorLorenzo Bianconi <lorenzo@kernel.org>2021-06-19 21:18:19 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2021-11-18 21:16:35 +0300
commit90d9e4050bc3fa3004c83c2ca06e7a4cc52f68c3 (patch)
tree9122df312dd9d4193f2e84a6765dc93132eb9683 /drivers
parent5a9bd1b941f4418371ca932cf47f304caca18426 (diff)
downloadlinux-90d9e4050bc3fa3004c83c2ca06e7a4cc52f68c3.tar.xz
mt76: mt7921: fix endianness in mt7921_mcu_tx_done_event
[ Upstream commit df040215c077de0c13aab12c222bd0360a0d3988 ] Fix endianness in mt7921_mcu_tx_done_event event reported by the firmware. Fixes: 3cce2b98e0241 ("mt76: mt7921: introduce mac tx done handling") Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/mediatek/mt76/mt7921/mcu.c3
-rw-r--r--drivers/net/wireless/mediatek/mt76/mt7921/mcu.h10
2 files changed, 7 insertions, 6 deletions
diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c b/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c
index 9fbaacc67cfa..68840e55ede7 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c
@@ -532,7 +532,8 @@ mt7921_mcu_tx_done_event(struct mt7921_dev *dev, struct sk_buff *skb)
peer.g8 = !!(sta->vht_cap.cap & IEEE80211_VHT_CAP_SHORT_GI_80);
peer.g16 = !!(sta->vht_cap.cap & IEEE80211_VHT_CAP_SHORT_GI_160);
mt7921_mcu_tx_rate_parse(mphy->mt76, &peer,
- &msta->stats.tx_rate, event->tx_rate);
+ &msta->stats.tx_rate,
+ le16_to_cpu(event->tx_rate));
spin_lock_bh(&dev->sta_poll_lock);
break;
diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/mcu.h b/drivers/net/wireless/mediatek/mt76/mt7921/mcu.h
index de3c091f6736..42e727184895 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7921/mcu.h
+++ b/drivers/net/wireless/mediatek/mt76/mt7921/mcu.h
@@ -296,11 +296,11 @@ struct mt7921_txpwr_event {
struct mt7921_mcu_tx_done_event {
u8 pid;
u8 status;
- u16 seq;
+ __le16 seq;
u8 wlan_idx;
u8 tx_cnt;
- u16 tx_rate;
+ __le16 tx_rate;
u8 flag;
u8 tid;
@@ -312,9 +312,9 @@ struct mt7921_mcu_tx_done_event {
u8 reason;
u8 rsv0[1];
- u32 delay;
- u32 timestamp;
- u32 applied_flag;
+ __le32 delay;
+ __le32 timestamp;
+ __le32 applied_flag;
u8 txs[28];