46 lines
1.7 KiB
Diff
46 lines
1.7 KiB
Diff
From 45d2e268369b0c768d5a644f319758bcfd370521 Mon Sep 17 00:00:00 2001
|
|
From: Baochen Qiang <quic_bqiang@quicinc.com>
|
|
Date: Wed, 28 Sep 2022 09:51:40 +0800
|
|
Subject: [PATCH] wifi: ath11k: Don't exit on wakeup failure
|
|
|
|
Currently, ath11k_pcic_read() returns an error if wakeup()
|
|
fails, this makes firmware crash debug quite hard because we can
|
|
get nothing.
|
|
|
|
Change to go ahead on wakeup failure, in that case we still may
|
|
get something valid to check. There should be no mislead due
|
|
to incorrect content because we are aware of the failure with the
|
|
log printed.
|
|
|
|
Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-01720.1-QCAHSPSWPL_V1_V2_SILICONZ_LITE-1
|
|
|
|
Signed-off-by: Baochen Qiang <quic_bqiang@quicinc.com>
|
|
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
|
|
Link: https://lore.kernel.org/r/20220928015140.5431-1-quic_bqiang@quicinc.com
|
|
---
|
|
drivers/net/wireless/ath/ath11k/pcic.c | 13 ++++++++++---
|
|
1 file changed, 10 insertions(+), 3 deletions(-)
|
|
|
|
--- a/drivers/net/wireless/ath/ath11k/pcic.c
|
|
+++ b/drivers/net/wireless/ath/ath11k/pcic.c
|
|
@@ -218,9 +218,16 @@ int ath11k_pcic_read(struct ath11k_base
|
|
if (wakeup_required && ab->pci.ops->wakeup) {
|
|
ret = ab->pci.ops->wakeup(ab);
|
|
if (ret) {
|
|
- ath11k_warn(ab, "failed to wakeup for read from 0x%x: %d\n",
|
|
- start, ret);
|
|
- return ret;
|
|
+ ath11k_warn(ab,
|
|
+ "wakeup failed, data may be invalid: %d",
|
|
+ ret);
|
|
+ /* Even though wakeup() failed, continue processing rather
|
|
+ * than returning because some parts of the data may still
|
|
+ * be valid and useful in some cases, e.g. could give us
|
|
+ * some clues on firmware crash.
|
|
+ * Mislead due to invalid data could be avoided because we
|
|
+ * are aware of the wakeup failure.
|
|
+ */
|
|
}
|
|
}
|
|
|