Replace dma_request_slave_channel() by dma_request_chan() as suggested
since the former is deprecated. With this, propagate all possible errors
to the caller.

Signed-off-by: Andy Shevchenko <[email protected]>
---
 sound/soc/fsl/fsl_asrc.c     |  2 +-
 sound/soc/fsl/fsl_asrc_dma.c | 19 +++++++++++--------
 sound/soc/fsl/fsl_asrc_m2m.c | 15 +++++++++------
 sound/soc/fsl/fsl_easrc.c    |  2 +-
 4 files changed, 22 insertions(+), 16 deletions(-)

diff --git a/sound/soc/fsl/fsl_asrc.c b/sound/soc/fsl/fsl_asrc.c
index b24737add001..ae682bf450f6 100644
--- a/sound/soc/fsl/fsl_asrc.c
+++ b/sound/soc/fsl/fsl_asrc.c
@@ -638,7 +638,7 @@ static struct dma_chan *fsl_asrc_get_dma_channel(struct 
fsl_asrc_pair *pair,
 
        sprintf(name, "%cx%c", dir == IN ? 'r' : 't', index + 'a');
 
-       return dma_request_slave_channel(&asrc->pdev->dev, name);
+       return dma_request_chan(&asrc->pdev->dev, name);
 }
 
 static int fsl_asrc_dai_startup(struct snd_pcm_substream *substream,
diff --git a/sound/soc/fsl/fsl_asrc_dma.c b/sound/soc/fsl/fsl_asrc_dma.c
index 2f662bdf14d0..86489f70e262 100644
--- a/sound/soc/fsl/fsl_asrc_dma.c
+++ b/sound/soc/fsl/fsl_asrc_dma.c
@@ -136,8 +136,8 @@ static int fsl_asrc_dma_hw_params(struct snd_soc_component 
*component,
        struct snd_dmaengine_dai_dma_data *dma_params_be = NULL;
        struct snd_pcm_runtime *runtime = substream->runtime;
        struct fsl_asrc_pair *pair = runtime->private_data;
-       struct dma_chan *tmp_chan = NULL, *be_chan = NULL;
        struct snd_soc_component *component_be = NULL;
+       struct dma_chan *tmp_chan, *be_chan = NULL;
        struct fsl_asrc *asrc = pair->asrc;
        struct dma_slave_config config_fe = {}, config_be = {};
        struct sdma_peripheral_config audio_config;
@@ -190,11 +190,12 @@ static int fsl_asrc_dma_hw_params(struct 
snd_soc_component *component,
        dma_params_fe->addr = asrc->paddr + asrc->get_fifo_addr(!dir, index);
        dma_params_fe->maxburst = dma_params_be->maxburst;
 
-       pair->dma_chan[!dir] = asrc->get_dma_channel(pair, !dir);
-       if (!pair->dma_chan[!dir]) {
+       tmp_chan = asrc->get_dma_channel(pair, !dir);
+       if (IS_ERR(tmp_chan)) {
                dev_err(dev, "failed to request DMA channel\n");
-               return -EINVAL;
+               return PTR_ERR(tmp_chan);
        }
+       pair->dma_chan[!dir] = tmp_chan;
 
        ret = snd_dmaengine_pcm_prepare_slave_config(substream, params, 
&config_fe);
        if (ret) {
@@ -223,6 +224,8 @@ static int fsl_asrc_dma_hw_params(struct snd_soc_component 
*component,
 
                be_chan = pcm->chan[substream->stream];
                tmp_chan = be_chan;
+       } else {
+               tmp_chan = NULL;
        }
        if (!tmp_chan) {
                tmp_chan = dma_request_chan(dev_be, tx ? "tx" : "rx");
@@ -404,9 +407,9 @@ static int fsl_asrc_dma_startup(struct snd_soc_component 
*component,
 
        /* Request a dummy dma channel, which will be released later. */
        tmp_chan = asrc->get_dma_channel(pair, dir);
-       if (!tmp_chan) {
+       ret = PTR_ERR_OR_ZERO(tmp_chan);
+       if (ret) {
                dev_err(dev, "failed to get dma channel\n");
-               ret = -EINVAL;
                goto dma_chan_err;
        }
 
@@ -497,9 +500,9 @@ static int fsl_asrc_dma_pcm_new(struct snd_soc_component 
*component,
 
        /* Request a dma channel, which will be released later. */
        chan = asrc->get_dma_channel(pair, IN);
-       if (!chan) {
+       ret = PTR_ERR_OR_ZERO(chan);
+       if (ret) {
                dev_err(dev, "failed to get dma channel\n");
-               ret = -EINVAL;
                goto dma_chan_err;
        }
 
diff --git a/sound/soc/fsl/fsl_asrc_m2m.c b/sound/soc/fsl/fsl_asrc_m2m.c
index 4bc40f328f58..e7b91196d35b 100644
--- a/sound/soc/fsl/fsl_asrc_m2m.c
+++ b/sound/soc/fsl/fsl_asrc_m2m.c
@@ -466,6 +466,7 @@ static int fsl_asrc_m2m_comp_task_create(struct 
snd_compr_stream *stream,
        struct snd_compr_runtime *runtime = stream->runtime;
        struct fsl_asrc_pair *pair = runtime->private_data;
        struct device *dev = &asrc->pdev->dev;
+       struct dma_chan *tmp_chan;
        int ret;
 
        exp_info_in.ops = &fsl_asrc_m2m_dma_buf_ops;
@@ -502,19 +503,21 @@ static int fsl_asrc_m2m_comp_task_create(struct 
snd_compr_stream *stream,
        }
 
        /* Request dma channels */
-       pair->dma_chan[IN] = asrc->get_dma_channel(pair, IN);
-       if (!pair->dma_chan[IN]) {
+       tmp_chan = asrc->get_dma_channel(pair, IN);
+       ret = PTR_ERR_OR_ZERO(tmp_chan);
+       if (ret) {
                dev_err(dev, "[ctx%d] failed to get input DMA channel\n", 
pair->index);
-               ret = -EBUSY;
                goto err_dma_channel_in;
        }
+       pair->dma_chan[IN] = tmp_chan;
 
-       pair->dma_chan[OUT] = asrc->get_dma_channel(pair, OUT);
-       if (!pair->dma_chan[OUT]) {
+       tmp_chan = asrc->get_dma_channel(pair, OUT);
+       ret = PTR_ERR_OR_ZERO(tmp_chan);
+       if (ret) {
                dev_err(dev, "[ctx%d] failed to get output DMA channel\n", 
pair->index);
-               ret = -EBUSY;
                goto err_dma_channel_out;
        }
+       pair->dma_chan[OUT] = tmp_chan;
 
        return 0;
 
diff --git a/sound/soc/fsl/fsl_easrc.c b/sound/soc/fsl/fsl_easrc.c
index aced16d1228a..d30cc3e90215 100644
--- a/sound/soc/fsl/fsl_easrc.c
+++ b/sound/soc/fsl/fsl_easrc.c
@@ -1433,7 +1433,7 @@ static struct dma_chan *fsl_easrc_get_dma_channel(struct 
fsl_asrc_pair *ctx,
        /* Example of dma name: ctx0_rx */
        sprintf(name, "ctx%c_%cx", index + '0', dir == IN ? 'r' : 't');
 
-       return dma_request_slave_channel(&easrc->pdev->dev, name);
+       return dma_request_chan(&easrc->pdev->dev, name);
 };
 
 static const unsigned int easrc_rates[] = {
-- 
2.50.1


Reply via email to