]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
wifi: ath12k: Modularize driver into common and Wi-Fi 7 specific components
authorKiran Venkatappa <quic_kiranv@quicinc.com>
Tue, 12 Aug 2025 17:09:36 +0000 (22:39 +0530)
committerJeff Johnson <jeff.johnson@oss.qualcomm.com>
Wed, 20 Aug 2025 21:39:04 +0000 (14:39 -0700)
commita72027045263f8261b47fc28e7b6da7571d8cbb5
treee632e3c18fb5522fbdde602568b0175864cddb4a
parent83cd89a9556a48d31d706f67854873cadbf80c0e
wifi: ath12k: Modularize driver into common and Wi-Fi 7 specific components

Split the ath12k driver into two kernel modules:

 - ath12k.ko for shared logic across multiple targets
 - ath12k_wifi7.ko for Wi-Fi 7 specific configuration and routines

The common module (ath12k.ko) must be loaded prior to any device-specific
module, as the latter depends on exported symbols from the former.

As part of this restructuring, Wi-Fi 7 specific files are moved into a
dedicated `wifi7/` directory and built as a separate module. Common
symbols are exported accordingly, with further adjustments planned
in upcoming patches to support architecture-dependent separation.

This modularization improves maintainability and scalability by enabling
clean separation of hardware-specific logic from the shared driver core.

                                          +-----------------+
                                          |                 |
                                          |   ath12k.ko     |
                                          |    (common)     |
        +---------------+                 |                 |
        |               |                 +-----------------+
        |   ath12k.ko   | ===========>
        |               |                 +------------------+
        +---------------+                 |                  |
                                          | ath12k_wifi7.ko  |
                                          | (wifi7 family)   |
                                          |                  |
                                          +------------------+

Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.3.1-00173-QCAHKSWPL_SILICONZ-1
Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3
Tested-on: IPQ5332 hw1.0 AHB WLAN.WBE.1.3.1-00130-QCAHKSWPL_SILICONZ-1

Signed-off-by: Kiran Venkatappa <quic_kiranv@quicinc.com>
Reviewed-by: Vasanthakumar Thiagarajan <vasanthakumar.thiagarajan@oss.qualcomm.com>
Reviewed-by: Baochen Qiang <baochen.qiang@oss.qualcomm.com>
Link: https://patch.msgid.link/20250812-ath12k-mod-v1-10-8c9b0eb9335d@quicinc.com
Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
23 files changed:
drivers/net/wireless/ath/ath12k/Makefile
drivers/net/wireless/ath/ath12k/ahb.c
drivers/net/wireless/ath/ath12k/core.c
drivers/net/wireless/ath/ath12k/debug.c
drivers/net/wireless/ath/ath12k/dp_rx.c
drivers/net/wireless/ath/ath12k/hal.c
drivers/net/wireless/ath/ath12k/htc.c
drivers/net/wireless/ath/ath12k/pci.c
drivers/net/wireless/ath/ath12k/peer.c
drivers/net/wireless/ath/ath12k/wifi7/Makefile [new file with mode: 0644]
drivers/net/wireless/ath/ath12k/wifi7/ahb.c [moved from drivers/net/wireless/ath/ath12k/ahb_wifi7.c with 95% similarity]
drivers/net/wireless/ath/ath12k/wifi7/ahb.h [moved from drivers/net/wireless/ath/ath12k/ahb_wifi7.h with 100% similarity]
drivers/net/wireless/ath/ath12k/wifi7/ce.c [moved from drivers/net/wireless/ath/ath12k/ce_wifi7.c with 99% similarity]
drivers/net/wireless/ath/ath12k/wifi7/ce.h [moved from drivers/net/wireless/ath/ath12k/ce_wifi7.h with 100% similarity]
drivers/net/wireless/ath/ath12k/wifi7/core.c [moved from drivers/net/wireless/ath/ath12k/core_wifi7.c with 95% similarity]
drivers/net/wireless/ath/ath12k/wifi7/hw.c [moved from drivers/net/wireless/ath/ath12k/hw_wifi7.c with 99% similarity]
drivers/net/wireless/ath/ath12k/wifi7/hw.h [moved from drivers/net/wireless/ath/ath12k/hw_wifi7.h with 100% similarity]
drivers/net/wireless/ath/ath12k/wifi7/mhi.c [moved from drivers/net/wireless/ath/ath12k/mhi_wifi7.c with 99% similarity]
drivers/net/wireless/ath/ath12k/wifi7/mhi.h [moved from drivers/net/wireless/ath/ath12k/mhi_wifi7.h with 100% similarity]
drivers/net/wireless/ath/ath12k/wifi7/pci.c [moved from drivers/net/wireless/ath/ath12k/pci_wifi7.c with 97% similarity]
drivers/net/wireless/ath/ath12k/wifi7/pci.h [moved from drivers/net/wireless/ath/ath12k/pci_wifi7.h with 100% similarity]
drivers/net/wireless/ath/ath12k/wifi7/wmi.c [moved from drivers/net/wireless/ath/ath12k/wmi_wifi7.c with 99% similarity]
drivers/net/wireless/ath/ath12k/wifi7/wmi.h [moved from drivers/net/wireless/ath/ath12k/wmi_wifi7.h with 100% similarity]