mbox series

[00/14] rtw89: 8852c: extend PCI code to support 8852ce and add 8852c chip_ops

Message ID 20220421120903.73715-1-pkshih@realtek.com
Headers show
Series rtw89: 8852c: extend PCI code to support 8852ce and add 8852c chip_ops | expand

Message

Ping-Ke Shih April 21, 2022, 12:08 p.m. UTC
The PCI code of 8852CE is different from 8852AE. The IMR/ISR addresses are
different, and 8852CE has a special low power mode that uses another set
of addresses. To handle the special mode, we add a special interrupt
threadfn to handle packets, because regular NAPI poll function does many
things that can't access at this mode.

Another special handle is RPP (TX skb completion) prior to TX BD (TX ring
completion). In low mode power, it can be possible, so we extend the code
to handle this case as well as normal mode.

Patch 3/14 is to optimize count of reading IO, and patch 8/14 is to resolve
some warnings happened on 8852ce, because PCI ring registers are power-off
after running power-off function. These registers on 8852ae aren't
power-off.

Patches 9/14-14/14 are to add chip ops of 8852c as description of the
patches individually.

Ping-Ke Shih (14):
  rtw89: pci: add variant IMR/ISR and configure functions
  rtw89: pci: add variant RPWM/CPWM to enter low power mode
  rtw89: pci: reclaim TX BD only if it really need
  rtw89: pci: does RX in interrupt threadfn if low power mode
  rtw89: ser: re-enable interrupt in threadfn if under_recovery
  rtw89: ps: access TX/RX rings via another registers in low power mode
  rtw89: pci: allow to process RPP prior to TX BD
  rtw89: don't flush hci queues and send h2c if power is off
  rtw89: add RF H2C to notify firmware
  rtw89: 8852c: configure default BB TX/RX path
  rtw89: 8852c: implement chip_ops related to TX power
  rtw89: 8852c: implement chip_ops::get_thermal
  rtw89: 8852c: fill freq and band of RX status by PPDU report
  rtw89: 8852c: add chip_ops related to BTC

 drivers/net/wireless/realtek/rtw89/core.c     |  10 +
 drivers/net/wireless/realtek/rtw89/core.h     |  34 +
 drivers/net/wireless/realtek/rtw89/fw.c       |  39 +
 drivers/net/wireless/realtek/rtw89/fw.h       |  12 +
 drivers/net/wireless/realtek/rtw89/mac.c      |   6 +-
 drivers/net/wireless/realtek/rtw89/pci.c      | 339 ++++++--
 drivers/net/wireless/realtek/rtw89/pci.h      | 144 ++++
 drivers/net/wireless/realtek/rtw89/phy.c      |   1 +
 drivers/net/wireless/realtek/rtw89/ps.c       |  34 +-
 drivers/net/wireless/realtek/rtw89/reg.h      |  83 +-
 drivers/net/wireless/realtek/rtw89/rtw8852a.c |   2 +
 .../net/wireless/realtek/rtw89/rtw8852ae.c    |   8 +
 drivers/net/wireless/realtek/rtw89/rtw8852c.c | 766 ++++++++++++++++++
 drivers/net/wireless/realtek/rtw89/rtw8852c.h |   1 +
 .../net/wireless/realtek/rtw89/rtw8852ce.c    |  16 +
 15 files changed, 1438 insertions(+), 57 deletions(-)