mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-11 13:52:02 -04:00
wifi: ath12k: fix ACPI warning when resume
Currently ACPI notification handler is installed when driver loads and only
gets removed when driver unloads. During resume after firmware is reloaded,
ath12k tries to install it by default. Since it is installed already, ACPI
subsystem rejects it and returns an error:
[ 83.094206] ath12k_pci 0000:03:00.0: failed to install DSM notify callback: 7
Fix it by removing that handler when going to suspend. This also avoid any
possible ACPI call to firmware before firmware is reloaded/reinitialized.
Note ab->acpi also needs to be cleared in ath12k_acpi_stop() such that we
are in a clean state when ACPI structures are reinitialized in
ath12k_acpi_start().
Tested-on: WCN7850 HW2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3
Fixes: 576771c9fa ("wifi: ath12k: ACPI TAS support")
Signed-off-by: Baochen Qiang <quic_bqiang@quicinc.com>
Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://msgid.link/20240531024000.9291-1-quic_bqiang@quicinc.com
This commit is contained in:
committed by
Kalle Valo
parent
4938ba733e
commit
8b2a12749b
@@ -391,4 +391,6 @@ void ath12k_acpi_stop(struct ath12k_base *ab)
|
||||
acpi_remove_notify_handler(ACPI_HANDLE(ab->dev),
|
||||
ACPI_DEVICE_NOTIFY,
|
||||
ath12k_acpi_dsm_notify);
|
||||
|
||||
memset(&ab->acpi, 0, sizeof(ab->acpi));
|
||||
}
|
||||
|
||||
@@ -83,6 +83,8 @@ int ath12k_core_suspend_late(struct ath12k_base *ab)
|
||||
if (!ab->hw_params->supports_suspend)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
ath12k_acpi_stop(ab);
|
||||
|
||||
ath12k_hif_irq_disable(ab);
|
||||
ath12k_hif_ce_irq_disable(ab);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user