Lines Matching refs:voices
228 voice = &chip->voices[idx]; in voice_alloc()
229 voice2 = pair ? &chip->voices[idx+1] : NULL; in voice_alloc()
346 if (ypcm->voices[1]) in snd_ymfpci_pcm_interrupt()
347 bank = &ypcm->voices[1]->bank[next_bank]; in snd_ymfpci_pcm_interrupt()
399 if (ypcm->voices[0] == NULL) { in snd_ymfpci_playback_trigger()
407 chip->ctrl_playback[ypcm->voices[0]->number + 1] = cpu_to_le32(ypcm->voices[0]->bank_addr); in snd_ymfpci_playback_trigger()
408 if (ypcm->voices[1] != NULL && !ypcm->use_441_slot) in snd_ymfpci_playback_trigger()
409 chip->ctrl_playback[ypcm->voices[1]->number + 1] = cpu_to_le32(ypcm->voices[1]->bank_addr); in snd_ymfpci_playback_trigger()
420 chip->ctrl_playback[ypcm->voices[0]->number + 1] = 0; in snd_ymfpci_playback_trigger()
421 if (ypcm->voices[1] != NULL && !ypcm->use_441_slot) in snd_ymfpci_playback_trigger()
422 chip->ctrl_playback[ypcm->voices[1]->number + 1] = 0; in snd_ymfpci_playback_trigger()
467 static int snd_ymfpci_pcm_voice_alloc(struct snd_ymfpci_pcm *ypcm, int voices) in snd_ymfpci_pcm_voice_alloc() argument
471 if (ypcm->voices[1] != NULL && voices < 2) { in snd_ymfpci_pcm_voice_alloc()
472 snd_ymfpci_voice_free(ypcm->chip, ypcm->voices[1]); in snd_ymfpci_pcm_voice_alloc()
473 ypcm->voices[1] = NULL; in snd_ymfpci_pcm_voice_alloc()
475 if (voices == 1 && ypcm->voices[0] != NULL) in snd_ymfpci_pcm_voice_alloc()
477 if (voices == 2 && ypcm->voices[0] != NULL && ypcm->voices[1] != NULL) in snd_ymfpci_pcm_voice_alloc()
479 if (voices > 1) { in snd_ymfpci_pcm_voice_alloc()
480 if (ypcm->voices[0] != NULL && ypcm->voices[1] == NULL) { in snd_ymfpci_pcm_voice_alloc()
481 snd_ymfpci_voice_free(ypcm->chip, ypcm->voices[0]); in snd_ymfpci_pcm_voice_alloc()
482 ypcm->voices[0] = NULL; in snd_ymfpci_pcm_voice_alloc()
485 err = snd_ymfpci_voice_alloc(ypcm->chip, YMFPCI_PCM, voices > 1, &ypcm->voices[0]); in snd_ymfpci_pcm_voice_alloc()
488 ypcm->voices[0]->ypcm = ypcm; in snd_ymfpci_pcm_voice_alloc()
489 ypcm->voices[0]->interrupt = snd_ymfpci_pcm_interrupt; in snd_ymfpci_pcm_voice_alloc()
490 if (voices > 1) { in snd_ymfpci_pcm_voice_alloc()
491 ypcm->voices[1] = &ypcm->chip->voices[ypcm->voices[0]->number + 1]; in snd_ymfpci_pcm_voice_alloc()
492 ypcm->voices[1]->ypcm = ypcm; in snd_ymfpci_pcm_voice_alloc()
501 struct snd_ymfpci_voice *voice = ypcm->voices[voiceidx]; in snd_ymfpci_pcm_init_voice()
665 if (ypcm->voices[1]) { in snd_ymfpci_playback_hw_free()
666 snd_ymfpci_voice_free(chip, ypcm->voices[1]); in snd_ymfpci_playback_hw_free()
667 ypcm->voices[1] = NULL; in snd_ymfpci_playback_hw_free()
669 if (ypcm->voices[0]) { in snd_ymfpci_playback_hw_free()
670 snd_ymfpci_voice_free(chip, ypcm->voices[0]); in snd_ymfpci_playback_hw_free()
671 ypcm->voices[0] = NULL; in snd_ymfpci_playback_hw_free()
764 struct snd_ymfpci_voice *voice = ypcm->voices[0]; in snd_ymfpci_playback_pointer()
809 voice = &chip->voices[nvoice]; in snd_ymfpci_interrupt()
2143 chip->voices[voice].number = voice; in snd_ymfpci_memalloc()
2144 chip->voices[voice].bank = (struct snd_ymfpci_playback_bank *)ptr; in snd_ymfpci_memalloc()
2145 chip->voices[voice].bank_addr = ptr_addr; in snd_ymfpci_memalloc()