build/patch/misc/rtw88/hack/002-rtw88-usb-make-work-queues-high-priority.patch

42 lines
1.6 KiB
Diff
Raw Normal View History

From 5f7a80c5a42ec153a560bd33241908c59a1b3ac8 Mon Sep 17 00:00:00 2001
From: Patrick Yavitz <pyavitz@xxxxx.com>
Date: Fri, 21 Jul 2023 17:10:21 -0400
Subject: [PATCH] rtw88: usb: make work queues high priority
The rtw8822/21cu driver has problems handling high rx or tx rates compared with high
load (such as high I/O) on slower systems.
Examples: i.MX6 SoloX, NanoPi M1 and similar platforms.
https://lore.kernel.org/linux-wireless/20230612134048.321500-1-petter@technux.se/T/#t
Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
---
drivers/net/wireless/realtek/rtw88/usb.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtw88/usb.c b/drivers/net/wireless/realtek/rtw88/usb.c
index 4a57efdba97b..382268706101 100644
--- a/drivers/net/wireless/realtek/rtw88/usb.c
+++ b/drivers/net/wireless/realtek/rtw88/usb.c
@@ -723,7 +723,7 @@ static int rtw_usb_init_rx(struct rtw_dev *rtwdev)
struct rtw_usb *rtwusb = rtw_get_usb_priv(rtwdev);
int i;
- rtwusb->rxwq = create_singlethread_workqueue("rtw88_usb: rx wq");
+ rtwusb->rxwq = alloc_workqueue("rtw88_usb: rx wq", WQ_UNBOUND | WQ_HIGHPRI, 0);
if (!rtwusb->rxwq) {
rtw_err(rtwdev, "failed to create RX work queue\n");
return -ENOMEM;
@@ -757,7 +757,7 @@ static int rtw_usb_init_tx(struct rtw_dev *rtwdev)
struct rtw_usb *rtwusb = rtw_get_usb_priv(rtwdev);
int i;
- rtwusb->txwq = create_singlethread_workqueue("rtw88_usb: tx wq");
+ rtwusb->txwq = alloc_workqueue("rtw88_usb: tx wq", WQ_UNBOUND | WQ_HIGHPRI, 0);
if (!rtwusb->txwq) {
rtw_err(rtwdev, "failed to create TX work queue\n");
return -ENOMEM;
--
2.39.2