Commit 8ee0c758 authored by Takashi Iwai's avatar Takashi Iwai
Browse files

ALSA: aaci: Use managed buffer allocation

Clean up the driver with the new managed buffer allocation API.
The superfluous snd_pcm_lib_malloc_pages() and
snd_pcm_lib_free_pages() calls are dropped, and the if block is
flattened accordingly.

Link: https://lore.kernel.org/r/20191209094943.14984-3-tiwai@suse.de


Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 9b2433a9
Loading
Loading
Loading
Loading
+15 −25
Original line number Diff line number Diff line
@@ -483,11 +483,6 @@ static int aaci_pcm_hw_free(struct snd_pcm_substream *substream)
		snd_ac97_pcm_close(aacirun->pcm);
	aacirun->pcm_open = 0;

	/*
	 * Clear out the DMA and any allocated buffers.
	 */
	snd_pcm_lib_free_pages(substream);

	return 0;
}

@@ -502,6 +497,7 @@ static int aaci_pcm_hw_params(struct snd_pcm_substream *substream,
			      struct snd_pcm_hw_params *params)
{
	struct aaci_runtime *aacirun = substream->runtime->private_data;
	struct aaci *aaci = substream->private_data;
	unsigned int channels = params_channels(params);
	unsigned int rate = params_rate(params);
	int dbl = rate > 48000;
@@ -517,11 +513,6 @@ static int aaci_pcm_hw_params(struct snd_pcm_substream *substream,
	if (dbl && channels != 2)
		return -EINVAL;

	err = snd_pcm_lib_malloc_pages(substream,
				       params_buffer_bytes(params));
	if (err >= 0) {
		struct aaci *aaci = substream->private_data;

	err = snd_ac97_pcm_open(aacirun->pcm, rate, channels,
				aacirun->pcm->r[dbl].slots);

@@ -535,7 +526,6 @@ static int aaci_pcm_hw_params(struct snd_pcm_substream *substream,
	 * in compact mode, the FIFO is half the size.
	 */
	aacirun->fifo_bytes = aaci->fifo_depth * 4 / 2;
	}

	return err;
}
@@ -937,7 +927,7 @@ static int aaci_init_pcm(struct aaci *aaci)

		snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &aaci_playback_ops);
		snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &aaci_capture_ops);
		snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV,
		snd_pcm_set_managed_buffer_all(pcm, SNDRV_DMA_TYPE_DEV,
					       aaci->card->dev,
					       0, 64 * 1024);
	}