summaryrefslogtreecommitdiff
path: root/sound/pci/emu10k1/voice.c
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@gmx.de>2023-05-18 16:09:46 +0200
committerTakashi Iwai <tiwai@suse.de>2023-05-20 10:16:03 +0200
commitb4fea2d3f25b5f3ad6b230f91e61151165f6d023 (patch)
treeb5c35eb6caccd21ac5788be734c198d16fa7b39a /sound/pci/emu10k1/voice.c
parentbdb3b567b84e321c51786aba2a05ec23bb90bfdf (diff)
ALSA: emu10k1: make snd_emu10k1_voice_alloc() assign voices' epcm
The voice allocator clearly knows about the field (it resets it), so it's more consistent (and leads to less duplicated code) to have the constructor take it as a parameter. Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de> Link: https://lore.kernel.org/r/20230518140947.3725394-7-oswald.buddenhagen@gmx.de Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/emu10k1/voice.c')
-rw-r--r--sound/pci/emu10k1/voice.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/sound/pci/emu10k1/voice.c b/sound/pci/emu10k1/voice.c
index 25e78fc188bf..6c58e3bd14f7 100644
--- a/sound/pci/emu10k1/voice.c
+++ b/sound/pci/emu10k1/voice.c
@@ -32,7 +32,7 @@
*/
static int voice_alloc(struct snd_emu10k1 *emu, int type, int number,
- struct snd_emu10k1_voice **rvoice)
+ struct snd_emu10k1_pcm *epcm, struct snd_emu10k1_voice **rvoice)
{
struct snd_emu10k1_voice *voice;
int i, j, k, first_voice, last_voice, skip;
@@ -79,6 +79,7 @@ static int voice_alloc(struct snd_emu10k1 *emu, int type, int number,
voice->number, idx-first_voice+1, number);
*/
voice->use = type;
+ voice->epcm = epcm;
}
*rvoice = &emu->voices[first_voice];
return 0;
@@ -95,7 +96,7 @@ static void voice_free(struct snd_emu10k1 *emu,
}
int snd_emu10k1_voice_alloc(struct snd_emu10k1 *emu, int type, int number,
- struct snd_emu10k1_voice **rvoice)
+ struct snd_emu10k1_pcm *epcm, struct snd_emu10k1_voice **rvoice)
{
unsigned long flags;
int result;
@@ -107,7 +108,7 @@ int snd_emu10k1_voice_alloc(struct snd_emu10k1 *emu, int type, int number,
spin_lock_irqsave(&emu->voice_lock, flags);
for (;;) {
- result = voice_alloc(emu, type, number, rvoice);
+ result = voice_alloc(emu, type, number, epcm, rvoice);
if (result == 0 || type == EMU10K1_SYNTH)
break;