Lines Matching refs:cable

106 	struct loopback_cable *cable;  member
198 static int loopback_check_format(struct loopback_cable *cable, int stream) in loopback_check_format() argument
205 if (cable->valid != CABLE_VALID_BOTH) { in loopback_check_format()
210 runtime = cable->streams[SNDRV_PCM_STREAM_PLAYBACK]-> in loopback_check_format()
212 cruntime = cable->streams[SNDRV_PCM_STREAM_CAPTURE]-> in loopback_check_format()
222 snd_pcm_stop(cable->streams[SNDRV_PCM_STREAM_CAPTURE]-> in loopback_check_format()
225 runtime = cable->streams[SNDRV_PCM_STREAM_PLAYBACK]-> in loopback_check_format()
227 setup = get_setup(cable->streams[SNDRV_PCM_STREAM_PLAYBACK]); in loopback_check_format()
228 card = cable->streams[SNDRV_PCM_STREAM_PLAYBACK]->loopback->card; in loopback_check_format()
259 struct loopback_cable *cable = dpcm->cable; in loopback_trigger() local
264 err = loopback_check_format(cable, substream->stream); in loopback_trigger()
270 spin_lock(&cable->lock); in loopback_trigger()
271 cable->running |= stream; in loopback_trigger()
272 cable->pause &= ~stream; in loopback_trigger()
274 spin_unlock(&cable->lock); in loopback_trigger()
279 spin_lock(&cable->lock); in loopback_trigger()
280 cable->running &= ~stream; in loopback_trigger()
281 cable->pause &= ~stream; in loopback_trigger()
283 spin_unlock(&cable->lock); in loopback_trigger()
289 spin_lock(&cable->lock); in loopback_trigger()
290 cable->pause |= stream; in loopback_trigger()
292 spin_unlock(&cable->lock); in loopback_trigger()
296 spin_lock(&cable->lock); in loopback_trigger()
298 cable->pause &= ~stream; in loopback_trigger()
300 spin_unlock(&cable->lock); in loopback_trigger()
318 dst_runtime->hw = dpcm->cable->hw; in params_change_substream()
325 struct loopback_cable *cable = dpcm->cable; in params_change() local
327 cable->hw.formats = pcm_format_to_bits(runtime->format); in params_change()
328 cable->hw.rate_min = runtime->rate; in params_change()
329 cable->hw.rate_max = runtime->rate; in params_change()
330 cable->hw.channels_min = runtime->channels; in params_change()
331 cable->hw.channels_max = runtime->channels; in params_change()
332 params_change_substream(cable->streams[SNDRV_PCM_STREAM_PLAYBACK], in params_change()
334 params_change_substream(cable->streams[SNDRV_PCM_STREAM_CAPTURE], in params_change()
342 struct loopback_cable *cable = dpcm->cable; in loopback_prepare() local
367 if (!(cable->valid & ~(1 << substream->stream)) || in loopback_prepare()
371 cable->valid |= 1 << substream->stream; in loopback_prepare()
479 static unsigned int loopback_pos_update(struct loopback_cable *cable) in loopback_pos_update() argument
482 cable->streams[SNDRV_PCM_STREAM_PLAYBACK]; in loopback_pos_update()
484 cable->streams[SNDRV_PCM_STREAM_CAPTURE]; in loopback_pos_update()
488 running = cable->running ^ cable->pause; in loopback_pos_update()
537 spin_lock_irqsave(&dpcm->cable->lock, flags); in loopback_timer_function()
538 if (loopback_pos_update(dpcm->cable) & (1 << dpcm->substream->stream)) { in loopback_timer_function()
542 spin_unlock_irqrestore(&dpcm->cable->lock, flags); in loopback_timer_function()
548 spin_unlock_irqrestore(&dpcm->cable->lock, flags); in loopback_timer_function()
557 spin_lock(&dpcm->cable->lock); in loopback_pointer()
558 loopback_pos_update(dpcm->cable); in loopback_pointer()
560 spin_unlock(&dpcm->cable->lock); in loopback_pointer()
604 struct loopback_cable *cable = dpcm->cable; in loopback_hw_free() local
607 cable->valid &= ~(1 << substream->stream); in loopback_hw_free()
666 struct loopback_cable *cable; in loopback_open() local
681 cable = loopback->cables[substream->number][dev]; in loopback_open()
682 if (!cable) { in loopback_open()
683 cable = kzalloc(sizeof(*cable), GFP_KERNEL); in loopback_open()
684 if (!cable) { in loopback_open()
689 spin_lock_init(&cable->lock); in loopback_open()
690 cable->hw = loopback_pcm_hardware; in loopback_open()
691 loopback->cables[substream->number][dev] = cable; in loopback_open()
693 dpcm->cable = cable; in loopback_open()
694 cable->streams[substream->stream] = dpcm; in loopback_open()
725 runtime->hw = cable->hw; in loopback_open()
735 struct loopback_cable *cable; in loopback_close() local
740 cable = loopback->cables[substream->number][dev]; in loopback_close()
741 if (cable->streams[!substream->stream]) { in loopback_close()
743 cable->streams[substream->stream] = NULL; in loopback_close()
747 kfree(cable); in loopback_close()
877 struct loopback_cable *cable = loopback->cables in loopback_active_get() local
881 if (cable != NULL) in loopback_active_get()
882 val = (cable->running & (1 << SNDRV_PCM_STREAM_PLAYBACK)) ? in loopback_active_get()
1088 struct loopback_cable *cable = loopback->cables[sub][num]; in print_substream_info() local
1091 if (cable == NULL) { in print_substream_info()
1095 snd_iprintf(buffer, " valid: %u\n", cable->valid); in print_substream_info()
1096 snd_iprintf(buffer, " running: %u\n", cable->running); in print_substream_info()
1097 snd_iprintf(buffer, " pause: %u\n", cable->pause); in print_substream_info()
1098 print_dpcm_info(buffer, cable->streams[0], "Playback"); in print_substream_info()
1099 print_dpcm_info(buffer, cable->streams[1], "Capture"); in print_substream_info()