Unverified Commit c266d19b authored by Alain Volmat's avatar Alain Volmat Committed by Mark Brown
Browse files

spi: stm32: properly fail on dma_request_chan error



Correct handling of the dma_request_chan call in order to avoid
misleading warn message if no DMA is provided within the device-tree
and moreover fail if dma_request_chan has returned a valid error.

Signed-off-by: default avatarAlain Volmat <alain.volmat@foss.st.com>
Link: https://patch.msgid.link/20251218-stm32-spi-enhancements-v2-1-3b69901ca9fe@foss.st.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 8f0b4cce
Loading
Loading
Loading
Loading
+12 −8
Original line number Diff line number Diff line
@@ -2406,11 +2406,13 @@ static int stm32_spi_probe(struct platform_device *pdev)
	spi->dma_tx = dma_request_chan(spi->dev, "tx");
	if (IS_ERR(spi->dma_tx)) {
		ret = PTR_ERR(spi->dma_tx);
		if (ret == -ENODEV) {
			dev_info(&pdev->dev, "tx dma disabled\n");
			spi->dma_tx = NULL;
		if (ret == -EPROBE_DEFER)
		} else {
			dev_err_probe(&pdev->dev, ret, "failed to request tx dma channel\n");
			goto err_clk_disable;

		dev_warn(&pdev->dev, "failed to request tx dma channel\n");
		}
	} else {
		ctrl->dma_tx = spi->dma_tx;
	}
@@ -2418,11 +2420,13 @@ static int stm32_spi_probe(struct platform_device *pdev)
	spi->dma_rx = dma_request_chan(spi->dev, "rx");
	if (IS_ERR(spi->dma_rx)) {
		ret = PTR_ERR(spi->dma_rx);
		if (ret == -ENODEV) {
			dev_info(&pdev->dev, "rx dma disabled\n");
			spi->dma_rx = NULL;
		if (ret == -EPROBE_DEFER)
		} else {
			dev_err_probe(&pdev->dev, ret, "failed to request rx dma channel\n");
			goto err_dma_release;

		dev_warn(&pdev->dev, "failed to request rx dma channel\n");
		}
	} else {
		ctrl->dma_rx = spi->dma_rx;
	}