Only the first frame of an A-MPDU comes with the PHY status. This makes mac80211 report the correct value when queried from iw. Test results (2.4 GHz): before after TX 6.1 5.2 RX 29.1 27.1 Signed-off-by: Ho Jie Feng --- drivers/net/wireless/realtek/rtlwifi/rtl8192d/trx_common.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192d/trx_common.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192d/trx_common.c index 9f9a34492030c6..a8910cdbfa0979 100644 --- a/drivers/net/wireless/realtek/rtlwifi/rtl8192d/trx_common.c +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192d/trx_common.c @@ -425,6 +425,9 @@ bool rtl92d_rx_query_desc(struct ieee80211_hw *hw, struct rtl_stats *stats, stats->rx_bufshift); _rtl92d_translate_rx_signal_stuff(hw, skb, stats, pdesc, p_drvinfo); + } else { + /* Only the first frame of an A-MPDU has the PHY status. */ + rx_status->flag |= RX_FLAG_NO_SIGNAL_VAL; } /*rx_status->qual = stats->signal; */ rx_status->signal = stats->recvsignalpower + 10; -- 2.53.0