|
@@ -200,11 +200,6 @@ static int dmaengine_pcm_open(struct snd_pcm_substream *substream)
|
|
|
return snd_dmaengine_pcm_open(substream, chan);
|
|
|
}
|
|
|
|
|
|
-static void dmaengine_pcm_free(struct snd_pcm *pcm)
|
|
|
-{
|
|
|
- snd_pcm_lib_preallocate_free_for_all(pcm);
|
|
|
-}
|
|
|
-
|
|
|
static struct dma_chan *dmaengine_pcm_compat_request_channel(
|
|
|
struct snd_soc_pcm_runtime *rtd,
|
|
|
struct snd_pcm_substream *substream)
|
|
@@ -283,8 +278,7 @@ static int dmaengine_pcm_new(struct snd_soc_pcm_runtime *rtd)
|
|
|
if (!pcm->chan[i]) {
|
|
|
dev_err(rtd->platform->dev,
|
|
|
"Missing dma channel for stream: %d\n", i);
|
|
|
- ret = -EINVAL;
|
|
|
- goto err_free;
|
|
|
+ return -EINVAL;
|
|
|
}
|
|
|
|
|
|
ret = snd_pcm_lib_preallocate_pages(substream,
|
|
@@ -293,7 +287,7 @@ static int dmaengine_pcm_new(struct snd_soc_pcm_runtime *rtd)
|
|
|
prealloc_buffer_size,
|
|
|
max_buffer_size);
|
|
|
if (ret)
|
|
|
- goto err_free;
|
|
|
+ return ret;
|
|
|
|
|
|
/*
|
|
|
* This will only return false if we know for sure that at least
|
|
@@ -307,10 +301,6 @@ static int dmaengine_pcm_new(struct snd_soc_pcm_runtime *rtd)
|
|
|
}
|
|
|
|
|
|
return 0;
|
|
|
-
|
|
|
-err_free:
|
|
|
- dmaengine_pcm_free(rtd->pcm);
|
|
|
- return ret;
|
|
|
}
|
|
|
|
|
|
static snd_pcm_uframes_t dmaengine_pcm_pointer(
|
|
@@ -341,7 +331,6 @@ static const struct snd_soc_platform_driver dmaengine_pcm_platform = {
|
|
|
},
|
|
|
.ops = &dmaengine_pcm_ops,
|
|
|
.pcm_new = dmaengine_pcm_new,
|
|
|
- .pcm_free = dmaengine_pcm_free,
|
|
|
};
|
|
|
|
|
|
static const char * const dmaengine_pcm_dma_channel_names[] = {
|