Commit 786e90b0 authored by Takashi Iwai's avatar Takashi Iwai

ALSA: sparc: Use managed buffer allocation

Clean up the drivers with the new managed buffer allocation API.
The hw_params and hw_free callbacks became superfluous and dropped.

Link: https://lore.kernel.org/r/20191209094943.14984-63-tiwai@suse.deSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 50cdf3a0
...@@ -723,23 +723,10 @@ static int snd_amd7930_capture_close(struct snd_pcm_substream *substream) ...@@ -723,23 +723,10 @@ static int snd_amd7930_capture_close(struct snd_pcm_substream *substream)
return 0; return 0;
} }
static int snd_amd7930_hw_params(struct snd_pcm_substream *substream,
struct snd_pcm_hw_params *hw_params)
{
return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params));
}
static int snd_amd7930_hw_free(struct snd_pcm_substream *substream)
{
return snd_pcm_lib_free_pages(substream);
}
static const struct snd_pcm_ops snd_amd7930_playback_ops = { static const struct snd_pcm_ops snd_amd7930_playback_ops = {
.open = snd_amd7930_playback_open, .open = snd_amd7930_playback_open,
.close = snd_amd7930_playback_close, .close = snd_amd7930_playback_close,
.ioctl = snd_pcm_lib_ioctl, .ioctl = snd_pcm_lib_ioctl,
.hw_params = snd_amd7930_hw_params,
.hw_free = snd_amd7930_hw_free,
.prepare = snd_amd7930_playback_prepare, .prepare = snd_amd7930_playback_prepare,
.trigger = snd_amd7930_playback_trigger, .trigger = snd_amd7930_playback_trigger,
.pointer = snd_amd7930_playback_pointer, .pointer = snd_amd7930_playback_pointer,
...@@ -749,8 +736,6 @@ static const struct snd_pcm_ops snd_amd7930_capture_ops = { ...@@ -749,8 +736,6 @@ static const struct snd_pcm_ops snd_amd7930_capture_ops = {
.open = snd_amd7930_capture_open, .open = snd_amd7930_capture_open,
.close = snd_amd7930_capture_close, .close = snd_amd7930_capture_close,
.ioctl = snd_pcm_lib_ioctl, .ioctl = snd_pcm_lib_ioctl,
.hw_params = snd_amd7930_hw_params,
.hw_free = snd_amd7930_hw_free,
.prepare = snd_amd7930_capture_prepare, .prepare = snd_amd7930_capture_prepare,
.trigger = snd_amd7930_capture_trigger, .trigger = snd_amd7930_capture_trigger,
.pointer = snd_amd7930_capture_pointer, .pointer = snd_amd7930_capture_pointer,
...@@ -776,9 +761,8 @@ static int snd_amd7930_pcm(struct snd_amd7930 *amd) ...@@ -776,9 +761,8 @@ static int snd_amd7930_pcm(struct snd_amd7930 *amd)
strcpy(pcm->name, amd->card->shortname); strcpy(pcm->name, amd->card->shortname);
amd->pcm = pcm; amd->pcm = pcm;
snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_CONTINUOUS, snd_pcm_set_managed_buffer_all(pcm, SNDRV_DMA_TYPE_CONTINUOUS,
NULL, NULL, 64*1024, 64*1024);
64*1024, 64*1024);
return 0; return 0;
} }
......
...@@ -889,12 +889,7 @@ static int snd_cs4231_playback_hw_params(struct snd_pcm_substream *substream, ...@@ -889,12 +889,7 @@ static int snd_cs4231_playback_hw_params(struct snd_pcm_substream *substream,
{ {
struct snd_cs4231 *chip = snd_pcm_substream_chip(substream); struct snd_cs4231 *chip = snd_pcm_substream_chip(substream);
unsigned char new_pdfr; unsigned char new_pdfr;
int err;
err = snd_pcm_lib_malloc_pages(substream,
params_buffer_bytes(hw_params));
if (err < 0)
return err;
new_pdfr = snd_cs4231_get_format(chip, params_format(hw_params), new_pdfr = snd_cs4231_get_format(chip, params_format(hw_params),
params_channels(hw_params)) | params_channels(hw_params)) |
snd_cs4231_get_rate(params_rate(hw_params)); snd_cs4231_get_rate(params_rate(hw_params));
...@@ -933,12 +928,7 @@ static int snd_cs4231_capture_hw_params(struct snd_pcm_substream *substream, ...@@ -933,12 +928,7 @@ static int snd_cs4231_capture_hw_params(struct snd_pcm_substream *substream,
{ {
struct snd_cs4231 *chip = snd_pcm_substream_chip(substream); struct snd_cs4231 *chip = snd_pcm_substream_chip(substream);
unsigned char new_cdfr; unsigned char new_cdfr;
int err;
err = snd_pcm_lib_malloc_pages(substream,
params_buffer_bytes(hw_params));
if (err < 0)
return err;
new_cdfr = snd_cs4231_get_format(chip, params_format(hw_params), new_cdfr = snd_cs4231_get_format(chip, params_format(hw_params),
params_channels(hw_params)) | params_channels(hw_params)) |
snd_cs4231_get_rate(params_rate(hw_params)); snd_cs4231_get_rate(params_rate(hw_params));
...@@ -1205,7 +1195,6 @@ static const struct snd_pcm_ops snd_cs4231_playback_ops = { ...@@ -1205,7 +1195,6 @@ static const struct snd_pcm_ops snd_cs4231_playback_ops = {
.close = snd_cs4231_playback_close, .close = snd_cs4231_playback_close,
.ioctl = snd_pcm_lib_ioctl, .ioctl = snd_pcm_lib_ioctl,
.hw_params = snd_cs4231_playback_hw_params, .hw_params = snd_cs4231_playback_hw_params,
.hw_free = snd_pcm_lib_free_pages,
.prepare = snd_cs4231_playback_prepare, .prepare = snd_cs4231_playback_prepare,
.trigger = snd_cs4231_trigger, .trigger = snd_cs4231_trigger,
.pointer = snd_cs4231_playback_pointer, .pointer = snd_cs4231_playback_pointer,
...@@ -1216,7 +1205,6 @@ static const struct snd_pcm_ops snd_cs4231_capture_ops = { ...@@ -1216,7 +1205,6 @@ static const struct snd_pcm_ops snd_cs4231_capture_ops = {
.close = snd_cs4231_capture_close, .close = snd_cs4231_capture_close,
.ioctl = snd_pcm_lib_ioctl, .ioctl = snd_pcm_lib_ioctl,
.hw_params = snd_cs4231_capture_hw_params, .hw_params = snd_cs4231_capture_hw_params,
.hw_free = snd_pcm_lib_free_pages,
.prepare = snd_cs4231_capture_prepare, .prepare = snd_cs4231_capture_prepare,
.trigger = snd_cs4231_trigger, .trigger = snd_cs4231_trigger,
.pointer = snd_cs4231_capture_pointer, .pointer = snd_cs4231_capture_pointer,
...@@ -1242,9 +1230,8 @@ static int snd_cs4231_pcm(struct snd_card *card) ...@@ -1242,9 +1230,8 @@ static int snd_cs4231_pcm(struct snd_card *card)
pcm->info_flags = SNDRV_PCM_INFO_JOINT_DUPLEX; pcm->info_flags = SNDRV_PCM_INFO_JOINT_DUPLEX;
strcpy(pcm->name, "CS4231"); strcpy(pcm->name, "CS4231");
snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV, snd_pcm_set_managed_buffer_all(pcm, SNDRV_DMA_TYPE_DEV,
&chip->op->dev, &chip->op->dev, 64 * 1024, 128 * 1024);
64 * 1024, 128 * 1024);
chip->pcm = pcm; chip->pcm = pcm;
......
...@@ -2099,12 +2099,6 @@ static int snd_dbri_hw_params(struct snd_pcm_substream *substream, ...@@ -2099,12 +2099,6 @@ static int snd_dbri_hw_params(struct snd_pcm_substream *substream,
if (ret != 0) if (ret != 0)
return ret; return ret;
if ((ret = snd_pcm_lib_malloc_pages(substream,
params_buffer_bytes(hw_params))) < 0) {
printk(KERN_ERR "malloc_pages failed with %d\n", ret);
return ret;
}
/* hw_params can get called multiple times. Only map the DMA once. /* hw_params can get called multiple times. Only map the DMA once.
*/ */
if (info->dvma_buffer == 0) { if (info->dvma_buffer == 0) {
...@@ -2151,7 +2145,7 @@ static int snd_dbri_hw_free(struct snd_pcm_substream *substream) ...@@ -2151,7 +2145,7 @@ static int snd_dbri_hw_free(struct snd_pcm_substream *substream)
info->pipe = -1; info->pipe = -1;
} }
return snd_pcm_lib_free_pages(substream); return 0;
} }
static int snd_dbri_prepare(struct snd_pcm_substream *substream) static int snd_dbri_prepare(struct snd_pcm_substream *substream)
...@@ -2248,9 +2242,8 @@ static int snd_dbri_pcm(struct snd_card *card) ...@@ -2248,9 +2242,8 @@ static int snd_dbri_pcm(struct snd_card *card)
pcm->info_flags = 0; pcm->info_flags = 0;
strcpy(pcm->name, card->shortname); strcpy(pcm->name, card->shortname);
snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_CONTINUOUS, snd_pcm_set_managed_buffer_all(pcm, SNDRV_DMA_TYPE_CONTINUOUS,
NULL, NULL, 64 * 1024, 64 * 1024);
64 * 1024, 64 * 1024);
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment