]> www.infradead.org Git - users/jedix/linux-maple.git/commit
wifi: ath12k: fix ath12k_core_pre_reconfigure_recovery() with grouping
authorAditya Kumar Singh <aditya.kumar.singh@oss.qualcomm.com>
Tue, 8 Apr 2025 06:06:34 +0000 (11:36 +0530)
committerJeff Johnson <jeff.johnson@oss.qualcomm.com>
Sat, 12 Apr 2025 04:19:30 +0000 (21:19 -0700)
commit718ead261feba32b00f8ef1d3dff7527106b9458
tree76612383b5afa0ea2499f52badd14400b1ade46f
parent1d55625bc2a1c2a8c68153b020e1e097ea27f1b0
wifi: ath12k: fix ath12k_core_pre_reconfigure_recovery() with grouping

Currently, ath12k_core_pre_reconfigure_recovery() reconfigures all radios
within the same group. During grouping and driver going for a recovery,
this function is called as many times as there are devices in the group.
Consequently, it performs the same reconfiguration multiple times, which
is unnecessary.

To prevent this, add a check to continue if the action has already been
taken.

To simplify the management of various flags, the reason for hardware queues
being stopped is used as a check instead of introducing a new flag.

While at it, also add missing wiphy locks. Wiphy lock is required since
ath12k_mac_drain_tx() which is called by
ath12k_core_pre_reconfigure_recovery() needs this lock to be held by the
caller.

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

Signed-off-by: Aditya Kumar Singh <aditya.kumar.singh@oss.qualcomm.com>
Reviewed-by: Vasanthakumar Thiagarajan <vasanthakumar.thiagarajan@oss.qualcomm.com>
Link: https://patch.msgid.link/20250408-fix_reboot_issues_with_hw_grouping-v4-6-95e7bf048595@oss.qualcomm.com
Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
drivers/net/wireless/ath/ath12k/core.c