diff --git a/mt7603/mac.c b/mt7603/mac.c index 0812d3db..460d3c9b 100644 --- a/mt7603/mac.c +++ b/mt7603/mac.c @@ -583,12 +583,16 @@ mt7603_mac_fill_rx(struct mt7603_dev *dev, struct sk_buff *skb) status->rate_idx = i; - status->chains = BIT(0) | BIT(1); + status->chains = dev->mt76.antenna_mask; status->chain_signal[0] = FIELD_GET(MT_RXV4_IB_RSSI0, rxdg3) + dev->rssi_offset[0]; status->chain_signal[1] = FIELD_GET(MT_RXV4_IB_RSSI1, rxdg3) + dev->rssi_offset[1]; - status->signal = max(status->chain_signal[0], status->chain_signal[1]); + + status->signal = status->chain_signal[0]; + if (status->chains & BIT(1)) + status->signal = max(status->signal, + status->chain_signal[1]); if (FIELD_GET(MT_RXV1_FRAME_MODE, rxdg0) == 1) status->bw = RATE_INFO_BW_40;