|
|
Subscribe / Log in / New account

wifi: ath12k: Modularize Wi-Fi 7 components and refactor data path structures

From:  Ripan Deuri <quic_rdeuri-AT-quicinc.com>
To:  <ath12k-AT-lists.infradead.org>
Subject:  [PATCH ath12k-ng 00/12] wifi: ath12k: Modularize Wi-Fi 7 components and refactor data path structures
Date:  Mon, 03 Nov 2025 16:50:59 +0530
Message-ID:  <20251103112111.2260639-1-quic_rdeuri@quicinc.com>
Cc:  <linux-wireless-AT-vger.kernel.org>
Archive-link:  Article

This patch series introduces a comprehensive set of changes aimed at enhancing
the modularity and maintainability of the ath12k driver, in the context of
Wi-Fi 7 support. The key updates include:

* Callback Integration for Wi-Fi 7 RX APIs:

   Introduces callbacks in arch_ops for RX-related APIs defined in the Wi-Fi 7
   module. Adds wrapper functions to invoke these callbacks from the common
   code. Enables seamless interaction between ath12k.ko and ath12k_wifi7.ko by
   leveraging the ops mechanism.

* Data Path Modularization:

   Macro Refactoring: Moves shared macro definitions from dp.h to cmn_defs.h to
   improve code organization.

   Device Stats Consolidation: Relocates device stats from ath12k_base to
   ath12k_dp, centralizing all SOC-level stats within the data path module.

   Peer Stats Modularization: Relocates data path stats from ath12_link_sta to
   ath12k_dp_link_peer, aligning with the modular peer architecture and
   improving maintainability.

* Wi-Fi 7 Specific File Reorganization:

   Moves the following files to be built as part of ath12k_wifi7.ko:

   wifi7/hal_tx.c
   wifi7/hal_rx.c
   wifi7/dp_rx.c
   wifi7/dp_tx.c
   wifi7/dp.c
   wifi7/hal.c
   wifi7/hal_qcn9274.c
   wifi7/hal_wcn7850.c

   Adds necessary symbol exports to support this modularization.

* Optimization in Data Path:

  Refactors TX and RX data paths to utilize DP-specific objects, reducing
  pointer indirection and enhancing cache efficiency. Removes Wi-Fi 7-specific
  headers from common code, with exceptions for dp_mon.c which will be addressed
  in a subsequent patch series.

These changes collectively improve the modular structure of the driver
by separating common and architecture specific modules and further optimize
performance-critical paths.
---
Harsh Kumar Bijlani (1):
  wifi: ath12k: Move DP specific link stats to DP link peer

Pavankumar Nandeshwar (9):
  wifi: ath12k: Add callbacks in arch_ops for rx APIs
  wifi: ath12k: Move DP device stats to ath12k_dp
  wifi: ath12k: Add helper to free DP link peer
  wifi: ath12k: Remove the wifi7 header inclusions in common code
  wifi: ath12k: Move ath12k_dp_rx_frags_cleanup API to Wi-Fi 7
  wifi: ath12k: Move ath12k_dp_rx_get_peer_id API to Wi-Fi 7
  wifi: ath12k: Remove arch-specific HAL dependencies from common DP
  wifi: ath12k: Build all the files in wifi7 directory into
    ath12k_wifi7.ko
  wifi: ath12k: Use dp objects in performance critical paths

Ripan Deuri (2):
  wifi: ath12k: Move ieee80211_ops callback to the arch specific module
  wifi: ath12k: Replace lock/unlock with guard()

 drivers/net/wireless/ath/ath12k/Makefile      |   9 -
 drivers/net/wireless/ath/ath12k/ahb.c         |   1 -
 drivers/net/wireless/ath/ath12k/core.c        |   3 +-
 drivers/net/wireless/ath/ath12k/core.h        |  86 -----
 drivers/net/wireless/ath/ath12k/debug.c       |   4 +-
 drivers/net/wireless/ath/ath12k/debugfs.c     |   3 +-
 drivers/net/wireless/ath/ath12k/debugfs_sta.c |  59 ++-
 drivers/net/wireless/ath/ath12k/dp.c          |  35 +-
 drivers/net/wireless/ath/ath12k/dp.h          | 143 ++++++-
 drivers/net/wireless/ath/ath12k/dp_cmn.h      |  12 +
 drivers/net/wireless/ath/ath12k/dp_htt.c      |  64 ++--
 drivers/net/wireless/ath/ath12k/dp_mon.c      | 102 +++--
 drivers/net/wireless/ath/ath12k/dp_mon.h      |   2 +-
 drivers/net/wireless/ath/ath12k/dp_peer.c     |  69 +++-
 drivers/net/wireless/ath/ath12k/dp_peer.h     |  57 +++
 drivers/net/wireless/ath/ath12k/dp_rx.c       | 146 +++----
 drivers/net/wireless/ath/ath12k/dp_rx.h       |  53 +--
 drivers/net/wireless/ath/ath12k/dp_tx.c       |  33 +-
 drivers/net/wireless/ath/ath12k/dp_tx.h       |   5 +-
 drivers/net/wireless/ath/ath12k/hal.c         |  26 ++
 drivers/net/wireless/ath/ath12k/hal.h         |  75 +++-
 drivers/net/wireless/ath/ath12k/mac.c         | 357 ++++--------------
 drivers/net/wireless/ath/ath12k/mac.h         |  15 +-
 drivers/net/wireless/ath/ath12k/peer.c        |   4 +-
 .../net/wireless/ath/ath12k/wifi7/Makefile    |  10 +-
 drivers/net/wireless/ath/ath12k/wifi7/dp.c    |  80 ++--
 drivers/net/wireless/ath/ath12k/wifi7/dp_rx.c | 266 +++++++------
 drivers/net/wireless/ath/ath12k/wifi7/dp_rx.h |  20 +-
 drivers/net/wireless/ath/ath12k/wifi7/dp_tx.c | 158 ++++----
 drivers/net/wireless/ath/ath12k/wifi7/dp_tx.h |   2 +-
 drivers/net/wireless/ath/ath12k/wifi7/hal.c   |   2 +-
 .../net/wireless/ath/ath12k/wifi7/hal_desc.h  |  50 ---
 .../wireless/ath/ath12k/wifi7/hal_qcn9274.c   |   3 +-
 .../net/wireless/ath/ath12k/wifi7/hal_rx.c    |  35 +-
 .../net/wireless/ath/ath12k/wifi7/hal_rx.h    |  22 +-
 .../wireless/ath/ath12k/wifi7/hal_wcn7850.c   |   3 +-
 drivers/net/wireless/ath/ath12k/wifi7/hw.c    | 208 +++++++++-
 37 files changed, 1234 insertions(+), 988 deletions(-)


base-commit: 6633dca572d8f599b0a1ead0f145a52049ec7709
-- 
2.34.1




Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds