Lines Matching refs:loopback

132 struct loopback {  struct
142 struct loopback *loopback; argument
199 return &dpcm->loopback->setup[dpcm->substream->number][device]; in get_setup()
369 card = cable->streams[SNDRV_PCM_STREAM_PLAYBACK]->loopback->card; in loopback_check_format()
397 snd_ctl_notify(dpcm->loopback->card, in loopback_active_notify()
514 mutex_lock(&dpcm->loopback->cable_lock); in loopback_prepare()
520 mutex_unlock(&dpcm->loopback->cable_lock); in loopback_prepare()
961 mutex_lock(&dpcm->loopback->cable_lock); in loopback_hw_free()
963 mutex_unlock(&dpcm->loopback->cable_lock); in loopback_hw_free()
983 mutex_lock(&dpcm->loopback->cable_lock); in rule_format()
986 mutex_unlock(&dpcm->loopback->cable_lock); in rule_format()
997 mutex_lock(&dpcm->loopback->cable_lock); in rule_rate()
1000 mutex_unlock(&dpcm->loopback->cable_lock); in rule_rate()
1013 mutex_lock(&dpcm->loopback->cable_lock); in rule_channels()
1016 mutex_unlock(&dpcm->loopback->cable_lock); in rule_channels()
1029 mutex_lock(&dpcm->loopback->cable_lock); in rule_period_bytes()
1032 mutex_unlock(&dpcm->loopback->cable_lock); in rule_period_bytes()
1041 struct loopback *loopback = substream->private_data; in free_cable() local
1045 cable = loopback->cables[substream->number][dev]; in free_cable()
1059 loopback->cables[substream->number][dev] = NULL; in free_cable()
1160 err = loopback_parse_timer_id(dpcm->loopback->timer_source, &tid); in loopback_snd_timer_open()
1164 dpcm->loopback->timer_source, err); in loopback_snd_timer_open()
1171 timeri = snd_timer_instance_new(dpcm->loopback->card->id); in loopback_snd_timer_open()
1235 struct loopback *loopback = substream->private_data; in loopback_open() local
1241 mutex_lock(&loopback->cable_lock); in loopback_open()
1247 dpcm->loopback = loopback; in loopback_open()
1250 cable = loopback->cables[substream->number][dev]; in loopback_open()
1259 if (loopback->timer_source) in loopback_open()
1263 loopback->cables[substream->number][dev] = cable; in loopback_open()
1329 mutex_unlock(&loopback->cable_lock); in loopback_open()
1335 struct loopback *loopback = substream->private_data; in loopback_close() local
1341 mutex_lock(&loopback->cable_lock); in loopback_close()
1343 mutex_unlock(&loopback->cable_lock); in loopback_close()
1356 static int loopback_pcm_new(struct loopback *loopback, in loopback_pcm_new() argument
1362 err = snd_pcm_new(loopback->card, "Loopback PCM", device, in loopback_pcm_new()
1370 pcm->private_data = loopback; in loopback_pcm_new()
1374 loopback->pcm[device] = pcm; in loopback_pcm_new()
1392 struct loopback *loopback = snd_kcontrol_chip(kcontrol); in loopback_rate_shift_get() local
1394 mutex_lock(&loopback->cable_lock); in loopback_rate_shift_get()
1396 loopback->setup[kcontrol->id.subdevice] in loopback_rate_shift_get()
1398 mutex_unlock(&loopback->cable_lock); in loopback_rate_shift_get()
1405 struct loopback *loopback = snd_kcontrol_chip(kcontrol); in loopback_rate_shift_put() local
1414 mutex_lock(&loopback->cable_lock); in loopback_rate_shift_put()
1415 if (val != loopback->setup[kcontrol->id.subdevice] in loopback_rate_shift_put()
1417 loopback->setup[kcontrol->id.subdevice] in loopback_rate_shift_put()
1421 mutex_unlock(&loopback->cable_lock); in loopback_rate_shift_put()
1428 struct loopback *loopback = snd_kcontrol_chip(kcontrol); in loopback_notify_get() local
1430 mutex_lock(&loopback->cable_lock); in loopback_notify_get()
1432 loopback->setup[kcontrol->id.subdevice] in loopback_notify_get()
1434 mutex_unlock(&loopback->cable_lock); in loopback_notify_get()
1441 struct loopback *loopback = snd_kcontrol_chip(kcontrol); in loopback_notify_put() local
1446 mutex_lock(&loopback->cable_lock); in loopback_notify_put()
1447 if (val != loopback->setup[kcontrol->id.subdevice] in loopback_notify_put()
1449 loopback->setup[kcontrol->id.subdevice] in loopback_notify_put()
1453 mutex_unlock(&loopback->cable_lock); in loopback_notify_put()
1460 struct loopback *loopback = snd_kcontrol_chip(kcontrol); in loopback_active_get() local
1465 mutex_lock(&loopback->cable_lock); in loopback_active_get()
1466 cable = loopback->cables[kcontrol->id.subdevice][kcontrol->id.device ^ 1]; in loopback_active_get()
1472 mutex_unlock(&loopback->cable_lock); in loopback_active_get()
1491 struct loopback *loopback = snd_kcontrol_chip(kcontrol); in loopback_format_get() local
1494 (__force int)loopback->setup[kcontrol->id.subdevice] in loopback_format_get()
1513 struct loopback *loopback = snd_kcontrol_chip(kcontrol); in loopback_rate_get() local
1515 mutex_lock(&loopback->cable_lock); in loopback_rate_get()
1517 loopback->setup[kcontrol->id.subdevice] in loopback_rate_get()
1519 mutex_unlock(&loopback->cable_lock); in loopback_rate_get()
1537 struct loopback *loopback = snd_kcontrol_chip(kcontrol); in loopback_channels_get() local
1539 mutex_lock(&loopback->cable_lock); in loopback_channels_get()
1541 loopback->setup[kcontrol->id.subdevice] in loopback_channels_get()
1543 mutex_unlock(&loopback->cable_lock); in loopback_channels_get()
1558 struct loopback *loopback = snd_kcontrol_chip(kcontrol); in loopback_access_get() local
1561 mutex_lock(&loopback->cable_lock); in loopback_access_get()
1562 access = loopback->setup[kcontrol->id.subdevice][kcontrol->id.device].access; in loopback_access_get()
1566 mutex_unlock(&loopback->cable_lock); in loopback_access_get()
1627 static int loopback_mixer_new(struct loopback *loopback, int notify) in loopback_mixer_new() argument
1629 struct snd_card *card = loopback->card; in loopback_mixer_new()
1637 pcm = loopback->pcm[dev]; in loopback_mixer_new()
1641 setup = &loopback->setup[substr][dev]; in loopback_mixer_new()
1651 loopback); in loopback_mixer_new()
1710 struct loopback *loopback, in print_substream_info() argument
1714 struct loopback_cable *cable = loopback->cables[sub][num]; in print_substream_info()
1731 struct loopback *loopback = entry->private_data; in print_cable_info() local
1734 mutex_lock(&loopback->cable_lock); in print_cable_info()
1738 print_substream_info(buffer, loopback, sub, num); in print_cable_info()
1739 mutex_unlock(&loopback->cable_lock); in print_cable_info()
1742 static int loopback_cable_proc_new(struct loopback *loopback, int cidx) in loopback_cable_proc_new() argument
1747 return snd_card_ro_proc_new(loopback->card, name, loopback, in loopback_cable_proc_new()
1751 static void loopback_set_timer_source(struct loopback *loopback, in loopback_set_timer_source() argument
1754 if (loopback->timer_source) { in loopback_set_timer_source()
1755 devm_kfree(loopback->card->dev, loopback->timer_source); in loopback_set_timer_source()
1756 loopback->timer_source = NULL; in loopback_set_timer_source()
1759 loopback->timer_source = devm_kstrdup(loopback->card->dev, in loopback_set_timer_source()
1766 struct loopback *loopback = entry->private_data; in print_timer_source_info() local
1768 mutex_lock(&loopback->cable_lock); in print_timer_source_info()
1770 loopback->timer_source ? loopback->timer_source : ""); in print_timer_source_info()
1771 mutex_unlock(&loopback->cable_lock); in print_timer_source_info()
1777 struct loopback *loopback = entry->private_data; in change_timer_source_info() local
1780 mutex_lock(&loopback->cable_lock); in change_timer_source_info()
1782 loopback_set_timer_source(loopback, strim(line)); in change_timer_source_info()
1783 mutex_unlock(&loopback->cable_lock); in change_timer_source_info()
1786 static int loopback_timer_source_proc_new(struct loopback *loopback) in loopback_timer_source_proc_new() argument
1788 return snd_card_rw_proc_new(loopback->card, "timer_source", loopback, in loopback_timer_source_proc_new()
1796 struct loopback *loopback; in loopback_probe() local
1801 sizeof(struct loopback), &card); in loopback_probe()
1804 loopback = card->private_data; in loopback_probe()
1811 loopback->card = card; in loopback_probe()
1812 loopback_set_timer_source(loopback, timer_source[dev]); in loopback_probe()
1814 mutex_init(&loopback->cable_lock); in loopback_probe()
1816 err = loopback_pcm_new(loopback, 0, pcm_substreams[dev]); in loopback_probe()
1819 err = loopback_pcm_new(loopback, 1, pcm_substreams[dev]); in loopback_probe()
1822 err = loopback_mixer_new(loopback, pcm_notify[dev] ? 1 : 0); in loopback_probe()
1825 loopback_cable_proc_new(loopback, 0); in loopback_probe()
1826 loopback_cable_proc_new(loopback, 1); in loopback_probe()
1827 loopback_timer_source_proc_new(loopback); in loopback_probe()