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->rate_list.list);
51 kfree(subs->str_pd);
52 snd_media_stream_delete(subs);
85 struct snd_usb_substream *subs = &as->substream[stream];
87 INIT_LIST_HEAD(&subs->fmt_list);
88 spin_lock_init(&subs->lock);
90 subs->stream = as;
91 subs->direction = stream;
92 subs->dev = as->chip->dev;
93 subs->txfr_quirk = as->chip->txfr_quirk;
94 subs->tx_length_quirk = as->chip->tx_length_quirk;
95 subs->speed = snd_usb_get_speed(subs->dev);
96 subs->pkt_offset_adj = 0;
97 subs->stream_offset_adj = 0;
101 list_add_tail(&fp->list, &subs->fmt_list);
102 subs->formats |= fp->formats;
103 subs->num_formats++;
104 subs->fmt_type = fp->fmt_type;
105 subs->ep_num = fp->endpoint;
106 if (fp->channels > subs->channels_max)
107 subs->channels_max = fp->channels;
110 subs->str_pd = pd;
112 snd_usb_power_domain_set(subs->stream->chip, pd,
116 snd_usb_preallocate_buffer(subs);
124 struct snd_usb_substream *subs = info->private_data;
127 uinfo->count = subs->channels_max;
134 static bool have_dup_chmap(struct snd_usb_substream *subs,
139 list_for_each_entry_continue_reverse(prev, &subs->fmt_list, list) {
151 struct snd_usb_substream *subs = info->private_data;
162 list_for_each_entry(fp, &subs->fmt_list, list) {
167 if (have_dup_chmap(subs, fp))
194 struct snd_usb_substream *subs = info->private_data;
198 if (subs->cur_audiofmt)
199 chmap = subs->cur_audiofmt->chmap;
204 for (; i < subs->channels_max; i++)
211 struct snd_usb_substream *subs)
218 list_for_each_entry(fp, &subs->fmt_list, list)
230 chmap->private_data = subs;
484 struct snd_usb_substream *subs;
491 subs = &as->substream[stream];
492 if (subs->ep_num == fp->endpoint) {
493 list_add_tail(&fp->list, &subs->fmt_list);
494 subs->num_formats++;
495 subs->formats |= fp->formats;
507 subs = &as->substream[stream];
508 if (subs->ep_num)
514 return add_chmap(as->pcm, stream, subs);