42 lines
1.6 KiB
Diff
42 lines
1.6 KiB
Diff
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
|
|
|