mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	ALSA: mips: 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 got dropped. Link: https://lore.kernel.org/r/20191209094943.14984-18-tiwai@suse.de Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
		
							parent
							
								
									15fbacfe3d
								
							
						
					
					
						commit
						ee88f4ebe5
					
				
					 2 changed files with 4 additions and 41 deletions
				
			
		| 
						 | 
				
			
			@ -505,23 +505,6 @@ static const struct snd_pcm_hardware hal2_pcm_hw = {
 | 
			
		|||
	.periods_max =      1024,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static int hal2_pcm_hw_params(struct snd_pcm_substream *substream,
 | 
			
		||||
			      struct snd_pcm_hw_params *params)
 | 
			
		||||
{
 | 
			
		||||
	int err;
 | 
			
		||||
 | 
			
		||||
	err = snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(params));
 | 
			
		||||
	if (err < 0)
 | 
			
		||||
		return err;
 | 
			
		||||
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int hal2_pcm_hw_free(struct snd_pcm_substream *substream)
 | 
			
		||||
{
 | 
			
		||||
	return snd_pcm_lib_free_pages(substream);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int hal2_playback_open(struct snd_pcm_substream *substream)
 | 
			
		||||
{
 | 
			
		||||
	struct snd_pcm_runtime *runtime = substream->runtime;
 | 
			
		||||
| 
						 | 
				
			
			@ -702,8 +685,6 @@ static const struct snd_pcm_ops hal2_playback_ops = {
 | 
			
		|||
	.open =        hal2_playback_open,
 | 
			
		||||
	.close =       hal2_playback_close,
 | 
			
		||||
	.ioctl =       snd_pcm_lib_ioctl,
 | 
			
		||||
	.hw_params =   hal2_pcm_hw_params,
 | 
			
		||||
	.hw_free =     hal2_pcm_hw_free,
 | 
			
		||||
	.prepare =     hal2_playback_prepare,
 | 
			
		||||
	.trigger =     hal2_playback_trigger,
 | 
			
		||||
	.pointer =     hal2_playback_pointer,
 | 
			
		||||
| 
						 | 
				
			
			@ -714,8 +695,6 @@ static const struct snd_pcm_ops hal2_capture_ops = {
 | 
			
		|||
	.open =        hal2_capture_open,
 | 
			
		||||
	.close =       hal2_capture_close,
 | 
			
		||||
	.ioctl =       snd_pcm_lib_ioctl,
 | 
			
		||||
	.hw_params =   hal2_pcm_hw_params,
 | 
			
		||||
	.hw_free =     hal2_pcm_hw_free,
 | 
			
		||||
	.prepare =     hal2_capture_prepare,
 | 
			
		||||
	.trigger =     hal2_capture_trigger,
 | 
			
		||||
	.pointer =     hal2_capture_pointer,
 | 
			
		||||
| 
						 | 
				
			
			@ -740,8 +719,8 @@ static int hal2_pcm_create(struct snd_hal2 *hal2)
 | 
			
		|||
			&hal2_playback_ops);
 | 
			
		||||
	snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE,
 | 
			
		||||
			&hal2_capture_ops);
 | 
			
		||||
	snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_CONTINUOUS,
 | 
			
		||||
					   NULL, 0, 1024 * 1024);
 | 
			
		||||
	snd_pcm_set_managed_buffer_all(pcm, SNDRV_DMA_TYPE_CONTINUOUS,
 | 
			
		||||
				       NULL, 0, 1024 * 1024);
 | 
			
		||||
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -577,20 +577,6 @@ static int snd_sgio2audio_pcm_close(struct snd_pcm_substream *substream)
 | 
			
		|||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* hw_params callback */
 | 
			
		||||
static int snd_sgio2audio_pcm_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));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* hw_free callback */
 | 
			
		||||
static int snd_sgio2audio_pcm_hw_free(struct snd_pcm_substream *substream)
 | 
			
		||||
{
 | 
			
		||||
	return snd_pcm_lib_free_pages(substream);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* prepare callback */
 | 
			
		||||
static int snd_sgio2audio_pcm_prepare(struct snd_pcm_substream *substream)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			@ -716,8 +702,7 @@ static int snd_sgio2audio_new_pcm(struct snd_sgio2audio *chip)
 | 
			
		|||
			&snd_sgio2audio_playback1_ops);
 | 
			
		||||
	snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE,
 | 
			
		||||
			&snd_sgio2audio_capture_ops);
 | 
			
		||||
	snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_VMALLOC,
 | 
			
		||||
					      NULL, 0, 0);
 | 
			
		||||
	snd_pcm_set_managed_buffer_all(pcm, SNDRV_DMA_TYPE_VMALLOC, NULL, 0, 0);
 | 
			
		||||
 | 
			
		||||
	/* create second  pcm device with one outputs and no input */
 | 
			
		||||
	err = snd_pcm_new(chip->card, "SGI O2 Audio", 1, 1, 0, &pcm);
 | 
			
		||||
| 
						 | 
				
			
			@ -730,8 +715,7 @@ static int snd_sgio2audio_new_pcm(struct snd_sgio2audio *chip)
 | 
			
		|||
	/* set operators */
 | 
			
		||||
	snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK,
 | 
			
		||||
			&snd_sgio2audio_playback2_ops);
 | 
			
		||||
	snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_VMALLOC,
 | 
			
		||||
					      NULL, 0, 0);
 | 
			
		||||
	snd_pcm_set_managed_buffer_all(pcm, SNDRV_DMA_TYPE_VMALLOC, NULL, 0, 0);
 | 
			
		||||
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue