Lines Matching refs:subs

42 static void free_substream(struct snd_usb_substream *subs)
46 if (!subs->num_formats)
48 list_for_each_entry_safe(fp, n, &subs->fmt_list, list)
50 kfree(subs->str_pd);
51 snd_media_stream_delete(subs);
84 struct snd_usb_substream *subs = &as->substream[stream];
86 INIT_LIST_HEAD(&subs->fmt_list);
87 spin_lock_init(&subs->lock);
89 subs->stream = as;
90 subs->direction = stream;
91 subs->dev = as->chip->dev;
92 subs->txfr_quirk = !!(as->chip->quirk_flags & QUIRK_FLAG_ALIGN_TRANSFER);
93 subs->tx_length_quirk = !!(as->chip->quirk_flags & QUIRK_FLAG_TX_LENGTH);
94 subs->speed = snd_usb_get_speed(subs->dev);
95 subs->pkt_offset_adj = 0;
96 subs->stream_offset_adj = 0;
100 list_add_tail(&fp->list, &subs->fmt_list);
101 subs->formats |= fp->formats;
102 subs->num_formats++;
103 subs->fmt_type = fp->fmt_type;
104 subs->ep_num = fp->endpoint;
105 if (fp->channels > subs->channels_max)
106 subs->channels_max = fp->channels;
109 subs->str_pd = pd;
111 snd_usb_power_domain_set(subs->stream->chip, pd,
115 snd_usb_preallocate_buffer(subs);
123 struct snd_usb_substream *subs = info->private_data;
126 uinfo->count = subs->channels_max;
133 static bool have_dup_chmap(struct snd_usb_substream *subs,
138 list_for_each_entry_continue_reverse(prev, &subs->fmt_list, list) {
150 struct snd_usb_substream *subs = info->private_data;
161 list_for_each_entry(fp, &subs->fmt_list, list) {
166 if (have_dup_chmap(subs, fp))
193 struct snd_usb_substream *subs = info->private_data;
197 if (subs->cur_audiofmt)
198 chmap = subs->cur_audiofmt->chmap;
203 for (; i < subs->channels_max; i++)
210 struct snd_usb_substream *subs)
217 list_for_each_entry(fp, &subs->fmt_list, list)
229 chmap->private_data = subs;
486 struct snd_usb_substream *subs;
493 subs = &as->substream[stream];
494 if (subs->ep_num == fp->endpoint) {
495 list_add_tail(&fp->list, &subs->fmt_list);
496 subs->num_formats++;
497 subs->formats |= fp->formats;
509 subs = &as->substream[stream];
510 if (subs->ep_num)
516 return add_chmap(as->pcm, stream, subs);