diff --git a/mt7915/eeprom.c b/mt7915/eeprom.c index c72e6ade..26623b9f 100644 --- a/mt7915/eeprom.c +++ b/mt7915/eeprom.c @@ -267,7 +267,12 @@ void mt7915_eeprom_parse_hw_cap(struct mt7915_dev *dev, mphy->chainmask <<= dev->chainshift; mphy->antenna_mask = BIT(nss) - 1; dev->chainmask |= mphy->chainmask; - dev->chainshift = hweight8(dev->mphy.chainmask); + /* The single-phy band-1 configuration (single-adie mt7986) uses + * chains 0..n like a band-0 phy, so band-1 masks are only shifted + * when a band-0 phy exists + */ + if (!dev->mphy.band_idx) + dev->chainshift = hweight8(dev->mphy.chainmask); } int mt7915_eeprom_init(struct mt7915_dev *dev) diff --git a/mt7915/mac.c b/mt7915/mac.c index dc70a444..9a0aa939 100644 --- a/mt7915/mac.c +++ b/mt7915/mac.c @@ -437,14 +437,8 @@ mt7915_mac_fill_rx(struct mt7915_dev *dev, struct sk_buff *skb, if (v0 & MT_PRXV_HT_AD_CODE) status->enc_flags |= RX_ENC_FLAG_LDPC; - /* The single-adie mt7986 default chainmask is stored without - * the band shift, unlike the set_antenna path; fall back to - * the raw mask when the band group is empty - */ status->chains = mphy->chainmask >> (mphy->band_idx * dev->chainshift); - if (!status->chains) - status->chains = mphy->chainmask; status->chain_signal[0] = to_rssi(MT_PRXV_RCPI0, v1); status->chain_signal[1] = to_rssi(MT_PRXV_RCPI1, v1); status->chain_signal[2] = to_rssi(MT_PRXV_RCPI2, v1);