Message ID | 712d08e3-fc90-48ad-bb61-bb601b2cf953@gmail.com |
---|---|
State | Superseded |
Headers | show |
Series | [1/2] wifi: rtw88: 8822c: Fix reported RX band width | expand |
Bitterblue Smith <rtl8821cerfe2@gmail.com> wrote: > The definition of GET_RX_DESC_BW is incorrect. Fix it according to the > GET_RX_STATUS_DESC_BW_8703B macro from the official driver. > > Tested only with RTL8812AU, which uses the same bits. > > Cc: stable@vger.kernel.org Add a Fixes tag? as well as patch 1/2. Otherwise looks good to me. > Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
On 22/07/2024 06:39, Ping-Ke Shih wrote: > Bitterblue Smith <rtl8821cerfe2@gmail.com> wrote: >> The definition of GET_RX_DESC_BW is incorrect. Fix it according to the >> GET_RX_STATUS_DESC_BW_8703B macro from the official driver. >> >> Tested only with RTL8812AU, which uses the same bits. >> >> Cc: stable@vger.kernel.org > > Add a Fixes tag? as well as patch 1/2. > Otherwise looks good to me. > >> Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com> > > Done. By the way, there is another problem with the RX rate: rtw88 doesn't report if short guard interval was used. The older chips like RTL8703B have the sgi_en bit in the PHY status struct, but I couldn't find out how the newer chips do it.
Bitterblue Smith <rtl8821cerfe2@gmail.com> wrote: > By the way, there is another problem with the RX rate: rtw88 > doesn't report if short guard interval was used. The older > chips like RTL8703B have the sgi_en bit in the PHY status > struct, but I couldn't find out how the newer chips do it. The newer chips don't have that bit for RX.
diff --git a/drivers/net/wireless/realtek/rtw88/rx.h b/drivers/net/wireless/realtek/rtw88/rx.h index d3668c4efc24..8a072dd3d73c 100644 --- a/drivers/net/wireless/realtek/rtw88/rx.h +++ b/drivers/net/wireless/realtek/rtw88/rx.h @@ -41,7 +41,7 @@ enum rtw_rx_desc_enc { #define GET_RX_DESC_TSFL(rxdesc) \ le32_get_bits(*((__le32 *)(rxdesc) + 0x05), GENMASK(31, 0)) #define GET_RX_DESC_BW(rxdesc) \ - (le32_get_bits(*((__le32 *)(rxdesc) + 0x04), GENMASK(31, 24))) + (le32_get_bits(*((__le32 *)(rxdesc) + 0x04), GENMASK(5, 4))) void rtw_rx_stats(struct rtw_dev *rtwdev, struct ieee80211_vif *vif, struct sk_buff *skb);
The definition of GET_RX_DESC_BW is incorrect. Fix it according to the GET_RX_STATUS_DESC_BW_8703B macro from the official driver. Tested only with RTL8812AU, which uses the same bits. Cc: stable@vger.kernel.org Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com> --- drivers/net/wireless/realtek/rtw88/rx.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)