]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 7 Mar 2025 15:56:39 +0000 (16:56 +0100)
commit 2b9df00cded911e2ca2cfae5c45082166b24f8aa upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/mtd/nand/raw/cadence-nand-controller.c

index 9dac3ca69d576e085c7b07479796ea5013d8c23f..8bd191c37c5164e47c1a4f6fbcac37528d223043 100644 (file)
@@ -2863,11 +2863,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;
                }
        }