Skip to content

Commit 8735696

Browse files
makohoekbroonie
authored andcommitted
spi: cadence-quadspi: Fix pm_runtime unbalance on dma EPROBE_DEFER
In csqspi_probe(), when cqspi_request_mmap_dma() returns -EPROBE_DEFER, we handle the error by jumping to probe_setup_failed. In that label, we call pm_runtime_disable(), even if we never called pm_runtime_enable() before. Because of this, the driver cannot probe: [ 2.690018] cadence-qspi 47040000.spi: No Rx DMA available [ 2.699735] spi-nor spi0.0: resume failed with -13 [ 2.699741] spi-nor: probe of spi0.0 failed with error -13 Only call pm_runtime_disable() if it was enabled by adding a new label to handle cqspi_request_mmap_dma() failures. Fixes: b07f349 ("spi: spi-cadence-quadspi: Fix pm runtime unbalance") Signed-off-by: Mattijs Korpershoek <mkorpershoek@kernel.org> Reviewed-by: Dan Carpenter <dan.carpenter@linaro.org> Link: https://patch.msgid.link/20251009-cadence-quadspi-fix-pm-runtime-v2-1-8bdfefc43902@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
1 parent 4f38da1 commit 8735696

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

drivers/spi/spi-cadence-quadspi.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1995,7 +1995,7 @@ static int cqspi_probe(struct platform_device *pdev)
19951995
if (cqspi->use_direct_mode) {
19961996
ret = cqspi_request_mmap_dma(cqspi);
19971997
if (ret == -EPROBE_DEFER)
1998-
goto probe_setup_failed;
1998+
goto probe_dma_failed;
19991999
}
20002000

20012001
if (!(ddata && (ddata->quirks & CQSPI_DISABLE_RUNTIME_PM))) {
@@ -2019,9 +2019,10 @@ static int cqspi_probe(struct platform_device *pdev)
20192019

20202020
return 0;
20212021
probe_setup_failed:
2022-
cqspi_controller_enable(cqspi, 0);
20232022
if (!(ddata && (ddata->quirks & CQSPI_DISABLE_RUNTIME_PM)))
20242023
pm_runtime_disable(dev);
2024+
probe_dma_failed:
2025+
cqspi_controller_enable(cqspi, 0);
20252026
probe_reset_failed:
20262027
if (cqspi->is_jh7110)
20272028
cqspi_jh7110_disable_clk(pdev, cqspi);

0 commit comments

Comments
 (0)