spi: Use dev_err_probe instead of dev_err
authorWang Ming <machel@vivo.com>
Wed, 26 Jul 2023 10:54:47 +0000 (18:54 +0800)
committerMark Brown <broonie@kernel.org>
Mon, 31 Jul 2023 11:44:57 +0000 (12:44 +0100)
It is possible that dma_request_chan will return EPROBE_DEFER,
which means that dev is not ready yet. In this case,
dev_err(dev), there will be no output. This patch fixes the bug.

Signed-off-by: Wang Ming <machel@vivo.com>
Link: https://lore.kernel.org/r/20230726105457.3743-1-machel@vivo.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-bcm2835.c

index 83fd062..c16abc2 100644 (file)
@@ -903,15 +903,15 @@ static int bcm2835_dma_init(struct spi_controller *ctlr, struct device *dev,
        /* get tx/rx dma */
        ctlr->dma_tx = dma_request_chan(dev, "tx");
        if (IS_ERR(ctlr->dma_tx)) {
-               dev_err(dev, "no tx-dma configuration found - not using dma mode\n");
-               ret = PTR_ERR(ctlr->dma_tx);
+               ret = dev_err_probe(dev, PTR_ERR(ctlr->dma_tx),
+                       "no tx-dma configuration found - not using dma mode\n");
                ctlr->dma_tx = NULL;
                goto err;
        }
        ctlr->dma_rx = dma_request_chan(dev, "rx");
        if (IS_ERR(ctlr->dma_rx)) {
-               dev_err(dev, "no rx-dma configuration found - not using dma mode\n");
-               ret = PTR_ERR(ctlr->dma_rx);
+               ret = dev_err_probe(dev, PTR_ERR(ctlr->dma_rx),
+                       "no rx-dma configuration found - not using dma mode\n");
                ctlr->dma_rx = NULL;
                goto err_release;
        }