WiFi 7 chips use different TX/RX descriptors and mac port registers, but logic is similar or the same as before, so implment them and reuse the existing code. Three descriptors types: - RX descriptor or RXWD (RX WiFi Descriptor) for short That is meta data of received packet, such as MAC_ID, security CAM index and etc. - TX descriptor or TXWD (TX WiFi Descriptor) for short That is meta data of sending packet. Similar to RX descriptor, it contains MAC_ID, security key ID and etc. - TX descriptor for firmware command To send firmware command or download firmware is via a special path, and use different descriptor from normal TX packets. Because it doesn't need much meta data to assist, we choose short form RXWD to reduce overhead. About TXWD body and info: TXWD body is hard required, but TXWD info can be skipped to reduce overhead. A bit defined in TXWD body to indicate if TXWD info presents. For this driver, we always fill both. About RXWD short and long forms: Similarly, RXWD can be short or long forms. For driver, it must handle both though. This patchset doesn't change logic for existing chpis. Ping-Ke Shih (6): wifi: rtw89: add to query RX descriptor format v2 wifi: rtw89: add to fill TX descriptor for firmware command v2 wifi: rtw89: add to fill TX descriptor v2 wifi: rtw89: add chip_info::txwd_info size to generalize TX WD submit wifi: rtw89: consolidate registers of mac port to struct wifi: rtw89: add mac_gen pointer to access mac port registers drivers/net/wireless/realtek/rtw89/core.c | 215 ++++++++++++++ drivers/net/wireless/realtek/rtw89/core.h | 62 ++++ drivers/net/wireless/realtek/rtw89/mac.c | 94 ++++-- drivers/net/wireless/realtek/rtw89/mac.h | 1 + drivers/net/wireless/realtek/rtw89/mac_be.c | 27 ++ drivers/net/wireless/realtek/rtw89/pci.c | 3 +- drivers/net/wireless/realtek/rtw89/reg.h | 147 ++++++++++ drivers/net/wireless/realtek/rtw89/rtw8851b.c | 1 + drivers/net/wireless/realtek/rtw89/rtw8852a.c | 1 + drivers/net/wireless/realtek/rtw89/rtw8852b.c | 1 + drivers/net/wireless/realtek/rtw89/rtw8852c.c | 1 + drivers/net/wireless/realtek/rtw89/txrx.h | 271 ++++++++++++++++++ 12 files changed, 791 insertions(+), 33 deletions(-) -- 2.25.1