In AP mode, HI queue is used to transmit broadcast/multicast right after issuing beacon, and we need set MORE_DATA in TX description to make hardware transmits all packets in one go. Also, have special deal with this queue when doing scan and flush. After stopping AP from SCC (AP + STA), only one STA is working, so PS mode is expected to enable. However, firmware checks the MAC port used by AP mode before, and then can't enter PS mode. We add the last patch to set "default port" to the port used by STA. Then, firmware will check correct port to enter PS mode in expectation. Note: The patch 5/6 ("wifi: rtw88: refine register based H2C command") adds new static function that is used by patch 6/6, so compiler will warn unused function if we build this path. v2: - fix patch 1/6 problems * correct to use RTW_TX_DESC_W7_DMA_TXAGG_NUM to set agg_num * use correct le32p_replace_bits() to set value instead Po-Hao Huang (6): wifi: rtw88: use struct instead of macros to set TX desc wifi: rtw88: Fix AP mode incorrect DTIM behavior wifi: rtw88: Skip high queue in hci_flush wifi: rtw88: Stop high queue during scan wifi: rtw88: refine register based H2C command wifi: rtw88: fix not entering PS mode after AP stops drivers/net/wireless/realtek/rtw88/fw.c | 68 ++++++++++ drivers/net/wireless/realtek/rtw88/fw.h | 13 ++ drivers/net/wireless/realtek/rtw88/mac80211.c | 3 + drivers/net/wireless/realtek/rtw88/main.c | 15 ++- drivers/net/wireless/realtek/rtw88/main.h | 1 + drivers/net/wireless/realtek/rtw88/pci.c | 5 +- drivers/net/wireless/realtek/rtw88/reg.h | 2 + drivers/net/wireless/realtek/rtw88/rtw8723d.c | 6 +- drivers/net/wireless/realtek/rtw88/tx.c | 84 +++++++----- drivers/net/wireless/realtek/rtw88/tx.h | 123 ++++++++---------- drivers/net/wireless/realtek/rtw88/usb.c | 15 ++- 11 files changed, 218 insertions(+), 117 deletions(-) -- 2.25.1