Lines Matching refs:dummy

63 MODULE_PARM_DESC(index, "Index value for dummy soundcard.");
65 MODULE_PARM_DESC(id, "ID string for dummy soundcard.");
67 MODULE_PARM_DESC(enable, "Enable this dummy soundcard.");
71 MODULE_PARM_DESC(pcm_devs, "PCM devices # (0-4) for dummy driver.");
73 MODULE_PARM_DESC(pcm_substreams, "PCM substreams # (1-128) for dummy driver.");
75 //MODULE_PARM_DESC(midi_devs, "MIDI devices # (0-2) for dummy driver.");
77 MODULE_PARM_DESC(mixer_volume_level_min, "Minimum mixer volume level for dummy driver. Default: -50");
79 MODULE_PARM_DESC(mixer_volume_level_max, "Maximum mixer volume level for dummy driver. Default: 100");
544 struct snd_dummy *dummy = snd_pcm_substream_chip(substream);
545 const struct dummy_model *model = dummy->model;
561 runtime->hw = dummy->pcm_hw;
594 * dummy buffer handling
668 static int snd_card_dummy_pcm(struct snd_dummy *dummy, int device,
675 err = snd_pcm_new(dummy->card, "Dummy PCM", device,
679 dummy->pcm = pcm;
686 pcm->private_data = dummy;
724 struct snd_dummy *dummy = snd_kcontrol_chip(kcontrol);
727 spin_lock_irq(&dummy->mixer_lock);
728 ucontrol->value.integer.value[0] = dummy->mixer_volume[addr][0];
729 ucontrol->value.integer.value[1] = dummy->mixer_volume[addr][1];
730 spin_unlock_irq(&dummy->mixer_lock);
737 struct snd_dummy *dummy = snd_kcontrol_chip(kcontrol);
751 spin_lock_irq(&dummy->mixer_lock);
752 change = dummy->mixer_volume[addr][0] != left ||
753 dummy->mixer_volume[addr][1] != right;
754 dummy->mixer_volume[addr][0] = left;
755 dummy->mixer_volume[addr][1] = right;
756 spin_unlock_irq(&dummy->mixer_lock);
773 struct snd_dummy *dummy = snd_kcontrol_chip(kcontrol);
776 spin_lock_irq(&dummy->mixer_lock);
777 ucontrol->value.integer.value[0] = dummy->capture_source[addr][0];
778 ucontrol->value.integer.value[1] = dummy->capture_source[addr][1];
779 spin_unlock_irq(&dummy->mixer_lock);
785 struct snd_dummy *dummy = snd_kcontrol_chip(kcontrol);
791 spin_lock_irq(&dummy->mixer_lock);
792 change = dummy->capture_source[addr][0] != left &&
793 dummy->capture_source[addr][1] != right;
794 dummy->capture_source[addr][0] = left;
795 dummy->capture_source[addr][1] = right;
796 spin_unlock_irq(&dummy->mixer_lock);
811 struct snd_dummy *dummy = snd_kcontrol_chip(kcontrol);
813 value->value.enumerated.item[0] = dummy->iobox;
820 struct snd_dummy *dummy = snd_kcontrol_chip(kcontrol);
826 changed = value->value.enumerated.item[0] != dummy->iobox;
828 dummy->iobox = value->value.enumerated.item[0];
830 if (dummy->iobox) {
831 dummy->cd_volume_ctl->vd[0].access &=
833 dummy->cd_switch_ctl->vd[0].access &=
836 dummy->cd_volume_ctl->vd[0].access |=
838 dummy->cd_switch_ctl->vd[0].access |=
842 snd_ctl_notify(dummy->card, SNDRV_CTL_EVENT_MASK_INFO,
843 &dummy->cd_volume_ctl->id);
844 snd_ctl_notify(dummy->card, SNDRV_CTL_EVENT_MASK_INFO,
845 &dummy->cd_switch_ctl->id);
871 static int snd_card_dummy_new_mixer(struct snd_dummy *dummy)
873 struct snd_card *card = dummy->card;
878 spin_lock_init(&dummy->mixer_lock);
880 dummy->iobox = 1;
883 kcontrol = snd_ctl_new1(&snd_dummy_controls[idx], dummy);
888 dummy->cd_volume_ctl = kcontrol;
890 dummy->cd_switch_ctl = kcontrol;
900 static void print_formats(struct snd_dummy *dummy,
906 if (dummy->pcm_hw.formats & pcm_format_to_bits(i))
911 static void print_rates(struct snd_dummy *dummy,
920 if (dummy->pcm_hw.rates & SNDRV_PCM_RATE_CONTINUOUS)
922 if (dummy->pcm_hw.rates & SNDRV_PCM_RATE_KNOT)
925 if (dummy->pcm_hw.rates & (1 << i))
929 #define get_dummy_int_ptr(dummy, ofs) \
930 (unsigned int *)((char *)&((dummy)->pcm_hw) + (ofs))
931 #define get_dummy_ll_ptr(dummy, ofs) \
932 (unsigned long long *)((char *)&((dummy)->pcm_hw) + (ofs))
963 struct snd_dummy *dummy = entry->private_data;
970 *get_dummy_int_ptr(dummy, fields[i].offset));
973 *get_dummy_ll_ptr(dummy, fields[i].offset));
975 print_formats(dummy, buffer);
977 print_rates(dummy, buffer);
985 struct snd_dummy *dummy = entry->private_data;
1005 *get_dummy_int_ptr(dummy, fields[i].offset) = val;
1007 *get_dummy_ll_ptr(dummy, fields[i].offset) = val;
1023 struct snd_dummy *dummy;
1032 dummy = card->private_data;
1033 dummy->card = card;
1037 "snd-dummy: Using model '%s' for card %i\n",
1039 m = dummy->model = *mdl;
1048 err = snd_card_dummy_pcm(dummy, idx, pcm_substreams[dev]);
1053 dummy->pcm_hw = dummy_pcm_hardware;
1056 dummy->pcm_hw.formats = m->formats;
1058 dummy->pcm_hw.buffer_bytes_max = m->buffer_bytes_max;
1060 dummy->pcm_hw.period_bytes_min = m->period_bytes_min;
1062 dummy->pcm_hw.period_bytes_max = m->period_bytes_max;
1064 dummy->pcm_hw.periods_min = m->periods_min;
1066 dummy->pcm_hw.periods_max = m->periods_max;
1068 dummy->pcm_hw.rates = m->rates;
1070 dummy->pcm_hw.rate_min = m->rate_min;
1072 dummy->pcm_hw.rate_max = m->rate_max;
1074 dummy->pcm_hw.channels_min = m->channels_min;
1076 dummy->pcm_hw.channels_max = m->channels_max;
1080 pr_warn("snd-dummy: Invalid mixer volume level: min=%d, max=%d. Fall back to default value.\n",
1085 err = snd_card_dummy_new_mixer(dummy);
1092 dummy_proc_init(dummy);