From: Yan-Hsuan Chuang <yhchuang@xxxxxxxxxxx> This patchset makes the driver transmit with less CPU latency and higher efficiency. Originally, the TX path hold an IRQ lock that will disable all of the IRQs, to wait for the PS state transition. It may sometimes cause the CPU to delay for a long enough time, like several milliseconds. This could lead to some time-sensitive programs to lose their immediacy. We can just use *_bh() locks to not to block the IRQs, and only use *_irqsafe() locks to the ISR related settings. And, the TX path includes to send reserved pages to the device. But the old reserved page routine did not consider that the driver could possibly run multiple vifs at the same time. So, update the reserved page routine of the TX path to generate reserved pages and associate them to each vif, so we can take multi-vif into consideration. For the data packets come from TX queue, the driver used to kick off them one by one, while we can do better to kick a bunch of them at once to save some time to access to the IO register and the DMA engine transition Brian Norris (1): rtw88: don't hold all IRQs disabled for PS operations Yan-Hsuan Chuang (4): rtw88: extract alloc rsvd_page and h2c skb routines rtw88: associate reserved pages with each vif rtw88: pci: define a mask for TX/RX BD indexes rtw88: kick off TX packets once for higher efficiency drivers/net/wireless/realtek/rtw88/fw.c | 265 ++++++++++++++---- drivers/net/wireless/realtek/rtw88/fw.h | 25 +- drivers/net/wireless/realtek/rtw88/hci.h | 20 +- drivers/net/wireless/realtek/rtw88/mac80211.c | 22 +- drivers/net/wireless/realtek/rtw88/main.c | 9 +- drivers/net/wireless/realtek/rtw88/main.h | 1 + drivers/net/wireless/realtek/rtw88/pci.c | 199 ++++++++----- drivers/net/wireless/realtek/rtw88/pci.h | 7 +- drivers/net/wireless/realtek/rtw88/tx.c | 131 +++++++-- drivers/net/wireless/realtek/rtw88/tx.h | 10 +- drivers/net/wireless/realtek/rtw88/wow.c | 39 +-- 11 files changed, 516 insertions(+), 212 deletions(-) -- 2.17.1