mtd: rawnand: marvell: Use dma_request_chan() instead dma_request_slave_channel()
authorPeter Ujfalusi <peter.ujfalusi@ti.com>
Thu, 27 Feb 2020 12:37:45 +0000 (14:37 +0200)
committerMiquel Raynal <miquel.raynal@bootlin.com>
Wed, 11 Mar 2020 15:17:54 +0000 (16:17 +0100)
dma_request_slave_channel() is a wrapper on top of dma_request_chan()
eating up the error code.

Use using dma_request_chan() directly to return the real error code.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20200227123749.24064-4-peter.ujfalusi@ti.com
drivers/mtd/nand/raw/marvell_nand.c

index f60d885..179f0ca 100644 (file)
@@ -2743,11 +2743,14 @@ static int marvell_nfc_init_dma(struct marvell_nfc *nfc)
        if (ret)
                return ret;
 
-       nfc->dma_chan = dma_request_slave_channel(nfc->dev, "data");
-       if (!nfc->dma_chan) {
-               dev_err(nfc->dev,
-                       "Unable to request data DMA channel\n");
-               return -ENODEV;
+       nfc->dma_chan = dma_request_chan(nfc->dev, "data");
+       if (IS_ERR(nfc->dma_chan)) {
+               ret = PTR_ERR(nfc->dma_chan);
+               nfc->dma_chan = NULL;
+               if (ret != -EPROBE_DEFER)
+                       dev_err(nfc->dev, "DMA channel request failed: %d\n",
+                               ret);
+               return ret;
        }
 
        r = platform_get_resource(pdev, IORESOURCE_MEM, 0);