ASoC: au1x: Use managed buffer allocation
Clean up the drivers with the new managed buffer allocation API. The superfluous snd_pcm_lib_malloc_pages() and snd_pcm_lib_free_pages() calls are dropped. Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://lore.kernel.org/r/20191210142614.19405-3-tiwai@suse.de Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Родитель
a4072cdfa9
Коммит
fe9912ac58
|
@ -197,10 +197,6 @@ static int au1xpsc_pcm_hw_params(struct snd_soc_component *component,
|
|||
struct au1xpsc_audio_dmadata *pcd;
|
||||
int stype, ret;
|
||||
|
||||
ret = snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(params));
|
||||
if (ret < 0)
|
||||
goto out;
|
||||
|
||||
stype = substream->stream;
|
||||
pcd = to_dmadata(substream, component);
|
||||
|
||||
|
@ -232,13 +228,6 @@ out:
|
|||
return ret;
|
||||
}
|
||||
|
||||
static int au1xpsc_pcm_hw_free(struct snd_soc_component *component,
|
||||
struct snd_pcm_substream *substream)
|
||||
{
|
||||
snd_pcm_lib_free_pages(substream);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int au1xpsc_pcm_prepare(struct snd_soc_component *component,
|
||||
struct snd_pcm_substream *substream)
|
||||
{
|
||||
|
@ -315,7 +304,7 @@ static int au1xpsc_pcm_new(struct snd_soc_component *component,
|
|||
struct snd_card *card = rtd->card->snd_card;
|
||||
struct snd_pcm *pcm = rtd->pcm;
|
||||
|
||||
snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV,
|
||||
snd_pcm_set_managed_buffer_all(pcm, SNDRV_DMA_TYPE_DEV,
|
||||
card->dev, AU1XPSC_BUFFER_MIN_BYTES, (4096 * 1024) - 1);
|
||||
|
||||
return 0;
|
||||
|
@ -327,7 +316,6 @@ static struct snd_soc_component_driver au1xpsc_soc_component = {
|
|||
.open = au1xpsc_pcm_open,
|
||||
.close = au1xpsc_pcm_close,
|
||||
.hw_params = au1xpsc_pcm_hw_params,
|
||||
.hw_free = au1xpsc_pcm_hw_free,
|
||||
.prepare = au1xpsc_pcm_prepare,
|
||||
.trigger = au1xpsc_pcm_trigger,
|
||||
.pointer = au1xpsc_pcm_pointer,
|
||||
|
|
|
@ -231,19 +231,10 @@ static int alchemy_pcm_hw_params(struct snd_soc_component *component,
|
|||
struct snd_pcm_hw_params *hw_params)
|
||||
{
|
||||
struct audio_stream *stream = ss_to_as(substream, component);
|
||||
int err;
|
||||
|
||||
err = snd_pcm_lib_malloc_pages(substream,
|
||||
params_buffer_bytes(hw_params));
|
||||
if (err < 0)
|
||||
return err;
|
||||
err = au1000_setup_dma_link(stream,
|
||||
params_period_bytes(hw_params),
|
||||
params_periods(hw_params));
|
||||
if (err)
|
||||
snd_pcm_lib_free_pages(substream);
|
||||
|
||||
return err;
|
||||
return au1000_setup_dma_link(stream,
|
||||
params_period_bytes(hw_params),
|
||||
params_periods(hw_params));
|
||||
}
|
||||
|
||||
static int alchemy_pcm_hw_free(struct snd_soc_component *component,
|
||||
|
@ -251,7 +242,7 @@ static int alchemy_pcm_hw_free(struct snd_soc_component *component,
|
|||
{
|
||||
struct audio_stream *stream = ss_to_as(substream, component);
|
||||
au1000_release_dma_link(stream);
|
||||
return snd_pcm_lib_free_pages(substream);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int alchemy_pcm_trigger(struct snd_soc_component *component,
|
||||
|
@ -292,8 +283,8 @@ static int alchemy_pcm_new(struct snd_soc_component *component,
|
|||
{
|
||||
struct snd_pcm *pcm = rtd->pcm;
|
||||
|
||||
snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_CONTINUOUS,
|
||||
NULL, 65536, (4096 * 1024) - 1);
|
||||
snd_pcm_set_managed_buffer_all(pcm, SNDRV_DMA_TYPE_CONTINUOUS,
|
||||
NULL, 65536, (4096 * 1024) - 1);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче