Lines Matching defs:loopback

34 MODULE_DESCRIPTION("A loopback soundcard");
47 MODULE_PARM_DESC(index, "Index value for loopback soundcard.");
49 MODULE_PARM_DESC(id, "ID string for loopback soundcard.");
51 MODULE_PARM_DESC(enable, "Enable this loopback soundcard.");
53 MODULE_PARM_DESC(pcm_substreams, "PCM substreams # (1-8) for loopback driver.");
70 * call in loopback->cable_lock
86 * call in loopback->cable_lock
131 struct loopback {
141 struct loopback *loopback;
198 return &dpcm->loopback->setup[dpcm->substream->number][device];
300 /* call in loopback->cable_lock */
311 * loopback->cable_lock is locked. Therefore no need to lock
368 card = cable->streams[SNDRV_PCM_STREAM_PLAYBACK]->loopback->card;
396 snd_ctl_notify(dpcm->loopback->card,
513 mutex_lock(&dpcm->loopback->cable_lock);
519 mutex_unlock(&dpcm->loopback->cable_lock);
743 "Period size (%lu frames) of loopback device is not corresponding to timer resolution (%lu nsec = %lu frames) of card timer %d,%d,%d. Use period size of %lu frames for loopback device.",
961 mutex_lock(&dpcm->loopback->cable_lock);
963 mutex_unlock(&dpcm->loopback->cable_lock);
983 mutex_lock(&dpcm->loopback->cable_lock);
986 mutex_unlock(&dpcm->loopback->cable_lock);
997 mutex_lock(&dpcm->loopback->cable_lock);
1000 mutex_unlock(&dpcm->loopback->cable_lock);
1013 mutex_lock(&dpcm->loopback->cable_lock);
1016 mutex_unlock(&dpcm->loopback->cable_lock);
1029 mutex_lock(&dpcm->loopback->cable_lock);
1032 mutex_unlock(&dpcm->loopback->cable_lock);
1041 struct loopback *loopback = substream->private_data;
1045 cable = loopback->cables[substream->number][dev];
1059 loopback->cables[substream->number][dev] = NULL;
1141 /* call in loopback->cable_lock */
1158 err = loopback_parse_timer_id(dpcm->loopback->timer_source, &tid);
1162 dpcm->loopback->timer_source, err);
1169 timeri = snd_timer_instance_new(dpcm->loopback->card->id);
1190 /* The mutex loopback->cable_lock is kept locked.
1233 struct loopback *loopback = substream->private_data;
1239 mutex_lock(&loopback->cable_lock);
1245 dpcm->loopback = loopback;
1248 cable = loopback->cables[substream->number][dev];
1257 if (loopback->timer_source)
1261 loopback->cables[substream->number][dev] = cable;
1327 mutex_unlock(&loopback->cable_lock);
1333 struct loopback *loopback = substream->private_data;
1339 mutex_lock(&loopback->cable_lock);
1341 mutex_unlock(&loopback->cable_lock);
1354 static int loopback_pcm_new(struct loopback *loopback,
1360 err = snd_pcm_new(loopback->card, "Loopback PCM", device,
1368 pcm->private_data = loopback;
1372 loopback->pcm[device] = pcm;
1390 struct loopback *loopback = snd_kcontrol_chip(kcontrol);
1392 mutex_lock(&loopback->cable_lock);
1394 loopback->setup[kcontrol->id.subdevice]
1396 mutex_unlock(&loopback->cable_lock);
1403 struct loopback *loopback = snd_kcontrol_chip(kcontrol);
1412 mutex_lock(&loopback->cable_lock);
1413 if (val != loopback->setup[kcontrol->id.subdevice]
1415 loopback->setup[kcontrol->id.subdevice]
1419 mutex_unlock(&loopback->cable_lock);
1426 struct loopback *loopback = snd_kcontrol_chip(kcontrol);
1428 mutex_lock(&loopback->cable_lock);
1430 loopback->setup[kcontrol->id.subdevice]
1432 mutex_unlock(&loopback->cable_lock);
1439 struct loopback *loopback = snd_kcontrol_chip(kcontrol);
1444 mutex_lock(&loopback->cable_lock);
1445 if (val != loopback->setup[kcontrol->id.subdevice]
1447 loopback->setup[kcontrol->id.subdevice]
1451 mutex_unlock(&loopback->cable_lock);
1458 struct loopback *loopback = snd_kcontrol_chip(kcontrol);
1463 mutex_lock(&loopback->cable_lock);
1464 cable = loopback->cables[kcontrol->id.subdevice][kcontrol->id.device ^ 1];
1470 mutex_unlock(&loopback->cable_lock);
1489 struct loopback *loopback = snd_kcontrol_chip(kcontrol);
1492 (__force int)loopback->setup[kcontrol->id.subdevice]
1511 struct loopback *loopback = snd_kcontrol_chip(kcontrol);
1513 mutex_lock(&loopback->cable_lock);
1515 loopback->setup[kcontrol->id.subdevice]
1517 mutex_unlock(&loopback->cable_lock);
1535 struct loopback *loopback = snd_kcontrol_chip(kcontrol);
1537 mutex_lock(&loopback->cable_lock);
1539 loopback->setup[kcontrol->id.subdevice]
1541 mutex_unlock(&loopback->cable_lock);
1556 struct loopback *loopback = snd_kcontrol_chip(kcontrol);
1559 mutex_lock(&loopback->cable_lock);
1560 access = loopback->setup[kcontrol->id.subdevice][kcontrol->id.device].access;
1564 mutex_unlock(&loopback->cable_lock);
1625 static int loopback_mixer_new(struct loopback *loopback, int notify)
1627 struct snd_card *card = loopback->card;
1635 pcm = loopback->pcm[dev];
1639 setup = &loopback->setup[substr][dev];
1649 loopback);
1708 struct loopback *loopback,
1712 struct loopback_cable *cable = loopback->cables[sub][num];
1729 struct loopback *loopback = entry->private_data;
1732 mutex_lock(&loopback->cable_lock);
1736 print_substream_info(buffer, loopback, sub, num);
1737 mutex_unlock(&loopback->cable_lock);
1740 static int loopback_cable_proc_new(struct loopback *loopback, int cidx)
1745 return snd_card_ro_proc_new(loopback->card, name, loopback,
1749 static void loopback_set_timer_source(struct loopback *loopback,
1752 if (loopback->timer_source) {
1753 devm_kfree(loopback->card->dev, loopback->timer_source);
1754 loopback->timer_source = NULL;
1757 loopback->timer_source = devm_kstrdup(loopback->card->dev,
1764 struct loopback *loopback = entry->private_data;
1766 mutex_lock(&loopback->cable_lock);
1768 loopback->timer_source ? loopback->timer_source : "");
1769 mutex_unlock(&loopback->cable_lock);
1775 struct loopback *loopback = entry->private_data;
1778 mutex_lock(&loopback->cable_lock);
1780 loopback_set_timer_source(loopback, strim(line));
1781 mutex_unlock(&loopback->cable_lock);
1784 static int loopback_timer_source_proc_new(struct loopback *loopback)
1786 return snd_card_rw_proc_new(loopback->card, "timer_source", loopback,
1794 struct loopback *loopback;
1799 sizeof(struct loopback), &card);
1802 loopback = card->private_data;
1809 loopback->card = card;
1810 loopback_set_timer_source(loopback, timer_source[dev]);
1812 mutex_init(&loopback->cable_lock);
1814 err = loopback_pcm_new(loopback, 0, pcm_substreams[dev]);
1817 err = loopback_pcm_new(loopback, 1, pcm_substreams[dev]);
1820 err = loopback_mixer_new(loopback, pcm_notify[dev] ? 1 : 0);
1823 loopback_cable_proc_new(loopback, 0);
1824 loopback_cable_proc_new(loopback, 1);
1825 loopback_timer_source_proc_new(loopback);
1900 printk(KERN_ERR "aloop: No loopback enabled\n");