diff options
author | Takashi Iwai <tiwai@suse.de> | 2019-12-09 10:49:34 +0100 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2019-12-11 07:25:21 +0100 |
commit | 786e90b0d0f4ffc16237c05ac5cfc7285bf4e1bc (patch) | |
tree | 76f1e91b2a29c920735efc5fe5bb46b2bda522f1 | |
parent | 50cdf3a0961fd0d0bcb71b85eeccb3a9783bf1b6 (diff) | |
download | linux-stable-786e90b0d0f4ffc16237c05ac5cfc7285bf4e1bc.tar.gz linux-stable-786e90b0d0f4ffc16237c05ac5cfc7285bf4e1bc.tar.bz2 linux-stable-786e90b0d0f4ffc16237c05ac5cfc7285bf4e1bc.zip |
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.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r-- | sound/sparc/amd7930.c | 20 | ||||
-rw-r--r-- | sound/sparc/cs4231.c | 17 | ||||
-rw-r--r-- | sound/sparc/dbri.c | 13 |
3 files changed, 7 insertions, 43 deletions
diff --git a/sound/sparc/amd7930.c b/sound/sparc/amd7930.c index d4b8ccc61dc2..d39973605cca 100644 --- a/sound/sparc/amd7930.c +++ b/sound/sparc/amd7930.c @@ -723,23 +723,10 @@ static int snd_amd7930_capture_close(struct snd_pcm_substream *substream) 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 = { .open = snd_amd7930_playback_open, .close = snd_amd7930_playback_close, .ioctl = snd_pcm_lib_ioctl, - .hw_params = snd_amd7930_hw_params, - .hw_free = snd_amd7930_hw_free, .prepare = snd_amd7930_playback_prepare, .trigger = snd_amd7930_playback_trigger, .pointer = snd_amd7930_playback_pointer, @@ -749,8 +736,6 @@ static const struct snd_pcm_ops snd_amd7930_capture_ops = { .open = snd_amd7930_capture_open, .close = snd_amd7930_capture_close, .ioctl = snd_pcm_lib_ioctl, - .hw_params = snd_amd7930_hw_params, - .hw_free = snd_amd7930_hw_free, .prepare = snd_amd7930_capture_prepare, .trigger = snd_amd7930_capture_trigger, .pointer = snd_amd7930_capture_pointer, @@ -776,9 +761,8 @@ static int snd_amd7930_pcm(struct snd_amd7930 *amd) strcpy(pcm->name, amd->card->shortname); amd->pcm = pcm; - snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_CONTINUOUS, - NULL, - 64*1024, 64*1024); + snd_pcm_set_managed_buffer_all(pcm, SNDRV_DMA_TYPE_CONTINUOUS, + NULL, 64*1024, 64*1024); return 0; } diff --git a/sound/sparc/cs4231.c b/sound/sparc/cs4231.c index 138841e0f2ae..874da942b662 100644 --- a/sound/sparc/cs4231.c +++ b/sound/sparc/cs4231.c @@ -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); 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), params_channels(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, { struct snd_cs4231 *chip = snd_pcm_substream_chip(substream); 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), params_channels(hw_params)) | snd_cs4231_get_rate(params_rate(hw_params)); @@ -1205,7 +1195,6 @@ static const struct snd_pcm_ops snd_cs4231_playback_ops = { .close = snd_cs4231_playback_close, .ioctl = snd_pcm_lib_ioctl, .hw_params = snd_cs4231_playback_hw_params, - .hw_free = snd_pcm_lib_free_pages, .prepare = snd_cs4231_playback_prepare, .trigger = snd_cs4231_trigger, .pointer = snd_cs4231_playback_pointer, @@ -1216,7 +1205,6 @@ static const struct snd_pcm_ops snd_cs4231_capture_ops = { .close = snd_cs4231_capture_close, .ioctl = snd_pcm_lib_ioctl, .hw_params = snd_cs4231_capture_hw_params, - .hw_free = snd_pcm_lib_free_pages, .prepare = snd_cs4231_capture_prepare, .trigger = snd_cs4231_trigger, .pointer = snd_cs4231_capture_pointer, @@ -1242,9 +1230,8 @@ static int snd_cs4231_pcm(struct snd_card *card) pcm->info_flags = SNDRV_PCM_INFO_JOINT_DUPLEX; strcpy(pcm->name, "CS4231"); - snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV, - &chip->op->dev, - 64 * 1024, 128 * 1024); + snd_pcm_set_managed_buffer_all(pcm, SNDRV_DMA_TYPE_DEV, + &chip->op->dev, 64 * 1024, 128 * 1024); chip->pcm = pcm; diff --git a/sound/sparc/dbri.c b/sound/sparc/dbri.c index 4911103421ff..315d5a04a33e 100644 --- a/sound/sparc/dbri.c +++ b/sound/sparc/dbri.c @@ -2099,12 +2099,6 @@ static int snd_dbri_hw_params(struct snd_pcm_substream *substream, if (ret != 0) 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. */ if (info->dvma_buffer == 0) { @@ -2151,7 +2145,7 @@ static int snd_dbri_hw_free(struct snd_pcm_substream *substream) info->pipe = -1; } - return snd_pcm_lib_free_pages(substream); + return 0; } static int snd_dbri_prepare(struct snd_pcm_substream *substream) @@ -2248,9 +2242,8 @@ static int snd_dbri_pcm(struct snd_card *card) pcm->info_flags = 0; strcpy(pcm->name, card->shortname); - snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_CONTINUOUS, - NULL, - 64 * 1024, 64 * 1024); + snd_pcm_set_managed_buffer_all(pcm, SNDRV_DMA_TYPE_CONTINUOUS, + NULL, 64 * 1024, 64 * 1024); return 0; } |