Patch "wifi: ath12k: fix ACPI warning when resume" has been added to the 6.10-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    wifi: ath12k: fix ACPI warning when resume

to the 6.10-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     wifi-ath12k-fix-acpi-warning-when-resume.patch
and it can be found in the queue-6.10 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 9072c590e2fb4ded7ccd6424426e490dcb217054
Author: Baochen Qiang <quic_bqiang@xxxxxxxxxxx>
Date:   Tue Jun 11 09:42:33 2024 +0300

    wifi: ath12k: fix ACPI warning when resume
    
    [ Upstream commit 8b2a12749b08726f006303814ecc1c37024d3617 ]
    
    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: 576771c9fa21 ("wifi: ath12k: ACPI TAS support")
    Signed-off-by: Baochen Qiang <quic_bqiang@xxxxxxxxxxx>
    Acked-by: Jeff Johnson <quic_jjohnson@xxxxxxxxxxx>
    Signed-off-by: Kalle Valo <quic_kvalo@xxxxxxxxxxx>
    Link: https://msgid.link/20240531024000.9291-1-quic_bqiang@xxxxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/wireless/ath/ath12k/acpi.c b/drivers/net/wireless/ath/ath12k/acpi.c
index 443ba12e01f37..0555d35aab477 100644
--- a/drivers/net/wireless/ath/ath12k/acpi.c
+++ b/drivers/net/wireless/ath/ath12k/acpi.c
@@ -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));
 }
diff --git a/drivers/net/wireless/ath/ath12k/core.c b/drivers/net/wireless/ath/ath12k/core.c
index 527cfa3a01ad3..52969a1bb5a56 100644
--- a/drivers/net/wireless/ath/ath12k/core.c
+++ b/drivers/net/wireless/ath/ath12k/core.c
@@ -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);
 




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux