Lines Matching refs:loopback
82 struct loopback { struct
91 struct loopback *loopback; argument
142 return &dpcm->loopback->setup[dpcm->substream->number][device]; in get_setup()
220 card = cable->streams[SNDRV_PCM_STREAM_PLAYBACK]->loopback->card; in loopback_check_format()
242 snd_ctl_notify(dpcm->loopback->card, in loopback_active_notify()
347 mutex_lock(&dpcm->loopback->cable_lock); in loopback_prepare()
353 mutex_unlock(&dpcm->loopback->cable_lock); in loopback_prepare()
589 mutex_lock(&dpcm->loopback->cable_lock); in loopback_hw_free()
591 mutex_unlock(&dpcm->loopback->cable_lock); in loopback_hw_free()
611 mutex_lock(&dpcm->loopback->cable_lock); in rule_format()
614 mutex_unlock(&dpcm->loopback->cable_lock); in rule_format()
625 mutex_lock(&dpcm->loopback->cable_lock); in rule_rate()
628 mutex_unlock(&dpcm->loopback->cable_lock); in rule_rate()
641 mutex_lock(&dpcm->loopback->cable_lock); in rule_channels()
644 mutex_unlock(&dpcm->loopback->cable_lock); in rule_channels()
652 struct loopback *loopback = substream->private_data; in free_cable() local
656 cable = loopback->cables[substream->number][dev]; in free_cable()
666 loopback->cables[substream->number][dev] = NULL; in free_cable()
674 struct loopback *loopback = substream->private_data; in loopback_open() local
680 mutex_lock(&loopback->cable_lock); in loopback_open()
686 dpcm->loopback = loopback; in loopback_open()
690 cable = loopback->cables[substream->number][dev]; in loopback_open()
699 loopback->cables[substream->number][dev] = cable; in loopback_open()
743 mutex_unlock(&loopback->cable_lock); in loopback_open()
749 struct loopback *loopback = substream->private_data; in loopback_close() local
753 mutex_lock(&loopback->cable_lock); in loopback_close()
755 mutex_unlock(&loopback->cable_lock); in loopback_close()
771 static int loopback_pcm_new(struct loopback *loopback, in loopback_pcm_new() argument
777 err = snd_pcm_new(loopback->card, "Loopback PCM", device, in loopback_pcm_new()
784 pcm->private_data = loopback; in loopback_pcm_new()
788 loopback->pcm[device] = pcm; in loopback_pcm_new()
806 struct loopback *loopback = snd_kcontrol_chip(kcontrol); in loopback_rate_shift_get() local
808 mutex_lock(&loopback->cable_lock); in loopback_rate_shift_get()
810 loopback->setup[kcontrol->id.subdevice] in loopback_rate_shift_get()
812 mutex_unlock(&loopback->cable_lock); in loopback_rate_shift_get()
819 struct loopback *loopback = snd_kcontrol_chip(kcontrol); in loopback_rate_shift_put() local
828 mutex_lock(&loopback->cable_lock); in loopback_rate_shift_put()
829 if (val != loopback->setup[kcontrol->id.subdevice] in loopback_rate_shift_put()
831 loopback->setup[kcontrol->id.subdevice] in loopback_rate_shift_put()
835 mutex_unlock(&loopback->cable_lock); in loopback_rate_shift_put()
842 struct loopback *loopback = snd_kcontrol_chip(kcontrol); in loopback_notify_get() local
844 mutex_lock(&loopback->cable_lock); in loopback_notify_get()
846 loopback->setup[kcontrol->id.subdevice] in loopback_notify_get()
848 mutex_unlock(&loopback->cable_lock); in loopback_notify_get()
855 struct loopback *loopback = snd_kcontrol_chip(kcontrol); in loopback_notify_put() local
860 mutex_lock(&loopback->cable_lock); in loopback_notify_put()
861 if (val != loopback->setup[kcontrol->id.subdevice] in loopback_notify_put()
863 loopback->setup[kcontrol->id.subdevice] in loopback_notify_put()
867 mutex_unlock(&loopback->cable_lock); in loopback_notify_put()
874 struct loopback *loopback = snd_kcontrol_chip(kcontrol); in loopback_active_get() local
879 mutex_lock(&loopback->cable_lock); in loopback_active_get()
880 cable = loopback->cables[kcontrol->id.subdevice][kcontrol->id.device ^ 1]; in loopback_active_get()
886 mutex_unlock(&loopback->cable_lock); in loopback_active_get()
905 struct loopback *loopback = snd_kcontrol_chip(kcontrol); in loopback_format_get() local
908 loopback->setup[kcontrol->id.subdevice] in loopback_format_get()
927 struct loopback *loopback = snd_kcontrol_chip(kcontrol); in loopback_rate_get() local
929 mutex_lock(&loopback->cable_lock); in loopback_rate_get()
931 loopback->setup[kcontrol->id.subdevice] in loopback_rate_get()
933 mutex_unlock(&loopback->cable_lock); in loopback_rate_get()
951 struct loopback *loopback = snd_kcontrol_chip(kcontrol); in loopback_channels_get() local
953 mutex_lock(&loopback->cable_lock); in loopback_channels_get()
955 loopback->setup[kcontrol->id.subdevice] in loopback_channels_get()
957 mutex_unlock(&loopback->cable_lock); in loopback_channels_get()
1010 static int loopback_mixer_new(struct loopback *loopback, int notify) in loopback_mixer_new() argument
1012 struct snd_card *card = loopback->card; in loopback_mixer_new()
1020 pcm = loopback->pcm[dev]; in loopback_mixer_new()
1024 setup = &loopback->setup[substr][dev]; in loopback_mixer_new()
1033 loopback); in loopback_mixer_new()
1089 struct loopback *loopback, in print_substream_info() argument
1093 struct loopback_cable *cable = loopback->cables[sub][num]; in print_substream_info()
1110 struct loopback *loopback = entry->private_data; in print_cable_info() local
1113 mutex_lock(&loopback->cable_lock); in print_cable_info()
1117 print_substream_info(buffer, loopback, sub, num); in print_cable_info()
1118 mutex_unlock(&loopback->cable_lock); in print_cable_info()
1121 static int loopback_proc_new(struct loopback *loopback, int cidx) in loopback_proc_new() argument
1126 return snd_card_ro_proc_new(loopback->card, name, loopback, in loopback_proc_new()
1133 struct loopback *loopback; in loopback_probe() local
1138 sizeof(struct loopback), &card); in loopback_probe()
1141 loopback = card->private_data; in loopback_probe()
1148 loopback->card = card; in loopback_probe()
1149 mutex_init(&loopback->cable_lock); in loopback_probe()
1151 err = loopback_pcm_new(loopback, 0, pcm_substreams[dev]); in loopback_probe()
1154 err = loopback_pcm_new(loopback, 1, pcm_substreams[dev]); in loopback_probe()
1157 err = loopback_mixer_new(loopback, pcm_notify[dev] ? 1 : 0); in loopback_probe()
1160 loopback_proc_new(loopback, 0); in loopback_probe()
1161 loopback_proc_new(loopback, 1); in loopback_probe()