mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-29 10:08:59 +00:00
93ae4353cd
ath11k is the upstream driver for Qualcomm 802.11ax radios, both for the internal AHB and PCI based cards. This commit does however only provide PCI support while AHB will follow but its SoC specific so it will require an OpenWrt target first. It differs a bit from ath10k as it requires stuff like QRTR, MHI and QMI helpers. PCI variant requires qrtr-mhi and mhi-bus which backports do provide, however we are dropping those in a patch as they will conflict with support for the AHB variant as that one requires qrtr-smd which in turn requires RPMSG and GLINK and its not feasable to provide those in backports as they are really SoC specific. QRTR and MHI in kernel 5.10 are not usable and backporting the changes is not easy as they have changed drastically from 5.10 to 5.15 ath11k will only be available on targets that use kernel 5.15. Signed-off-by: Robert Marko <robimarko@gmail.com>
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.
|
|
+ */
|
|
}
|
|
}
|
|
|