wifi: mt76: mt7915: use little-endian for bss_info_ra wire fields

train_up_high_thres, train_up_rule_rssi and low_traffic_thres were
declared as host-native short in a firmware-facing TLV and assigned
host-order constants, so on a big-endian host the firmware received
byte-swapped rate-adaptation thresholds. Declare them __le16 and convert
with cpu_to_le16().

Fixes: e57b7901469f ("mt76: add mac80211 driver for MT7915 PCIe-based chipsets")
Signed-off-by: Felix Fietkau <[email protected]>
This commit is contained in:
Felix Fietkau
2026-07-24 14:45:39 +02:00
parent 10a1541fb2
commit 5f31226103
2 changed files with 6 additions and 6 deletions
+3 -3
View File
@@ -594,9 +594,9 @@ mt7915_mcu_bss_ra_tlv(struct sk_buff *skb, struct ieee80211_vif *vif,
ra->rx_streams = max_nss; ra->rx_streams = max_nss;
ra->algo = 4; ra->algo = 4;
ra->train_up_rule = 2; ra->train_up_rule = 2;
ra->train_up_high_thres = 110; ra->train_up_high_thres = cpu_to_le16(110);
ra->train_up_rule_rssi = -70; ra->train_up_rule_rssi = cpu_to_le16(-70);
ra->low_traffic_thres = 2; ra->low_traffic_thres = cpu_to_le16(2);
ra->phy_cap = cpu_to_le32(0xfdf); ra->phy_cap = cpu_to_le32(0xfdf);
ra->interval = cpu_to_le32(500); ra->interval = cpu_to_le32(500);
ra->fast_interval = cpu_to_le32(100); ra->fast_interval = cpu_to_le32(100);
+3 -3
View File
@@ -328,9 +328,9 @@ struct bss_info_ra {
u8 antenna_idx; u8 antenna_idx;
u8 train_up_rule; u8 train_up_rule;
u8 rsv[3]; u8 rsv[3];
unsigned short train_up_high_thres; __le16 train_up_high_thres;
short train_up_rule_rssi; __le16 train_up_rule_rssi;
unsigned short low_traffic_thres; __le16 low_traffic_thres;
__le16 max_phyrate; __le16 max_phyrate;
__le32 phy_cap; __le32 phy_cap;
__le32 interval; __le32 interval;