mtd: rawnand: cadence: fix error code in cadence_nand_init()
authorNiravkumar L Rabara <niravkumar.l.rabara@intel.com>
Mon, 10 Feb 2025 05:35:49 +0000 (13:35 +0800)
committerMiquel Raynal <miquel.raynal@bootlin.com>
Mon, 10 Feb 2025 15:17:59 +0000 (16:17 +0100)
Replace dma_request_channel() with dma_request_chan_by_mask() and use
helper functions to return proper error code instead of fixed -EBUSY.

Fixes: ec4ba01e894d ("mtd: rawnand: Add new Cadence NAND driver to MTD subsystem")
Cc: stable@vger.kernel.org
Signed-off-by: Niravkumar L Rabara <niravkumar.l.rabara@intel.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
drivers/mtd/nand/raw/cadence-nand-controller.c

index 8d1d710e439dd3a8fbe4b3fcea2d8ab21f664dba..fb5f671bdb7bb2b65e2fd8aa6ae1c402223d85a4 100644 (file)
@@ -2904,11 +2904,10 @@ static int cadence_nand_init(struct cdns_nand_ctrl *cdns_ctrl)
        dma_cap_set(DMA_MEMCPY, mask);
 
        if (cdns_ctrl->caps1->has_dma) {
-               cdns_ctrl->dmac = dma_request_channel(mask, NULL, NULL);
-               if (!cdns_ctrl->dmac) {
-                       dev_err(cdns_ctrl->dev,
-                               "Unable to get a DMA channel\n");
-                       ret = -EBUSY;
+               cdns_ctrl->dmac = dma_request_chan_by_mask(&mask);
+               if (IS_ERR(cdns_ctrl->dmac)) {
+                       ret = dev_err_probe(cdns_ctrl->dev, PTR_ERR(cdns_ctrl->dmac),
+                                           "%d: Failed to get a DMA channel\n", ret);
                        goto disable_irq;
                }
        }