wifi: rtw88: Skip high queue in hci_flush
authorPo-Hao Huang <phhuang@realtek.com>
Fri, 16 Jun 2023 12:55:37 +0000 (20:55 +0800)
committerKalle Valo <kvalo@kernel.org>
Wed, 21 Jun 2023 09:41:45 +0000 (12:41 +0300)
The flush period may not always intersect with DTIM and when that
happens, an error log "timed out to flush pci TX ring[6]" is shown.
Bypass this since hardware will do proper transmission on the next
DTIM period for broadcast/multicast packets in high queue.

Signed-off-by: Po-Hao Huang <phhuang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20230616125540.36877-4-pkshih@realtek.com
drivers/net/wireless/realtek/rtw88/pci.c

index 672ddde..44a8fff 100644 (file)
@@ -738,8 +738,9 @@ static void __rtw_pci_flush_queues(struct rtw_dev *rtwdev, u32 pci_queues,
        u8 q;
 
        for (q = 0; q < RTK_MAX_TX_QUEUE_NUM; q++) {
-               /* It may be not necessary to flush BCN and H2C tx queues. */
-               if (q == RTW_TX_QUEUE_BCN || q == RTW_TX_QUEUE_H2C)
+               /* Unnecessary to flush BCN, H2C and HI tx queues. */
+               if (q == RTW_TX_QUEUE_BCN || q == RTW_TX_QUEUE_H2C ||
+                   q == RTW_TX_QUEUE_HI0)
                        continue;
 
                if (pci_queues & BIT(q))