Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
140 commits
Select commit Hold shift + click to select a range
78b1602
wifi: ath12k: Restructure PCI code to common and Wi-Fi 7 specific logic
Aug 12, 2025
e8725be
wifi: ath12k: Move Copy Engine configuration to Wi-Fi 7 specific file
Aug 12, 2025
fbd8a6e
wifi: ath12k: Move Wi-Fi 7 WMI configuration to dedicated file
Aug 12, 2025
f11b8f2
wifi: ath12k: Move Wi-Fi 7 MHI configuration to dedicated file
Aug 12, 2025
18b3c12
wifi: ath12k: Rename hw.c to Wi-Fi 7 specific implementation file
Aug 12, 2025
3965fc1
wifi: ath12k: Rename ahb_hif_ops to reflect generic usage
Aug 12, 2025
73d6083
wifi: ath12k: Restructure ahb.c into common and Wi-Fi 7 specific modules
Aug 12, 2025
0c8dd00
wifi: ath12k: Move Wi-Fi 7 specific init routines to dedicated file
Aug 12, 2025
bf6832b
wifi: ath12k: Move hw_init invocation to target-specific probe
Aug 12, 2025
14eb62d
wifi: ath12k: Modularize driver into common and Wi-Fi 7 specific comp…
Aug 12, 2025
55c6202
wifi: ath12k: Rename ath12k_* symbols to ath12k_wifi7_* for clarity
Aug 12, 2025
aa91047
wifi: ath12k: Remove HAL defines from shared PCI code
Aug 12, 2025
c374ed0
wifi: ath12k: Remove HAL define dependencies from shared AHB code
Aug 12, 2025
ee004c5
wifi: ath12k: Move hal_tx and hal_rx to wifi7 directory
Aug 28, 2025
b87f122
wifi: ath12k: Move hal_tx.h file to wifi7 directory
Aug 28, 2025
46a4fb0
wifi: ath12k: Move hal_rx.h file to wifi7 directory
Aug 28, 2025
d955177
wifi: ath12k: Move HAL Rx wrapper APIs to dp_rx.h
Aug 28, 2025
0789ce5
wifi: ath12k: Move Rx error related functions to wifi7 directory
Aug 28, 2025
8168026
wifi: ath12k: Move hal_desc.h file to wifi7 directory
Aug 28, 2025
12223d6
wifi: ath12k: Move rx_desc.h file to wifi7 directory
Aug 28, 2025
6e23349
wifi: ath12k: Move rxdma ring config functions to wifi7 directory
Aug 28, 2025
13b1e4e
wifi: ath12k: Move rx error and defrag functions to wifi7 directory
Aug 28, 2025
806fbe9
wifi: ath12k: Move regular msdu processing functions to wifi7 directory
Aug 28, 2025
fb79882
wifi: ath12k: Move srng processing to wifi7 directory
Aug 28, 2025
b94abfc
wifi: ath12k: Separate arch specific part of RX APIs
Aug 28, 2025
05470ea
wifi: ath12k: Move arch specific REO functions to wifi7 directory
Aug 28, 2025
efdaea7
wifi: ath12k: Move arch specific rx tid and related functions to wifi…
Aug 28, 2025
4a9d15c
wifi: ath12k: Move arch specific tx APIs to wifi7 directory
Aug 28, 2025
790ef31
wifi: ath12k: Move ath12k_dp_tx and related APIs to wifi7 directory
Aug 28, 2025
e985ee1
wifi: ath12k: Move HTT code in dp.h to newly introduced files
Aug 28, 2025
ec98794
wifi: ath12k: Move HTT Rx specific code to newly introduced files
Aug 28, 2025
3848c4a
wifi: ath12k: Move HTT Tx specific code to newly introduced files
Aug 28, 2025
ca402e7
wifi: ath12k: Move HTT specific code from dp.c to newly introduced files
Aug 28, 2025
9c46745
wifi: ath12k: Remove non-compact TLV support from QCN
Sep 10, 2025
6a3137f
wifi: ath12k: Move the hal APIs to hardware specific files
Sep 10, 2025
18714f7
wifi: ath12k: unify HAL ops naming across chips
Sep 10, 2025
3408669
wifi: ath12k: Replace ops with direct calls for rxdma ring mask
Sep 10, 2025
219599a
wifi: ath12k: Move hal_rx_ops callbacks to hal_ops
Sep 10, 2025
b8860f5
wifi: ath12k: Add new infra for the rx path
Sep 10, 2025
c151018
wifi: ath12k: Remove hal_rx_ops and merge into hal_ops
Sep 10, 2025
a481732
wifi: ath12k: Change the API prefixes to ath12k_wifi7 in tx/rx
Sep 10, 2025
817e79f
wifi: ath12k: Convert ath12k_dp member in ath12k_base to pointer
Sep 30, 2025
94e4942
wifi: ath12k: Support arch-specific DP device allocation
Sep 30, 2025
6c24411
wifi: ath12k: Rearrange DP fields in ath12k_hw_group struct
Sep 30, 2025
b4e51f4
wifi: ath12k: Add framework for hardware specific ieee80211_ops regis…
Sep 30, 2025
328eb22
wifi: ath12k: Add framework for hardware specific DP interrupt handler
Sep 30, 2025
57235cc
wifi: ath12k: Refactor ath12k_vif structure
Sep 30, 2025
ad26148
wifi: ath12k: Refactor data path pdev struct
Oct 7, 2025
5757aee
wifi: ath12k: Rearrange PPDU radio stats
Oct 7, 2025
9b278ee
wifi: ath12k: Move srng config and hal_ops to hw specific hal files
Oct 9, 2025
03bffe1
wifi: ath12k: Initialize desc_size through hal_init
Oct 9, 2025
a1039e8
wifi: ath12k: Initialize hal_ops through hal_init
Oct 9, 2025
ec6536e
wifi: ath12k: Move wbm_rbm_map to hw specific hal files
Oct 9, 2025
cf09be6
wifi: ath12k: Move hal_params and regs to hal from hw
Oct 9, 2025
aa19251
wifi: ath12k: Add direct HAL pointer in ath12k_dp
Oct 9, 2025
0eff9e2
wifi: ath12k: Use hal handle instead of ab handle
Oct 9, 2025
bb63308
wifi: ath12k: Move HAL CE setup and SRNG related APIs to wifi7 directory
Oct 9, 2025
144e6fd
wifi: ath12k: Move HAL SRNG shadow config and get ring id APIs to wif…
Oct 9, 2025
7e5ab8c
wifi: ath12k: Move HAL CE desc related APIs to wifi7 directory
Oct 9, 2025
8f49e53
wifi: ath12k: Move HAL CE status and set link desc addr APIs to wifi7…
Oct 9, 2025
2e2462c
wifi: ath12k: Move HAL Tx, REO and link idle setup related APIs to wi…
Oct 9, 2025
4cb14cf
wifi: ath12k: Move HAL REO and Rx buf related APIs to wifi7 directory
Oct 9, 2025
cf00a10
wifi: ath12k: Move HAL Cookie Conversion and RBM related APIs to wifi…
Oct 9, 2025
543e886
wifi: ath12k: Segregate the common and wifi7 specific structures
Oct 9, 2025
fcb8f46
wifi: ath12k: Remove the unused ring inits in wcn
Oct 9, 2025
a7eb31e
wifi: ath12k: Rename hal_ops to ops
Oct 9, 2025
6572b03
wifi: ath12k: Drop hal_ prefix from hardware register names
Oct 9, 2025
b38b764
wifi: ath12k: Fix MSDU buffer types handling in RX error path
Sep 30, 2025
286c36e
wifi: ath12k: track dropped MSDU buffer type packets in REO exception…
Sep 30, 2025
57e782a
wifi: ath12k: Defer vdev bring-up until CSA finalize to avoid stale b…
Sep 24, 2025
e2cc3c9
wifi: ath12k: Add MODULE_FIRMWARE() entries
tiwai Oct 3, 2025
501a569
wifi: ath12k: add support for BSS color change
WeiZhang-stone Oct 17, 2025
8034a88
wifi: ath12k: Assert base_lock is held before allocating REO update e…
Oct 21, 2025
1efde18
wifi: ath12k: Move DP related functions from peer.c to dp_peer.c file
Oct 24, 2025
fe043d7
wifi: ath12k: Rename ath12k_peer to ath12k_dp_link_peer
Oct 24, 2025
b683074
wifi: ath12k: Add hash table for ath12k_link_sta in ath12k_base
Oct 24, 2025
b31c2f1
wifi: ath12k: Move ath12k_dp_link_peer list from ath12k_base to ath12…
Oct 24, 2025
b3da8ff
wifi: ath12k: Add hash table for ath12k_dp_link_peer
Oct 24, 2025
3b01548
wifi: ath12k: Define ath12k_dp_peer structure & APIs for create & delete
Oct 24, 2025
3fe0e39
wifi: ath12k: Attach and detach ath12k_dp_link_peer to ath12k_dp_peer
Oct 24, 2025
99fb930
wifi: ath12k: Use ath12k_dp_peer in per packet Tx & Rx paths
Oct 24, 2025
afc51ba
wifi: ath12k: Add lockdep warn for RCU
Oct 24, 2025
0255422
wifi: ath12k: generalize GI and LTF fixed rate functions
Oct 24, 2025
085ded8
wifi: ath12k: add EHT rate handling to existing set rate functions
Oct 24, 2025
3b66118
wifi: ath12k: Add EHT MCS/NSS rates to Peer Assoc
Oct 24, 2025
3b2803f
wifi: ath12k: Add EHT fixed GI/LTF
Oct 24, 2025
d05a0bd
wifi: ath12k: Add callbacks in arch_ops for rx APIs
Nov 3, 2025
9790c08
wifi: ath12k: Move DP device stats to ath12k_dp
Nov 3, 2025
68ae230
wifi: ath12k: Move DP specific link stats to DP link peer
Nov 3, 2025
0ba892d
wifi: ath12k: Add helper to free DP link peer
Nov 3, 2025
6fb8ba4
wifi: ath12k: Move ieee80211_ops callback to the arch specific module
Nov 3, 2025
83aa9dd
wifi: ath12k: Remove the wifi7 header inclusions in common code
Nov 3, 2025
b148060
wifi: ath12k: Move ath12k_dp_rx_frags_cleanup API to Wi-Fi 7
Nov 3, 2025
ebd4b77
wifi: ath12k: Move ath12k_dp_rx_get_peer_id API to Wi-Fi 7
Nov 3, 2025
022e8e1
wifi: ath12k: Remove arch-specific HAL dependencies from common DP
Nov 3, 2025
0cf167a
wifi: ath12k: Build all the files in wifi7 directory into ath12k_wifi…
Nov 3, 2025
da76a62
wifi: ath12k: Use dp objects in performance critical paths
Nov 3, 2025
0b1d112
wifi: ath12k: Replace lock/unlock with guard()
Nov 3, 2025
47c72c4
wifi: ath12k: Move monitor ring processing to Wi-Fi 7 module
Nov 10, 2025
8fa4454
wifi: ath12k: Move monitor status processing to Wi-Fi 7 module
Nov 10, 2025
9488c32
wifi: ath12k: Move MPDU pop functionality to Wi-Fi 7 module
Nov 10, 2025
c1c3df4
wifi: ath12k: Move RX status TLV parsing to Wi-Fi 7 module
Nov 10, 2025
fc379aa
wifi: ath12k: Move TX monitor functionality to Wi-Fi 7 module
Nov 10, 2025
90c3840
wifi: ath12k: Move HT/VHT SIG processing to Wi-Fi 7 module
Nov 10, 2025
141f437
wifi: ath12k: Move HE SIG processing to Wi-Fi 7 module
Nov 10, 2025
1ce5061
wifi: ath12k: Move EHT SIG processing to Wi-Fi 7 module
Nov 10, 2025
99144cf
wifi: ath12k: Move remaining SIG TLV parsing to Wi-Fi 7 module
Nov 10, 2025
a1adc2d
wifi: ath12k: Move MU user processing to Wi-Fi 7 module
Nov 10, 2025
f34f5df
wifi: ath12k: Move MSDU END TLV processing to Wi-Fi 7 module
Nov 10, 2025
a6ae2f0
wifi: ath12k: Remove Wi-Fi 7 header dependencies from common ath12k m…
Nov 10, 2025
3aed136
wifi: ath12k: add the missing RCU lock in ath12k_dp_tx_free_txbuf()
Nov 19, 2025
13d907a
wifi: ath12k: move firmware stats request outside of atomic context
Nov 19, 2025
af456d1
wifi: ath12k: Skip DP peer creation for scan vdev
Dec 7, 2025
358181c
wifi: ath11k: fix comment typo in monitor mode handling
ivq Oct 30, 2025
8a756da
wifi: ath12k: remove redundant pci_set_drvdata() call
adminchev Nov 27, 2025
8c7310b
wifi: ath12k: clean up on error in ath12k_dp_setup()
Dec 18, 2025
820504b
wifi: ath12k: do WoW offloads only on primary link
Nov 3, 2025
fbf1f91
wifi: ath12k: refactor PCI window register access
Jan 12, 2026
ec35df1
wifi: ath12k: refactor REO CMD ring handling
Jan 12, 2026
e52c657
wifi: ath12k: refactor REO status ring handling
Jan 12, 2026
282b550
wifi: ath12k: fix preferred hardware mode calculation
Jan 12, 2026
0f6229e
wifi: ath12k: refactor 320 MHz bandwidth support parsing
Jan 12, 2026
f9d76a2
wifi: ath12k: fix mac phy capability parsing
Jan 12, 2026
fd8b81f
wifi: ath12k: add hardware registers for QCC2072
Jan 12, 2026
f2a2ea0
wifi: ath12k: add hardware parameters for QCC2072
Jan 12, 2026
63c38cc
wifi: ath12k: support LPASS_SHARED target memory type
Jan 12, 2026
83c5316
wifi: ath12k: support downloading auxiliary ucode image for QCC2072
Jan 12, 2026
118c0f5
wifi: ath12k: add HAL descriptor and ops for QCC2072
Jan 12, 2026
086d928
wifi: ath12k: add hardware ops support for QCC2072
Jan 12, 2026
851bfa3
wifi: ath12k: handle REO CMD ring for QCC2072
Jan 12, 2026
82da8e7
wifi: ath12k: handle REO status ring for QCC2072
Jan 12, 2026
ecad5cc
wifi: ath12k: limit number of channels per WMI command
Jan 12, 2026
35babc7
wifi: ath12k: send peer meta data version to firmware
Jan 12, 2026
d21d050
wifi: ath12k: fix PCIE_LOCAL_REG_QRTR_NODE_ID definition for QCC2072
miaoqing-quic Jan 12, 2026
e43405a
wifi: ath12k: enable QCC2072 support
Jan 12, 2026
0e87abb
FROMLIST: wifi: ath11k: add usecase firmware handling based on device…
miaoqing-quic Nov 14, 2025
38d8868
FROMLIST: mhi: host: Add standard elf image download functionality
Dec 2, 2025
b0edc11
FROMLIST: wifi: ath11k: Fix failure to connect to a 6 GHz AP
Realzhq Jan 8, 2026
82f6005
BACKPORT: FROMLIST: wifi: ath12k: Fix wrong P2P device link id issue
miaoqing-quic Jan 26, 2026
18a508a
FROMLIST: wifi: ath12k: Fix scan state stuck in ABORTING
MilanoPipo Dec 25, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions drivers/bus/mhi/host/boot.c
Original file line number Diff line number Diff line change
Expand Up @@ -584,6 +584,13 @@ void mhi_fw_load_handler(struct mhi_controller *mhi_cntrl)
* device transitioning into MHI READY state
*/
if (fw_load_type == MHI_FW_LOAD_FBC) {
dev_dbg(dev, "standard_elf_image:%s\n",
(mhi_cntrl->standard_elf_image ? "True" : "False"));
if (mhi_cntrl->standard_elf_image) {
fw_data += mhi_cntrl->sbl_size;
fw_sz -= mhi_cntrl->sbl_size;
}

ret = mhi_alloc_bhie_table(mhi_cntrl, &mhi_cntrl->fbc_image, fw_sz);
if (ret) {
release_firmware(firmware);
Expand Down
27 changes: 27 additions & 0 deletions drivers/net/wireless/ath/ath11k/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -997,6 +997,33 @@ static const struct dmi_system_id ath11k_pm_quirk_table[] = {
{}
};

static const struct __ath11k_core_usecase_firmware_table {
u32 hw_rev;
const char *compatible;
const char *firmware_name;
} ath11k_core_usecase_firmware_table[] = {
{ ATH11K_HW_WCN6855_HW21, "qcom,lemans-evk", "nfa765"},
{ ATH11K_HW_WCN6855_HW21, "qcom,monaco-evk", "nfa765"},
{ ATH11K_HW_WCN6855_HW21, "qcom,hamoa-iot-evk", "nfa765"},
{ /* Sentinel */ }
};

const char *ath11k_core_get_usecase_firmware(struct ath11k_base *ab)
{
const struct __ath11k_core_usecase_firmware_table *entry = NULL;

entry = ath11k_core_usecase_firmware_table;
while (entry->compatible) {
if (ab->hw_rev == entry->hw_rev &&
of_machine_is_compatible(entry->compatible))
return entry->firmware_name;
entry++;
}

return NULL;
}
EXPORT_SYMBOL(ath11k_core_get_usecase_firmware);

void ath11k_fw_stats_pdevs_free(struct list_head *head)
{
struct ath11k_fw_stats_pdev *i, *tmp;
Expand Down
4 changes: 4 additions & 0 deletions drivers/net/wireless/ath/ath11k/core.h
Original file line number Diff line number Diff line change
Expand Up @@ -1275,6 +1275,7 @@ bool ath11k_core_coldboot_cal_support(struct ath11k_base *ab);

const struct firmware *ath11k_core_firmware_request(struct ath11k_base *ab,
const char *filename);
const char *ath11k_core_get_usecase_firmware(struct ath11k_base *ab);

static inline const char *ath11k_scan_state_str(enum ath11k_scan_state state)
{
Expand Down Expand Up @@ -1329,6 +1330,9 @@ static inline void ath11k_core_create_firmware_path(struct ath11k_base *ab,

of_property_read_string(ab->dev->of_node, "firmware-name", &fw_name);

if (!fw_name)
fw_name = ath11k_core_get_usecase_firmware(ab);

if (fw_name && strncmp(filename, "board", 5))
snprintf(buf, buf_len, "%s/%s/%s/%s", ATH11K_FW_DIR,
ab->hw_params.fw.dir, fw_name, filename);
Expand Down
2 changes: 1 addition & 1 deletion drivers/net/wireless/ath/ath11k/mac.c
Original file line number Diff line number Diff line change
Expand Up @@ -10640,7 +10640,7 @@ static int __ath11k_mac_register(struct ath11k *ar)
if (!ab->hw_params.supports_monitor)
/* There's a race between calling ieee80211_register_hw()
* and here where the monitor mode is enabled for a little
* while. But that time is so short and in practise it make
* while. But that time is so short and in practice it doesn't make
* a difference in real life.
*/
ar->hw->wiphy->interface_modes &= ~BIT(NL80211_IFTYPE_MONITOR);
Expand Down
9 changes: 6 additions & 3 deletions drivers/net/wireless/ath/ath11k/reg.c
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: BSD-3-Clause-Clear
/*
* Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
* Copyright (c) 2021-2025 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
*/
#include <linux/rtnetlink.h>

Expand Down Expand Up @@ -926,8 +926,11 @@ int ath11k_reg_handle_chan_list(struct ath11k_base *ab,
*/
if (ab->default_regd[pdev_idx] && !ab->new_regd[pdev_idx] &&
!memcmp((char *)ab->default_regd[pdev_idx]->alpha2,
(char *)reg_info->alpha2, 2))
goto retfail;
(char *)reg_info->alpha2, 2) &&
power_type == IEEE80211_REG_UNSET_AP) {
ath11k_reg_reset_info(reg_info);
return 0;
}

/* Intersect new rules with default regd if a new country setting was
* requested, i.e a default regd was already set during initialization
Expand Down
8 changes: 5 additions & 3 deletions drivers/net/wireless/ath/ath12k/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
obj-$(CONFIG_ATH12K) += ath12k.o
ath12k-y += core.o \
hal.o \
hal_tx.o \
hal_rx.o \
wmi.o \
mac.o \
reg.o \
Expand All @@ -12,18 +10,22 @@ ath12k-y += core.o \
dp.o \
dp_tx.o \
dp_rx.o \
dp_htt.o \
dp_peer.o \
debug.o \
ce.o \
peer.o \
dbring.o \
hw.o \
mhi.o \
pci.o \
dp_mon.o \
fw.o \
p2p.o

ath12k-$(CONFIG_ATH12K_AHB) += ahb.o

obj-$(CONFIG_ATH12K) += wifi7/

ath12k-$(CONFIG_ATH12K_DEBUGFS) += debugfs.o debugfs_htt_stats.o debugfs_sta.o
ath12k-$(CONFIG_ACPI) += acpi.o
ath12k-$(CONFIG_ATH12K_TRACING) += trace.o
Expand Down
Loading