diff mbox series

wifi: rtw88: usb: unbreak multicast

Message ID 20240614102835.518348-1-mslusarz@renau.com (mailing list archive)
State Superseded
Delegated to: Ping-Ke Shih
Headers show
Series wifi: rtw88: usb: unbreak multicast | expand

Commit Message

Marcin Ślusarz June 14, 2024, 10:28 a.m. UTC
High queue is not functioning, for some reason.
Broken by 076f786a0ae14a81f40314b96a2d815e264bc213

Signed-off-by: Marcin Ślusarz <mslusarz@renau.com>
Cc: Po-Hao Huang <phhuang@realtek.com>
Cc: Ping-Ke Shih <pkshih@realtek.com>
Cc: Kalle Valo <kvalo@kernel.org>
---
 drivers/net/wireless/realtek/rtw88/usb.c | 3 ---
 1 file changed, 3 deletions(-)

Comments

Ping-Ke Shih June 17, 2024, 1:20 a.m. UTC | #1
Marcin Ślusarz <marcin.slusarz@gmail.com> wrote:
> 
> High queue is not functioning, for some reason.
> Broken by 076f786a0ae14a81f40314b96a2d815e264bc213

Pointing out 076f786a0ae1 ("wifi: rtw88: Fix AP mode incorrect DTIM behavior")
would be clearer. Please also mentioned the chip you are using. 

> 
> Signed-off-by: Marcin Ślusarz <mslusarz@renau.com>
> Cc: Po-Hao Huang <phhuang@realtek.com>
> Cc: Ping-Ke Shih <pkshih@realtek.com>
> Cc: Kalle Valo <kvalo@kernel.org>
> ---
>  drivers/net/wireless/realtek/rtw88/usb.c | 3 ---
>  1 file changed, 3 deletions(-)
> 
> diff --git a/drivers/net/wireless/realtek/rtw88/usb.c b/drivers/net/wireless/realtek/rtw88/usb.c
> index c25fd4b193a7..aacc5a105b15 100644
> --- a/drivers/net/wireless/realtek/rtw88/usb.c
> +++ b/drivers/net/wireless/realtek/rtw88/usb.c
> @@ -492,9 +492,6 @@ static u8 rtw_usb_tx_queue_mapping_to_qsel(struct sk_buff *skb)
> 
>         if (unlikely(ieee80211_is_mgmt(fc) || ieee80211_is_ctl(fc)))
>                 qsel = TX_DESC_QSEL_MGMT;
> -       else if (is_broadcast_ether_addr(hdr->addr1) ||
> -                is_multicast_ether_addr(hdr->addr1))
> -               qsel = TX_DESC_QSEL_HIGH;

I think broadcast/multicast packets should go via HIGH queue is correct, but
somehow registers aren't configured correctly. Bernie (you have CC'ed) will
help to check registers. 


>         else if (skb_get_queue_mapping(skb) <= IEEE80211_AC_BK)
>                 qsel = skb->priority;
>         else
> --
> 2.25.1
Ping-Ke Shih July 30, 2024, 7:40 a.m. UTC | #2
" =?utf-8?q?Marcin_=C5=9Alusarz?= " <marcin.slusarz@gmail.com> wrote:

> High queue is not functioning, for some reason.
> Broken by 076f786a0ae14a81f40314b96a2d815e264bc213
> 
> Signed-off-by: Marcin Ślusarz <mslusarz@renau.com>
> Cc: Po-Hao Huang <phhuang@realtek.com>
> Cc: Ping-Ke Shih <pkshih@realtek.com>
> Cc: Kalle Valo <kvalo@kernel.org>

Smith sent a patch [1] that finds cause and fixes the multicast problem.
However, vendor driver has been changed the flow a littlt bit, we will make
an new patch for this problem.

So, set patchset state to Superseded

[1] https://lore.kernel.org/linux-wireless/9174a776-4771-4351-85fa-476e240d8ace@gmail.com/T/#mee2cb8afb09f4bee333ab041defe20525d77f59e
diff mbox series

Patch

diff --git a/drivers/net/wireless/realtek/rtw88/usb.c b/drivers/net/wireless/realtek/rtw88/usb.c
index c25fd4b193a7..aacc5a105b15 100644
--- a/drivers/net/wireless/realtek/rtw88/usb.c
+++ b/drivers/net/wireless/realtek/rtw88/usb.c
@@ -492,9 +492,6 @@  static u8 rtw_usb_tx_queue_mapping_to_qsel(struct sk_buff *skb)
 
 	if (unlikely(ieee80211_is_mgmt(fc) || ieee80211_is_ctl(fc)))
 		qsel = TX_DESC_QSEL_MGMT;
-	else if (is_broadcast_ether_addr(hdr->addr1) ||
-		 is_multicast_ether_addr(hdr->addr1))
-		qsel = TX_DESC_QSEL_HIGH;
 	else if (skb_get_queue_mapping(skb) <= IEEE80211_AC_BK)
 		qsel = skb->priority;
 	else