mmc: dw_mmc: Use dma_request_chan() instead dma_request_slave_channel()
authorPeter Ujfalusi <peter.ujfalusi@ti.com>
Tue, 17 Dec 2019 11:26:56 +0000 (13:26 +0200)
committerUlf Hansson <ulf.hansson@linaro.org>
Thu, 19 Dec 2019 07:19:42 +0000 (08:19 +0100)
dma_request_slave_channel() is a wrapper on top of dma_request_chan()
eating up the error code.

By using dma_request_chan() directly the driver can support deferred
probing against DMA.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Link: https://lore.kernel.org/r/20191217112656.30860-1-peter.ujfalusi@ti.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/dw_mmc.c

index fc9d4d0..bc5278a 100644 (file)
@@ -833,12 +833,14 @@ static int dw_mci_edmac_init(struct dw_mci *host)
        if (!host->dms)
                return -ENOMEM;
 
-       host->dms->ch = dma_request_slave_channel(host->dev, "rx-tx");
-       if (!host->dms->ch) {
+       host->dms->ch = dma_request_chan(host->dev, "rx-tx");
+       if (IS_ERR(host->dms->ch)) {
+               int ret = PTR_ERR(host->dms->ch);
+
                dev_err(host->dev, "Failed to get external DMA channel.\n");
                kfree(host->dms);
                host->dms = NULL;
-               return -ENXIO;
+               return ret;
        }
 
        return 0;