73b68308ab
[ Upstream commit 2a3ec40b98b46c339adb57313d3b933ee5e7a8e8 ] If we already have gotten the rproc_handle (meaning the "qcom,rproc" property is defined in the devicetree), it's a valid state that the remoteproc module hasn't probed yet so we should defer probing instead of just failing to probe. This resolves a race condition when the ath11k driver probes and fails before the wpss remoteproc driver has probed, like the following: [ 6.232360] ath11k 17a10040.wifi: failed to get rproc [ 6.232366] ath11k 17a10040.wifi: failed to get rproc: -22 [ 6.232478] ath11k: probe of 17a10040.wifi failed with error -22 ... [ 6.252415] remoteproc remoteproc2: 8a00000.remoteproc is available [ 6.252776] remoteproc remoteproc2: powering up 8a00000.remoteproc [ 6.252781] remoteproc remoteproc2: Booting fw image qcom/qcm6490/fairphone5/wpss.mdt, size 7188 So, defer the probe if we hit that so we can retry later once the wpss remoteproc is available. Tested-on: WCN6750 hw1.0 AHB WLAN.MSL.1.0.1-01264-QCAMSLSWPLZ-1.37886.3 Fixes: d5c65159f289 ("ath11k: driver for Qualcomm IEEE 802.11ax devices") Signed-off-by: Luca Weiss <luca.weiss@fairphone.com> Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> Link: https://lore.kernel.org/r/20231027-ath11k-rproc-defer-v1-1-f6b6a812cd18@fairphone.com Signed-off-by: Sasha Levin <sashal@kernel.org> |
||
---|---|---|
.. | ||
ahb.c | ||
ahb.h | ||
ce.c | ||
ce.h | ||
core.c | ||
core.h | ||
dbring.c | ||
dbring.h | ||
debug.c | ||
debug.h | ||
debugfs.c | ||
debugfs.h | ||
debugfs_htt_stats.c | ||
debugfs_htt_stats.h | ||
debugfs_sta.c | ||
debugfs_sta.h | ||
dp.c | ||
dp.h | ||
dp_rx.c | ||
dp_rx.h | ||
dp_tx.c | ||
dp_tx.h | ||
hal.c | ||
hal.h | ||
hal_desc.h | ||
hal_rx.c | ||
hal_rx.h | ||
hal_tx.c | ||
hal_tx.h | ||
hif.h | ||
htc.c | ||
htc.h | ||
hw.c | ||
hw.h | ||
Kconfig | ||
mac.c | ||
mac.h | ||
Makefile | ||
mhi.c | ||
mhi.h | ||
pci.c | ||
pci.h | ||
peer.c | ||
peer.h | ||
qmi.c | ||
qmi.h | ||
reg.c | ||
reg.h | ||
rx_desc.h | ||
spectral.c | ||
spectral.h | ||
testmode.c | ||
testmode.h | ||
testmode_i.h | ||
thermal.c | ||
thermal.h | ||
trace.c | ||
trace.h | ||
wmi.c | ||
wmi.h |