mmc: mmci: Use dma_request_chan() instead dma_request_slave_channel()
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/20191217112737.31024-1-peter.ujfalusi@ti.com Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
This commit is contained in:
committed by
Ulf Hansson
parent
c1fce22522
commit
716d0205fe
@@ -715,10 +715,20 @@ int mmci_dmae_setup(struct mmci_host *host)
|
|||||||
|
|
||||||
host->dma_priv = dmae;
|
host->dma_priv = dmae;
|
||||||
|
|
||||||
dmae->rx_channel = dma_request_slave_channel(mmc_dev(host->mmc),
|
dmae->rx_channel = dma_request_chan(mmc_dev(host->mmc), "rx");
|
||||||
"rx");
|
if (IS_ERR(dmae->rx_channel)) {
|
||||||
dmae->tx_channel = dma_request_slave_channel(mmc_dev(host->mmc),
|
int ret = PTR_ERR(dmae->rx_channel);
|
||||||
"tx");
|
dmae->rx_channel = NULL;
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
dmae->tx_channel = dma_request_chan(mmc_dev(host->mmc), "tx");
|
||||||
|
if (IS_ERR(dmae->tx_channel)) {
|
||||||
|
if (PTR_ERR(dmae->tx_channel) == -EPROBE_DEFER)
|
||||||
|
dev_warn(mmc_dev(host->mmc),
|
||||||
|
"Deferred probe for TX channel ignored\n");
|
||||||
|
dmae->tx_channel = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If only an RX channel is specified, the driver will
|
* If only an RX channel is specified, the driver will
|
||||||
|
|||||||
Reference in New Issue
Block a user