From 5f7a80c5a42ec153a560bd33241908c59a1b3ac8 Mon Sep 17 00:00:00 2001 From: Patrick Yavitz 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 --- 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