mbox series

[0/6] wifi: rtw89: add TX/RX descriptor v2 and mac port registers for WiFi 7 chips

Message ID 20230911082049.33541-1-pkshih@realtek.com
Headers show
Series wifi: rtw89: add TX/RX descriptor v2 and mac port registers for WiFi 7 chips | expand

Message

Ping-Ke Shih Sept. 11, 2023, 8:20 a.m. UTC
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(-)