linux-stable/drivers/remoteproc
Bjorn Andersson 1fcef985c8 remoteproc: qcom: wcnss: Fix race with iris probe
The remoteproc driver is split between the responsibilities of getting
the SoC-internal ARM core up and running and the external RF (aka
"Iris") part configured.

In order to satisfy the regulator framework's need of a struct device *
to look up supplies this was implemented as two different drivers, using
of_platform_populate() in the remoteproc part to probe the iris part.

Unfortunately it's possible that the iris part probe defers on yet not
available regulators and an attempt to start the remoteproc will have to
be rejected, until this has been resolved. But there's no useful
mechanism of knowing when this would be.

Instead replace the of_platform_populate() and the iris probe with a
function that rolls its own struct device, with the relevant of_node
associated that is enough to acquire regulators and clocks specified in
the DT node and that may propagate the EPROBE_DEFER back to the wcnss
device's probe.

Acked-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Reported-by: Anibal Limon <anibal.limon@linaro.org>
Reported-by: Loic Poulain <loic.poulain@linaro.org>
Tested-by: Anibal Limon <anibal.limon@linaro.org>
Link: https://lore.kernel.org/r/20210312002251.3273013-1-bjorn.andersson@linaro.org
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
2021-07-28 14:57:30 -05:00
..
da8xx_remoteproc.c remoteproc: Remove dev_err() usage after platform_get_irq() 2019-08-26 21:59:58 -07:00
imx_rproc.c remoteproc: imx_rproc: support i.MX8ULP 2021-06-23 13:46:37 -05:00
ingenic_rproc.c remoteproc: add is_iomem to da_to_va 2021-03-11 12:02:41 -06:00
Kconfig remoteproc: imx-rproc: Fix IMX_REMOTEPROC configuration 2021-06-10 11:29:48 -05:00
keystone_remoteproc.c remoteproc: add is_iomem to da_to_va 2021-03-11 12:02:41 -06:00
Makefile remoteproc: pru: Add a PRU remoteproc driver 2020-12-10 10:55:55 -06:00
mtk_common.h remoteproc/mediatek: support L1TCM 2021-02-09 09:08:47 -06:00
mtk_scp.c remoteproc: add is_iomem to da_to_va 2021-03-11 12:02:41 -06:00
mtk_scp_ipi.c remoteproc/mediatek: Add support for mt8192 SCP 2020-09-25 23:37:42 -05:00
omap_remoteproc.c remoteproc: add is_iomem to da_to_va 2021-03-11 12:02:41 -06:00
omap_remoteproc.h remoteproc/omap: Switch to SPDX license identifiers 2020-03-25 22:29:51 -07:00
pru_rproc.c remoteproc: pru: Add support for various PRU cores on K3 AM64x SoCs 2021-06-23 13:39:20 -05:00
pru_rproc.h remoteproc: pru: Add support for PRU specific interrupt configuration 2020-12-10 10:56:01 -06:00
qcom_common.c remoteproc: qcom: Add capability to collect minidumps 2020-12-10 13:16:54 -06:00
qcom_common.h remoteproc: qcom: Add capability to collect minidumps 2020-12-10 13:16:54 -06:00
qcom_pil_info.c remoteproc: qcom: pil_info: avoid 64-bit division 2021-03-08 10:49:36 -06:00
qcom_pil_info.h remoteproc: qcom: Introduce helper to store pil info in IMEM 2020-07-01 22:10:18 -07:00
qcom_q6v5.c remoteproc: qcom_q6v5: Use devm_qcom_smem_state_get() to fix missing put() 2021-06-23 13:35:18 -05:00
qcom_q6v5.h remoteproc: qcom: q6v5: Query sysmon before graceful shutdown 2020-11-25 23:05:24 -06:00
qcom_q6v5_adsp.c remoteproc: add is_iomem to da_to_va 2021-03-11 12:02:41 -06:00
qcom_q6v5_mss.c remoteproc: qcom_q6v5_mss: Validate p_filesz in ELF loader 2021-03-18 07:54:44 -05:00
qcom_q6v5_pas.c remoteproc: qcom: pas: Add SC8180X adsp, cdsp and mpss 2021-06-25 17:43:35 -05:00
qcom_q6v5_wcss.c remoteproc: qcom: wcss: Remove unnecessary PTR_ERR() 2021-04-13 21:10:32 -05:00
qcom_sysmon.c remoteproc: sysmon: fix shutdown_acked state 2020-12-04 16:40:52 -06:00
qcom_wcnss.c remoteproc: qcom: wcnss: Fix race with iris probe 2021-07-28 14:57:30 -05:00
qcom_wcnss.h remoteproc: qcom: wcnss: Fix race with iris probe 2021-07-28 14:57:30 -05:00
qcom_wcnss_iris.c remoteproc: qcom: wcnss: Fix race with iris probe 2021-07-28 14:57:30 -05:00
remoteproc_cdev.c remoteproc: core: Fix cdev remove and rproc del 2021-06-23 13:41:44 -05:00
remoteproc_core.c remoteproc updates for v5.14 2021-07-07 10:50:03 -07:00
remoteproc_coredump.c remoteproc: add is_iomem to da_to_va 2021-03-11 12:02:41 -06:00
remoteproc_debugfs.c remoteproc: add is_iomem to da_to_va 2021-03-11 12:02:41 -06:00
remoteproc_elf_helpers.h remoteproc: coredump: Add minidump functionality 2020-12-10 13:14:37 -06:00
remoteproc_elf_loader.c remoteproc: Fix various kernel-doc warnings 2021-05-27 22:07:43 -05:00
remoteproc_internal.h remoteproc: Add new get_loaded_rsc_table() to rproc_ops 2021-03-18 07:54:53 -05:00
remoteproc_sysfs.c remoteproc: Properly deal with a detach request when attached 2021-03-18 08:02:10 -05:00
remoteproc_virtio.c remoteproc: Fix various kernel-doc warnings 2021-05-27 22:07:43 -05:00
st_remoteproc.c remoteproc: remove rproc_elf32_sanity_check 2020-04-22 21:57:26 -07:00
st_slim_rproc.c remoteproc: add is_iomem to da_to_va 2021-03-11 12:02:41 -06:00
stm32_rproc.c remoteproc: stm32: fix mbox_send_message call 2021-06-23 13:45:20 -05:00
ti_k3_dsp_remoteproc.c remoteproc: add is_iomem to da_to_va 2021-03-11 12:02:41 -06:00
ti_k3_r5_remoteproc.c remoteproc: k3-r5: Fix an error message 2021-05-27 22:36:55 -05:00
ti_sci_proc.h remoteproc: k3: Add TI-SCI processor control helper functions 2020-07-28 17:06:43 -07:00
wkup_m3_rproc.c remoteproc: add is_iomem to da_to_va 2021-03-11 12:02:41 -06:00