diff mbox series

[v2,1/2] wifi: rtw88: 8822c: Fix reported RX band width

Message ID d3267712-e458-4a02-9408-f3d443185207@gmail.com (mailing list archive)
State Superseded
Delegated to: Ping-Ke Shih
Headers show
Series [v2,1/2] wifi: rtw88: 8822c: Fix reported RX band width | expand

Commit Message

Bitterblue Smith July 22, 2024, 10:50 a.m. UTC
"iw dev wlp2s0 station dump" shows incorrect rx bitrate:

tx bitrate:     866.7 MBit/s VHT-MCS 9 80MHz short GI VHT-NSS 2
rx bitrate:     86.7 MBit/s VHT-MCS 9 VHT-NSS 1

This is because the RX band width is calculated incorrectly. Fix the
calculation according to the phydm_rxsc_2_bw() function from the
official drivers.

After:

tx bitrate:     866.7 MBit/s VHT-MCS 9 80MHz short GI VHT-NSS 2
rx bitrate:     390.0 MBit/s VHT-MCS 9 80MHz VHT-NSS 1

It also works correctly with the AP configured for 20 MHz and 40 MHz.

Tested with RTL8822CE.

Fixes: e3037485c68e ("rtw88: new Realtek 802.11ac driver")
Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
---
v2:
 - Use Fixes instead of Cc: stable.
---
 drivers/net/wireless/realtek/rtw88/rtw8822c.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

Comments

Johannes Berg July 22, 2024, 10:58 a.m. UTC | #1
On Mon, 2024-07-22 at 13:50 +0300, Bitterblue Smith wrote:
> "iw dev wlp2s0 station dump" shows incorrect rx bitrate:
> 
> tx bitrate:     866.7 MBit/s VHT-MCS 9 80MHz short GI VHT-NSS 2
> rx bitrate:     86.7 MBit/s VHT-MCS 9 VHT-NSS 1
> 
> This is because the RX band width is calculated incorrectly. Fix the
> calculation according to the phydm_rxsc_2_bw() function from the
> official drivers.
> 
> After:
> 
> tx bitrate:     866.7 MBit/s VHT-MCS 9 80MHz short GI VHT-NSS 2
> rx bitrate:     390.0 MBit/s VHT-MCS 9 80MHz VHT-NSS 1
> 
> It also works correctly with the AP configured for 20 MHz and 40 MHz.
> 
> Tested with RTL8822CE.
> 
> Fixes: e3037485c68e ("rtw88: new Realtek 802.11ac driver")
> Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
> ---
> v2:
>  - Use Fixes instead of Cc: stable.
> 

For the record, if you want it backported, you really should have
_both_. Having the Fixes: is good, but will not necessarily lead to it
being backported when/where you want it.

johannes
Bitterblue Smith July 22, 2024, 11:43 a.m. UTC | #2
On 22/07/2024 13:58, Johannes Berg wrote:
> On Mon, 2024-07-22 at 13:50 +0300, Bitterblue Smith wrote:
>> "iw dev wlp2s0 station dump" shows incorrect rx bitrate:
>>
>> tx bitrate:     866.7 MBit/s VHT-MCS 9 80MHz short GI VHT-NSS 2
>> rx bitrate:     86.7 MBit/s VHT-MCS 9 VHT-NSS 1
>>
>> This is because the RX band width is calculated incorrectly. Fix the
>> calculation according to the phydm_rxsc_2_bw() function from the
>> official drivers.
>>
>> After:
>>
>> tx bitrate:     866.7 MBit/s VHT-MCS 9 80MHz short GI VHT-NSS 2
>> rx bitrate:     390.0 MBit/s VHT-MCS 9 80MHz VHT-NSS 1
>>
>> It also works correctly with the AP configured for 20 MHz and 40 MHz.
>>
>> Tested with RTL8822CE.
>>
>> Fixes: e3037485c68e ("rtw88: new Realtek 802.11ac driver")
>> Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
>> ---
>> v2:
>>  - Use Fixes instead of Cc: stable.
>>
> 
> For the record, if you want it backported, you really should have
> _both_. Having the Fixes: is good, but will not necessarily lead to it
> being backported when/where you want it.
> 
> johannes

Oh. But my other patches were backported when I used Fixes.
Johannes Berg July 22, 2024, 11:46 a.m. UTC | #3
On Mon, 2024-07-22 at 14:43 +0300, Bitterblue Smith wrote:
> 
> > >  - Use Fixes instead of Cc: stable.
> > > 
> > 
> > For the record, if you want it backported, you really should have
> > _both_. Having the Fixes: is good, but will not necessarily lead to it
> > being backported when/where you want it.
> 
> Oh. But my other patches were backported when I used Fixes.

Yeah, having a small commit that says it fixes something and has a
Fixes: tag is a pretty good signal for the AUTOSEL thingie, but it's not
going to go into the process directly.

johannes
diff mbox series

Patch

diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822c.c b/drivers/net/wireless/realtek/rtw88/rtw8822c.c
index bc807b13e9ce..e265a35184ab 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw8822c.c
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822c.c
@@ -2612,12 +2612,14 @@  static void query_phy_status_page1(struct rtw_dev *rtwdev, u8 *phy_status,
 	else
 		rxsc = GET_PHY_STAT_P1_HT_RXSC(phy_status);
 
-	if (rxsc >= 9 && rxsc <= 12)
+	if (rxsc == 0)
+		bw = rtwdev->hal.current_band_width;
+	else if (rxsc >= 1 && rxsc <= 8)
+		bw = RTW_CHANNEL_WIDTH_20;
+	else if (rxsc >= 9 && rxsc <= 12)
 		bw = RTW_CHANNEL_WIDTH_40;
-	else if (rxsc >= 13)
-		bw = RTW_CHANNEL_WIDTH_80;
 	else
-		bw = RTW_CHANNEL_WIDTH_20;
+		bw = RTW_CHANNEL_WIDTH_80;
 
 	channel = GET_PHY_STAT_P1_CHANNEL(phy_status);
 	rtw_set_rx_freq_band(pkt_stat, channel);