• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/sound/pci/ymfpci/

Lines Matching defs:ypcm

289 		pvoice->ypcm->use_441_slot = 0;
292 pvoice->ypcm = NULL;
304 struct snd_ymfpci_pcm *ypcm;
307 if ((ypcm = voice->ypcm) == NULL)
309 if (ypcm->substream == NULL)
312 if (ypcm->running) {
314 if (pos < ypcm->last_pos)
315 delta = pos + (ypcm->buffer_size - ypcm->last_pos);
317 delta = pos - ypcm->last_pos;
318 ypcm->period_pos += delta;
319 ypcm->last_pos = pos;
320 if (ypcm->period_pos >= ypcm->period_size) {
327 ypcm->period_pos %= ypcm->period_size;
329 snd_pcm_period_elapsed(ypcm->substream);
333 if (unlikely(ypcm->update_pcm_vol)) {
334 unsigned int subs = ypcm->substream->number;
342 if (ypcm->output_rear)
344 if (ypcm->voices[1])
345 bank = &ypcm->voices[1]->bank[next_bank];
348 if (ypcm->output_rear)
350 ypcm->update_pcm_vol--;
359 struct snd_ymfpci_pcm *ypcm = runtime->private_data;
360 struct snd_ymfpci *chip = ypcm->chip;
364 if (ypcm->running) {
365 pos = le32_to_cpu(chip->bank_capture[ypcm->capture_bank_number][chip->active_bank]->start) >> ypcm->shift;
366 if (pos < ypcm->last_pos)
367 delta = pos + (ypcm->buffer_size - ypcm->last_pos);
369 delta = pos - ypcm->last_pos;
370 ypcm->period_pos += delta;
371 ypcm->last_pos = pos;
372 if (ypcm->period_pos >= ypcm->period_size) {
373 ypcm->period_pos %= ypcm->period_size;
392 struct snd_ymfpci_pcm *ypcm = substream->runtime->private_data;
397 if (ypcm->voices[0] == NULL) {
405 chip->ctrl_playback[ypcm->voices[0]->number + 1] = cpu_to_le32(ypcm->voices[0]->bank_addr);
406 if (ypcm->voices[1] != NULL && !ypcm->use_441_slot)
407 chip->ctrl_playback[ypcm->voices[1]->number + 1] = cpu_to_le32(ypcm->voices[1]->bank_addr);
408 ypcm->running = 1;
411 if (substream->pcm == chip->pcm && !ypcm->use_441_slot) {
418 chip->ctrl_playback[ypcm->voices[0]->number + 1] = 0;
419 if (ypcm->voices[1] != NULL && !ypcm->use_441_slot)
420 chip->ctrl_playback[ypcm->voices[1]->number + 1] = 0;
421 ypcm->running = 0;
437 struct snd_ymfpci_pcm *ypcm = substream->runtime->private_data;
446 tmp = snd_ymfpci_readl(chip, YDSXGR_MAPOFREC) | (1 << ypcm->capture_bank_number);
448 ypcm->running = 1;
453 tmp = snd_ymfpci_readl(chip, YDSXGR_MAPOFREC) & ~(1 << ypcm->capture_bank_number);
455 ypcm->running = 0;
465 static int snd_ymfpci_pcm_voice_alloc(struct snd_ymfpci_pcm *ypcm, int voices)
469 if (ypcm->voices[1] != NULL && voices < 2) {
470 snd_ymfpci_voice_free(ypcm->chip, ypcm->voices[1]);
471 ypcm->voices[1] = NULL;
473 if (voices == 1 && ypcm->voices[0] != NULL)
475 if (voices == 2 && ypcm->voices[0] != NULL && ypcm->voices[1] != NULL)
478 if (ypcm->voices[0] != NULL && ypcm->voices[1] == NULL) {
479 snd_ymfpci_voice_free(ypcm->chip, ypcm->voices[0]);
480 ypcm->voices[0] = NULL;
483 err = snd_ymfpci_voice_alloc(ypcm->chip, YMFPCI_PCM, voices > 1, &ypcm->voices[0]);
486 ypcm->voices[0]->ypcm = ypcm;
487 ypcm->voices[0]->interrupt = snd_ymfpci_pcm_interrupt;
489 ypcm->voices[1] = &ypcm->chip->voices[ypcm->voices[0]->number + 1];
490 ypcm->voices[1]->ypcm = ypcm;
495 static void snd_ymfpci_pcm_init_voice(struct snd_ymfpci_pcm *ypcm, unsigned int voiceidx,
499 struct snd_ymfpci_voice *voice = ypcm->voices[voiceidx];
520 vol_left = cpu_to_le32(ypcm->chip->pcm_mixer
521 [ypcm->substream->number].left << 15);
522 vol_right = cpu_to_le32(ypcm->chip->pcm_mixer
523 [ypcm->substream->number].right << 15);
528 spin_lock_irqsave(&ypcm->chip->voice_lock, flags);
532 else if (ypcm->chip->device_id == PCI_DEVICE_ID_YAMAHA_754 &&
534 voiceidx == 0 && (ypcm->chip->src441_used == -1 ||
535 ypcm->chip->src441_used == voice->number)) {
536 ypcm->chip->src441_used = voice->number;
537 ypcm->use_441_slot = 1;
540 if (ypcm->chip->src441_used == voice->number &&
542 ypcm->chip->src441_used = -1;
543 ypcm->use_441_slot = 0;
547 spin_unlock_irqrestore(&ypcm->chip->voice_lock, flags);
553 bank->loop_end = cpu_to_le32(ypcm->buffer_size);
562 if (ypcm->output_front) {
572 if (ypcm->output_rear) {
573 if (!ypcm->swap_rear) {
640 struct snd_ymfpci_pcm *ypcm = runtime->private_data;
645 if ((err = snd_ymfpci_pcm_voice_alloc(ypcm, params_channels(hw_params))) < 0)
654 struct snd_ymfpci_pcm *ypcm;
658 ypcm = runtime->private_data;
663 if (ypcm->voices[1]) {
664 snd_ymfpci_voice_free(chip, ypcm->voices[1]);
665 ypcm->voices[1] = NULL;
667 if (ypcm->voices[0]) {
668 snd_ymfpci_voice_free(chip, ypcm->voices[0]);
669 ypcm->voices[0] = NULL;
678 struct snd_ymfpci_pcm *ypcm = runtime->private_data;
682 ypcm->period_size = runtime->period_size;
683 ypcm->buffer_size = runtime->buffer_size;
684 ypcm->period_pos = 0;
685 ypcm->last_pos = 0;
687 snd_ymfpci_pcm_init_voice(ypcm, nvoice, runtime,
690 if (substream->pcm == chip->pcm && !ypcm->use_441_slot) {
717 struct snd_ymfpci_pcm *ypcm = runtime->private_data;
722 ypcm->period_size = runtime->period_size;
723 ypcm->buffer_size = runtime->buffer_size;
724 ypcm->period_pos = 0;
725 ypcm->last_pos = 0;
726 ypcm->shift = 0;
731 ypcm->shift++;
736 ypcm->shift++;
737 switch (ypcm->capture_bank_number) {
748 bank = chip->bank_capture[ypcm->capture_bank_number][nbank];
750 bank->loop_end = cpu_to_le32(ypcm->buffer_size << ypcm->shift);
761 struct snd_ymfpci_pcm *ypcm = runtime->private_data;
762 struct snd_ymfpci_voice *voice = ypcm->voices[0];
764 if (!(ypcm->running && voice))
773 struct snd_ymfpci_pcm *ypcm = runtime->private_data;
775 if (!ypcm->running)
777 return le32_to_cpu(chip->bank_capture[ypcm->capture_bank_number][chip->active_bank]->start) >> ypcm->shift;
893 struct snd_ymfpci_pcm *ypcm;
895 ypcm = kzalloc(sizeof(*ypcm), GFP_KERNEL);
896 if (ypcm == NULL)
898 ypcm->chip = chip;
899 ypcm->type = PLAYBACK_VOICE;
900 ypcm->substream = substream;
902 runtime->private_data = ypcm;
937 struct snd_ymfpci_pcm *ypcm;
942 ypcm = runtime->private_data;
943 ypcm->output_front = 1;
944 ypcm->output_rear = chip->mode_dup4ch ? 1 : 0;
945 ypcm->swap_rear = 0;
947 if (ypcm->output_rear) {
959 struct snd_ymfpci_pcm *ypcm;
964 ypcm = runtime->private_data;
965 ypcm->output_front = 0;
966 ypcm->output_rear = 1;
967 ypcm->swap_rear = 1;
987 struct snd_ymfpci_pcm *ypcm;
992 ypcm = runtime->private_data;
993 ypcm->output_front = 0;
994 ypcm->output_rear = 1;
995 ypcm->swap_rear = 0;
1008 struct snd_ymfpci_pcm *ypcm;
1010 ypcm = kzalloc(sizeof(*ypcm), GFP_KERNEL);
1011 if (ypcm == NULL)
1013 ypcm->chip = chip;
1014 ypcm->type = capture_bank_number + CAPTURE_REC;
1015 ypcm->substream = substream;
1016 ypcm->capture_bank_number = capture_bank_number;
1020 runtime->private_data = ypcm;
1044 struct snd_ymfpci_pcm *ypcm = substream->runtime->private_data;
1047 if (ypcm->output_rear && chip->rear_opened > 0) {
1089 struct snd_ymfpci_pcm *ypcm = runtime->private_data;
1091 if (ypcm != NULL) {
1092 chip->capture_substream[ypcm->capture_bank_number] = NULL;
1752 struct snd_ymfpci_pcm *ypcm = substream->runtime->private_data;
1753 if (!ypcm->use_441_slot)
1754 ypcm->update_pcm_vol = 2;