Lines Matching refs:fp

31 static void audioformat_free(struct audioformat *fp)  in audioformat_free()  argument
33 list_del(&fp->list); /* unlink for avoiding double-free */ in audioformat_free()
34 kfree(fp->rate_table); in audioformat_free()
35 kfree(fp->chmap); in audioformat_free()
36 kfree(fp); in audioformat_free()
44 struct audioformat *fp, *n; in free_substream() local
48 list_for_each_entry_safe(fp, n, &subs->fmt_list, list) in free_substream()
49 audioformat_free(fp); in free_substream()
81 struct audioformat *fp, in snd_usb_init_substream() argument
100 list_add_tail(&fp->list, &subs->fmt_list); in snd_usb_init_substream()
101 subs->formats |= fp->formats; in snd_usb_init_substream()
103 subs->fmt_type = fp->fmt_type; in snd_usb_init_substream()
104 subs->ep_num = fp->endpoint; in snd_usb_init_substream()
105 if (fp->channels > subs->channels_max) in snd_usb_init_substream()
106 subs->channels_max = fp->channels; in snd_usb_init_substream()
134 struct audioformat *fp) in have_dup_chmap() argument
136 struct audioformat *prev = fp; in have_dup_chmap()
140 !memcmp(prev->chmap, fp->chmap, sizeof(*fp->chmap))) in have_dup_chmap()
151 struct audioformat *fp; in usb_chmap_ctl_tlv() local
161 list_for_each_entry(fp, &subs->fmt_list, list) { in usb_chmap_ctl_tlv()
164 if (!fp->chmap) in usb_chmap_ctl_tlv()
166 if (have_dup_chmap(subs, fp)) in usb_chmap_ctl_tlv()
169 ch_bytes = fp->chmap->channels * 4; in usb_chmap_ctl_tlv()
176 for (i = 0; i < fp->chmap->channels; i++, dst++) { in usb_chmap_ctl_tlv()
177 if (put_user(fp->chmap->map[i], dst)) in usb_chmap_ctl_tlv()
212 struct audioformat *fp; in add_chmap() local
217 list_for_each_entry(fp, &subs->fmt_list, list) in add_chmap()
218 if (fp->chmap) in add_chmap()
481 struct audioformat *fp, in __snd_usb_add_audio_stream() argument
491 if (as->fmt_type != fp->fmt_type) in __snd_usb_add_audio_stream()
494 if (subs->ep_num == fp->endpoint) { in __snd_usb_add_audio_stream()
495 list_add_tail(&fp->list, &subs->fmt_list); in __snd_usb_add_audio_stream()
497 subs->formats |= fp->formats; in __snd_usb_add_audio_stream()
507 if (as->fmt_type != fp->fmt_type) in __snd_usb_add_audio_stream()
515 snd_usb_init_substream(as, stream, fp, pd); in __snd_usb_add_audio_stream()
525 as->fmt_type = fp->fmt_type; in __snd_usb_add_audio_stream()
543 snd_usb_init_substream(as, stream, fp, pd); in __snd_usb_add_audio_stream()
563 struct audioformat *fp) in snd_usb_add_audio_stream() argument
565 return __snd_usb_add_audio_stream(chip, stream, fp, NULL); in snd_usb_add_audio_stream()
570 struct audioformat *fp, in snd_usb_add_audio_stream_v3() argument
573 return __snd_usb_add_audio_stream(chip, stream, fp, pd); in snd_usb_add_audio_stream_v3()
683 struct audioformat *fp; in audio_format_alloc_init() local
685 fp = kzalloc(sizeof(*fp), GFP_KERNEL); in audio_format_alloc_init()
686 if (!fp) in audio_format_alloc_init()
689 fp->iface = iface_no; in audio_format_alloc_init()
690 fp->altsetting = altno; in audio_format_alloc_init()
691 fp->altset_idx = altset_idx; in audio_format_alloc_init()
692 fp->endpoint = get_endpoint(alts, 0)->bEndpointAddress; in audio_format_alloc_init()
693 fp->ep_attr = get_endpoint(alts, 0)->bmAttributes; in audio_format_alloc_init()
694 fp->datainterval = snd_usb_parse_datainterval(chip, alts); in audio_format_alloc_init()
695 fp->protocol = protocol; in audio_format_alloc_init()
696 fp->maxpacksize = le16_to_cpu(get_endpoint(alts, 0)->wMaxPacketSize); in audio_format_alloc_init()
697 fp->channels = num_channels; in audio_format_alloc_init()
699 fp->maxpacksize = (((fp->maxpacksize >> 11) & 3) + 1) in audio_format_alloc_init()
700 * (fp->maxpacksize & 0x7ff); in audio_format_alloc_init()
701 fp->clock = clock; in audio_format_alloc_init()
702 INIT_LIST_HEAD(&fp->list); in audio_format_alloc_init()
704 return fp; in audio_format_alloc_init()
716 struct audioformat *fp; in snd_usb_get_audioformat_uac12() local
833 fp = audio_format_alloc_init(chip, alts, protocol, iface_no, in snd_usb_get_audioformat_uac12()
835 if (!fp) in snd_usb_get_audioformat_uac12()
838 fp->attributes = parse_uac_endpoint_attributes(chip, alts, protocol, in snd_usb_get_audioformat_uac12()
842 snd_usb_audioformat_attributes_quirk(chip, fp, stream); in snd_usb_get_audioformat_uac12()
845 if (snd_usb_parse_audio_format(chip, fp, format, in snd_usb_get_audioformat_uac12()
847 audioformat_free(fp); in snd_usb_get_audioformat_uac12()
852 if (fp->channels != num_channels) in snd_usb_get_audioformat_uac12()
855 fp->chmap = convert_chmap(fp->channels, chconfig, protocol); in snd_usb_get_audioformat_uac12()
857 return fp; in snd_usb_get_audioformat_uac12()
878 struct audioformat *fp; in snd_usb_get_audioformat_uac3() local
1036 fp = audio_format_alloc_init(chip, alts, UAC_VERSION_3, iface_no, in snd_usb_get_audioformat_uac3()
1038 if (!fp) { in snd_usb_get_audioformat_uac3()
1043 fp->chmap = chmap; in snd_usb_get_audioformat_uac3()
1046 fp->attributes = 0; /* No attributes */ in snd_usb_get_audioformat_uac3()
1048 fp->fmt_type = UAC_FORMAT_TYPE_I; in snd_usb_get_audioformat_uac3()
1049 fp->formats = badd_formats; in snd_usb_get_audioformat_uac3()
1051 fp->nr_rates = 0; /* SNDRV_PCM_RATE_CONTINUOUS */ in snd_usb_get_audioformat_uac3()
1052 fp->rate_min = UAC3_BADD_SAMPLING_RATE; in snd_usb_get_audioformat_uac3()
1053 fp->rate_max = UAC3_BADD_SAMPLING_RATE; in snd_usb_get_audioformat_uac3()
1054 fp->rates = SNDRV_PCM_RATE_CONTINUOUS; in snd_usb_get_audioformat_uac3()
1058 audioformat_free(fp); in snd_usb_get_audioformat_uac3()
1067 fp->attributes = parse_uac_endpoint_attributes(chip, alts, in snd_usb_get_audioformat_uac3()
1075 if (snd_usb_parse_audio_format_v3(chip, fp, as, stream) < 0) { in snd_usb_get_audioformat_uac3()
1077 audioformat_free(fp); in snd_usb_get_audioformat_uac3()
1085 return fp; in snd_usb_get_audioformat_uac3()
1097 struct audioformat *fp = NULL; in __snd_usb_parse_audio_interface() local
1168 fp && fp->altsetting == 1 && fp->channels == 1 && in __snd_usb_parse_audio_interface()
1169 fp->formats == SNDRV_PCM_FMTBIT_S16_LE && in __snd_usb_parse_audio_interface()
1172 fp->maxpacksize * 2) in __snd_usb_parse_audio_interface()
1175 fp = snd_usb_get_audioformat_uac12(chip, alts, protocol, in __snd_usb_parse_audio_interface()
1181 fp = snd_usb_get_audioformat_uac3(chip, alts, &pd, in __snd_usb_parse_audio_interface()
1186 if (!fp) in __snd_usb_parse_audio_interface()
1188 else if (IS_ERR(fp)) in __snd_usb_parse_audio_interface()
1189 return PTR_ERR(fp); in __snd_usb_parse_audio_interface()
1191 if (fp->fmt_type != UAC_FORMAT_TYPE_I) in __snd_usb_parse_audio_interface()
1193 if ((fp->fmt_type == UAC_FORMAT_TYPE_I) == non_pcm) { in __snd_usb_parse_audio_interface()
1194 audioformat_free(fp); in __snd_usb_parse_audio_interface()
1196 fp = NULL; in __snd_usb_parse_audio_interface()
1201 snd_usb_audioformat_set_sync_ep(chip, fp); in __snd_usb_parse_audio_interface()
1203 dev_dbg(&dev->dev, "%u:%d: add audio endpoint %#x\n", iface_no, altno, fp->endpoint); in __snd_usb_parse_audio_interface()
1205 err = snd_usb_add_audio_stream_v3(chip, stream, fp, pd); in __snd_usb_parse_audio_interface()
1207 err = snd_usb_add_audio_stream(chip, stream, fp); in __snd_usb_parse_audio_interface()
1210 audioformat_free(fp); in __snd_usb_parse_audio_interface()
1216 err = snd_usb_add_endpoint(chip, fp->endpoint, in __snd_usb_parse_audio_interface()
1221 if (fp->sync_ep) { in __snd_usb_parse_audio_interface()
1222 err = snd_usb_add_endpoint(chip, fp->sync_ep, in __snd_usb_parse_audio_interface()
1223 fp->implicit_fb ? in __snd_usb_parse_audio_interface()
1239 snd_usb_init_pitch(chip, fp); in __snd_usb_parse_audio_interface()
1240 snd_usb_init_sample_rate(chip, fp, fp->rate_max); in __snd_usb_parse_audio_interface()