Message ID | 20240221024725.10057-4-quic_bqiang@quicinc.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 5f3288a3487849542f948319a1a368adcc9ae7a0 |
Delegated to: | Kalle Valo |
Headers | show |
Series | wifi: ath11k: prepare for hibernation support | expand |
On 2/20/2024 6:47 PM, Baochen Qiang wrote: > Both the firmware reset feature and the power management > suspend/resume feature share common power-down and power-up > functionality. One aspect of the power-up functionality is > the handling of the ATH11K_QMI_EVENT_FW_INIT_DONE event. > When this event is received, a call is made to > ath11k_hal_dump_srng_stats(), with the purpose to collect > information that may be useful in debugging the cause of a > firmware reset. > > Unfortunately, since this functionality is shared between > both the firmware reset path and the power management > resume path, the kernel log is flooded with messages during > resume. Since these messages are not useful during resume, > and in fact can be confusing and can increase the time it > takes to resume, update the logic to only call > ath11k_hal_dump_srng_stats() during firmware reset. > > Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.30 > > Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> > Signed-off-by: Baochen Qiang <quic_bqiang@quicinc.com> Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
diff --git a/drivers/net/wireless/ath/ath11k/qmi.c b/drivers/net/wireless/ath/ath11k/qmi.c index 2c7cab62b9bb..5006f81f779b 100644 --- a/drivers/net/wireless/ath/ath11k/qmi.c +++ b/drivers/net/wireless/ath/ath11k/qmi.c @@ -1,7 +1,7 @@ // SPDX-License-Identifier: BSD-3-Clause-Clear /* * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved. - * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved. + * Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved. */ #include <linux/elf.h> @@ -3249,7 +3249,8 @@ static void ath11k_qmi_driver_event_work(struct work_struct *work) case ATH11K_QMI_EVENT_FW_INIT_DONE: clear_bit(ATH11K_FLAG_QMI_FAIL, &ab->dev_flags); if (test_bit(ATH11K_FLAG_REGISTERED, &ab->dev_flags)) { - ath11k_hal_dump_srng_stats(ab); + if (ab->is_reset) + ath11k_hal_dump_srng_stats(ab); queue_work(ab->workqueue, &ab->restart_work); break; }