linux/drivers/net/wireless/ath/ath12k
Baochen Qiang 469d7e6077 wifi: ath12k: resolve PENDING ML peer ID from MLO_PEER_MAP HTT event
Add ath12k_dp_peer_fixup_peer_id() and call it from the
HTT_T2H_MSG_TYPE_MLO_RX_PEER_MAP handler. For devices where the
firmware allocates the MLD peer ID, this is the point at which
all data structures that were left with ATH12K_MLO_PEER_ID_PENDING
or ATH12K_MLO_PEER_ID_INVALID get their real ID:

  - dp_peer->peer_id is updated and the dp_peer is published into
    dp_hw->dp_peers[];
  - every existing dp_link_peer in dp_peer->link_peers[] gets its
    ml_id set to the same value;
  - ahsta->ml_peer_id is updated to the same value so peer_assoc,
    sta_state and cleanup paths see a consistent ID.

Devices with host_alloc_ml_id == true also receive the same HTT
event, but the firmware-reported ID always matches the
host-allocated one and everything has already been populated by
ath12k_dp_peer_create(); Skips the helper entirely on those devices.

Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.1.c5-00302-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.115823.3

Closes: https://bugzilla.kernel.org/show_bug.cgi?id=221039
Signed-off-by: Baochen Qiang <baochen.qiang@oss.qualcomm.com>
Reviewed-by: Rameshkumar Sundaram <rameshkumar.sundaram@oss.qualcomm.com>
Link: https://patch.msgid.link/20260720-ath12k-fw-allocated-ml-peer-id-v2-8-630632758a80@oss.qualcomm.com
Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
2026-07-27 08:00:43 -07:00
..
wifi7 wifi: ath12k: introduce host_alloc_ml_id hardware parameter 2026-07-27 08:00:42 -07:00
acpi.c wifi: ath12k: Update Qualcomm copyrights 2026-06-09 06:50:28 -07:00
acpi.h wifi: ath12k: Update Qualcomm copyrights 2026-06-09 06:50:28 -07:00
ahb.c wifi: ath12k: Fix invalid IRQ requests during AHB probe 2026-04-21 06:27:53 -07:00
ahb.h wifi: ath12k: Enable IPQ5424 WiFi device support 2026-04-07 17:28:22 -07:00
ce.c Convert 'alloc_flex' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ce.h wifi: ath12k: Add CE remap hardware parameters for IPQ5424 2026-04-07 17:28:22 -07:00
cmn_defs.h wifi: ath12k: Segregate the common and wifi7 specific structures 2025-10-10 07:06:19 -07:00
core.c wifi: ath12k: resolve PENDING ML peer ID from MLO_PEER_MAP HTT event 2026-07-27 08:00:43 -07:00
core.h wifi: ath12k: resolve PENDING ML peer ID from MLO_PEER_MAP HTT event 2026-07-27 08:00:43 -07:00
coredump.c wifi: ath12k: Update Qualcomm copyrights 2026-06-09 06:50:28 -07:00
coredump.h wifi: ath12k: Update Qualcomm copyrights 2026-06-09 06:50:28 -07:00
dbring.c wifi: ath12k: Segregate the common and wifi7 specific structures 2025-10-10 07:06:19 -07:00
dbring.h wifi: ath12k: Update Qualcomm copyrights 2026-06-09 06:50:28 -07:00
debug.c wifi: ath12k: Build all the files in wifi7 directory into ath12k_wifi7.ko 2025-11-05 07:16:55 -08:00
debug.h wifi: ath12k: Update Qualcomm copyrights 2026-06-09 06:50:28 -07:00
debugfs_htt_stats.c wifi: ath12k: Support channel change stats 2026-04-07 17:28:19 -07:00
debugfs_htt_stats.h wifi: ath12k: Support channel change stats 2026-04-07 17:28:19 -07:00
debugfs_sta.c wifi: ath12k: Replace lock/unlock with guard() 2025-11-05 07:16:56 -08:00
debugfs_sta.h wifi: ath12k: Update Qualcomm copyrights 2026-06-09 06:50:28 -07:00
debugfs.c wifi: ath12k: Add debugfs support to simulate incumbent signal interference 2026-05-19 10:13:46 -07:00
debugfs.h wifi: ath12k: Update Qualcomm copyrights 2026-06-09 06:50:28 -07:00
dp_cmn.h wifi: ath12k: Move DP specific link stats to DP link peer 2025-11-05 07:16:54 -08:00
dp_htt.c wifi: ath12k: resolve PENDING ML peer ID from MLO_PEER_MAP HTT event 2026-07-27 08:00:43 -07:00
dp_htt.h wifi: ath12k: add support for HTT_T2H_MSG_TYPE_MLO_RX_PEER_MAP 2026-07-27 08:00:42 -07:00
dp_mon.c wifi: ath12k: fix incorrect HT/VHT/HE/EHT MCS reporting in monitor mode 2026-06-01 09:58:03 -07:00
dp_mon.h Merge branch 'ath12k-ng' into ath-next 2025-12-15 08:55:21 -08:00
dp_peer.c wifi: ath12k: resolve PENDING ML peer ID from MLO_PEER_MAP HTT event 2026-07-27 08:00:43 -07:00
dp_peer.h wifi: ath12k: resolve PENDING ML peer ID from MLO_PEER_MAP HTT event 2026-07-27 08:00:43 -07:00
dp_rx.c wifi: ath12k: Fix low MLO RX throughput on WCN7850 2026-07-13 06:55:17 -07:00
dp_rx.h wifi: ath12k: Add support for 4-address frame notification 2026-06-01 09:58:06 -07:00
dp_tx.c wifi: ath12k: add the missing RCU lock in ath12k_dp_tx_free_txbuf() 2025-11-19 11:52:08 -08:00
dp_tx.h wifi: ath12k: Use dp objects in performance critical paths 2025-11-05 07:16:56 -08:00
dp.c wifi: ath12k: fix EAPOL TX failure caused by stale tcl_metadata bits 2026-06-09 06:50:29 -07:00
dp.h Merge branch 'ath12k-ng' into ath-next 2025-12-15 08:55:21 -08:00
fw.c wifi: ath12k: support downloading auxiliary ucode image for QCC2072 2026-01-15 17:19:40 -08:00
fw.h wifi: ath12k: support downloading auxiliary ucode image for QCC2072 2026-01-15 17:19:40 -08:00
hal.c wifi: ath12k: handle REO status ring for QCC2072 2026-01-15 17:19:41 -08:00
hal.h wifi: ath12k: Add support for 4-address frame notification 2026-06-01 09:58:06 -07:00
hif.h wifi: ath12k: Update Qualcomm copyrights 2026-06-09 06:50:28 -07:00
htc.c Merge branch 'ath12k-ng' into ath-next 2025-12-15 08:55:21 -08:00
htc.h wifi: ath12k: Fix HTC prototype ath12k_base parameters 2026-04-20 08:25:31 -07:00
hw.h wifi: ath12k: introduce host_alloc_ml_id hardware parameter 2026-07-27 08:00:42 -07:00
Kconfig wifi: ath: Unify user-visible "Qualcomm" name 2026-04-30 14:24:07 -07:00
mac.c wifi: ath12k: resolve PENDING ML peer ID from MLO_PEER_MAP HTT event 2026-07-27 08:00:43 -07:00
mac.h wifi: ath12k: Add support for 4-address mode 2026-06-01 09:58:05 -07:00
Makefile wifi: ath12k: add basic hwmon temperature reporting 2026-02-26 13:25:39 -08:00
mhi.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
mhi.h Merge branch 'ath12k-ng' into ath-next 2025-12-15 08:55:21 -08:00
p2p.c wifi: ath12k: Update Qualcomm copyrights 2026-06-09 06:50:28 -07:00
p2p.h wifi: ath12k: Update Qualcomm copyrights 2026-06-09 06:50:28 -07:00
pci.c wifi: ath12k: Flush the posted write after writing to PCIE_SOC_GLOBAL_RESET 2026-07-09 07:44:43 -07:00
pci.h wifi: ath12k: fix PCIE_LOCAL_REG_QRTR_NODE_ID definition for QCC2072 2026-01-15 17:19:42 -08:00
peer.c wifi: ath12k: defer dp_peer registration when firmware allocates MLD peer ID 2026-07-27 08:00:43 -07:00
peer.h wifi: ath12k: keep ATH12K_PEER_ML_ID_VALID set in ath12k_sta::ml_peer_id 2026-07-27 08:00:42 -07:00
qmi.c wifi: ath: Use the unified QMI service ID instead of defining it locally 2026-04-30 14:24:07 -07:00
qmi.h wifi: ath: Use the unified QMI service ID instead of defining it locally 2026-04-30 14:24:07 -07:00
reg.c wifi: ath12k: Update Qualcomm copyrights 2026-06-09 06:50:28 -07:00
reg.h wifi: ath12k: Update Qualcomm copyrights 2026-06-09 06:50:28 -07:00
testmode.c wifi: ath12k: Add framework for hardware specific ieee80211_ops registration 2025-09-30 09:12:58 -07:00
testmode.h wifi: ath12k: Update Qualcomm copyrights 2026-06-09 06:50:28 -07:00
thermal.c wifi: ath12k: add thermal cooling device support 2026-04-30 14:24:09 -07:00
thermal.h wifi: ath12k: add thermal cooling device support 2026-04-30 14:24:09 -07:00
trace.c wifi: ath12k: Update Qualcomm copyrights 2026-06-09 06:50:28 -07:00
trace.h wifi: ath12k: Update Qualcomm copyrights 2026-06-09 06:50:28 -07:00
wmi.c wifi: ath12k: Add support for 4-address NULL frame handling 2026-06-01 09:58:06 -07:00
wmi.h wifi: ath12k: Add support for 4-address NULL frame handling 2026-06-01 09:58:06 -07:00
wow.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
wow.h wifi: ath12k: Update Qualcomm copyrights 2026-06-09 06:50:28 -07:00