Lines Matching refs:fp
47 struct audioformat *fp, *n; in free_substream() local
51 list_for_each_entry_safe(fp, n, &subs->fmt_list, list) { in free_substream()
52 kfree(fp->rate_table); in free_substream()
53 kfree(fp->chmap); in free_substream()
54 kfree(fp); in free_substream()
87 struct audioformat *fp, in snd_usb_init_substream() argument
105 list_add_tail(&fp->list, &subs->fmt_list); in snd_usb_init_substream()
106 subs->formats |= fp->formats; in snd_usb_init_substream()
108 subs->fmt_type = fp->fmt_type; in snd_usb_init_substream()
109 subs->ep_num = fp->endpoint; in snd_usb_init_substream()
110 if (fp->channels > subs->channels_max) in snd_usb_init_substream()
111 subs->channels_max = fp->channels; in snd_usb_init_substream()
139 struct audioformat *fp) in have_dup_chmap() argument
141 struct audioformat *prev = fp; in have_dup_chmap()
145 !memcmp(prev->chmap, fp->chmap, sizeof(*fp->chmap))) in have_dup_chmap()
156 struct audioformat *fp; in usb_chmap_ctl_tlv() local
166 list_for_each_entry(fp, &subs->fmt_list, list) { in usb_chmap_ctl_tlv()
169 if (!fp->chmap) in usb_chmap_ctl_tlv()
171 if (have_dup_chmap(subs, fp)) in usb_chmap_ctl_tlv()
174 ch_bytes = fp->chmap->channels * 4; in usb_chmap_ctl_tlv()
181 for (i = 0; i < fp->chmap->channels; i++, dst++) { in usb_chmap_ctl_tlv()
182 if (put_user(fp->chmap->map[i], dst)) in usb_chmap_ctl_tlv()
217 struct audioformat *fp; in add_chmap() local
222 list_for_each_entry(fp, &subs->fmt_list, list) in add_chmap()
223 if (fp->chmap) in add_chmap()
483 struct audioformat *fp, in __snd_usb_add_audio_stream() argument
493 if (as->fmt_type != fp->fmt_type) in __snd_usb_add_audio_stream()
496 if (subs->ep_num == fp->endpoint) { in __snd_usb_add_audio_stream()
497 list_add_tail(&fp->list, &subs->fmt_list); in __snd_usb_add_audio_stream()
499 subs->formats |= fp->formats; in __snd_usb_add_audio_stream()
505 if (as->fmt_type != fp->fmt_type) in __snd_usb_add_audio_stream()
513 snd_usb_init_substream(as, stream, fp, pd); in __snd_usb_add_audio_stream()
523 as->fmt_type = fp->fmt_type; in __snd_usb_add_audio_stream()
541 snd_usb_init_substream(as, stream, fp, pd); in __snd_usb_add_audio_stream()
561 struct audioformat *fp) in snd_usb_add_audio_stream() argument
563 return __snd_usb_add_audio_stream(chip, stream, fp, NULL); in snd_usb_add_audio_stream()
568 struct audioformat *fp, in snd_usb_add_audio_stream_v3() argument
571 return __snd_usb_add_audio_stream(chip, stream, fp, pd); in snd_usb_add_audio_stream_v3()
671 struct audioformat *fp; in audio_format_alloc_init() local
673 fp = kzalloc(sizeof(*fp), GFP_KERNEL); in audio_format_alloc_init()
674 if (!fp) in audio_format_alloc_init()
677 fp->iface = iface_no; in audio_format_alloc_init()
678 fp->altsetting = altno; in audio_format_alloc_init()
679 fp->altset_idx = altset_idx; in audio_format_alloc_init()
680 fp->endpoint = get_endpoint(alts, 0)->bEndpointAddress; in audio_format_alloc_init()
681 fp->ep_attr = get_endpoint(alts, 0)->bmAttributes; in audio_format_alloc_init()
682 fp->datainterval = snd_usb_parse_datainterval(chip, alts); in audio_format_alloc_init()
683 fp->protocol = protocol; in audio_format_alloc_init()
684 fp->maxpacksize = le16_to_cpu(get_endpoint(alts, 0)->wMaxPacketSize); in audio_format_alloc_init()
685 fp->channels = num_channels; in audio_format_alloc_init()
687 fp->maxpacksize = (((fp->maxpacksize >> 11) & 3) + 1) in audio_format_alloc_init()
688 * (fp->maxpacksize & 0x7ff); in audio_format_alloc_init()
689 fp->clock = clock; in audio_format_alloc_init()
690 INIT_LIST_HEAD(&fp->list); in audio_format_alloc_init()
692 return fp; in audio_format_alloc_init()
704 struct audioformat *fp; in snd_usb_get_audioformat_uac12() local
818 fp = audio_format_alloc_init(chip, alts, protocol, iface_no, in snd_usb_get_audioformat_uac12()
820 if (!fp) in snd_usb_get_audioformat_uac12()
823 fp->attributes = parse_uac_endpoint_attributes(chip, alts, protocol, in snd_usb_get_audioformat_uac12()
827 snd_usb_audioformat_attributes_quirk(chip, fp, stream); in snd_usb_get_audioformat_uac12()
830 if (snd_usb_parse_audio_format(chip, fp, format, in snd_usb_get_audioformat_uac12()
832 kfree(fp->rate_table); in snd_usb_get_audioformat_uac12()
833 kfree(fp); in snd_usb_get_audioformat_uac12()
838 if (fp->channels != num_channels) in snd_usb_get_audioformat_uac12()
841 fp->chmap = convert_chmap(fp->channels, chconfig, protocol); in snd_usb_get_audioformat_uac12()
843 return fp; in snd_usb_get_audioformat_uac12()
864 struct audioformat *fp; in snd_usb_get_audioformat_uac3() local
1020 fp = audio_format_alloc_init(chip, alts, UAC_VERSION_3, iface_no, in snd_usb_get_audioformat_uac3()
1022 if (!fp) { in snd_usb_get_audioformat_uac3()
1027 fp->chmap = chmap; in snd_usb_get_audioformat_uac3()
1030 fp->attributes = 0; /* No attributes */ in snd_usb_get_audioformat_uac3()
1032 fp->fmt_type = UAC_FORMAT_TYPE_I; in snd_usb_get_audioformat_uac3()
1033 fp->formats = badd_formats; in snd_usb_get_audioformat_uac3()
1035 fp->nr_rates = 0; /* SNDRV_PCM_RATE_CONTINUOUS */ in snd_usb_get_audioformat_uac3()
1036 fp->rate_min = UAC3_BADD_SAMPLING_RATE; in snd_usb_get_audioformat_uac3()
1037 fp->rate_max = UAC3_BADD_SAMPLING_RATE; in snd_usb_get_audioformat_uac3()
1038 fp->rates = SNDRV_PCM_RATE_CONTINUOUS; in snd_usb_get_audioformat_uac3()
1042 kfree(fp->rate_table); in snd_usb_get_audioformat_uac3()
1043 kfree(fp); in snd_usb_get_audioformat_uac3()
1052 fp->attributes = parse_uac_endpoint_attributes(chip, alts, in snd_usb_get_audioformat_uac3()
1060 if (snd_usb_parse_audio_format_v3(chip, fp, as, stream) < 0) { in snd_usb_get_audioformat_uac3()
1062 kfree(fp->chmap); in snd_usb_get_audioformat_uac3()
1063 kfree(fp->rate_table); in snd_usb_get_audioformat_uac3()
1064 kfree(fp); in snd_usb_get_audioformat_uac3()
1072 return fp; in snd_usb_get_audioformat_uac3()
1082 struct audioformat *fp = NULL; in snd_usb_parse_audio_interface() local
1153 fp && fp->altsetting == 1 && fp->channels == 1 && in snd_usb_parse_audio_interface()
1154 fp->formats == SNDRV_PCM_FMTBIT_S16_LE && in snd_usb_parse_audio_interface()
1157 fp->maxpacksize * 2) in snd_usb_parse_audio_interface()
1160 fp = snd_usb_get_audioformat_uac12(chip, alts, protocol, in snd_usb_parse_audio_interface()
1166 fp = snd_usb_get_audioformat_uac3(chip, alts, &pd, in snd_usb_parse_audio_interface()
1171 if (!fp) in snd_usb_parse_audio_interface()
1173 else if (IS_ERR(fp)) in snd_usb_parse_audio_interface()
1174 return PTR_ERR(fp); in snd_usb_parse_audio_interface()
1176 dev_dbg(&dev->dev, "%u:%d: add audio endpoint %#x\n", iface_no, altno, fp->endpoint); in snd_usb_parse_audio_interface()
1178 err = snd_usb_add_audio_stream_v3(chip, stream, fp, pd); in snd_usb_parse_audio_interface()
1180 err = snd_usb_add_audio_stream(chip, stream, fp); in snd_usb_parse_audio_interface()
1183 list_del(&fp->list); /* unlink for avoiding double-free */ in snd_usb_parse_audio_interface()
1185 kfree(fp->rate_table); in snd_usb_parse_audio_interface()
1186 kfree(fp->chmap); in snd_usb_parse_audio_interface()
1187 kfree(fp); in snd_usb_parse_audio_interface()
1192 snd_usb_init_pitch(chip, iface_no, alts, fp); in snd_usb_parse_audio_interface()
1193 snd_usb_init_sample_rate(chip, iface_no, alts, fp, fp->rate_max); in snd_usb_parse_audio_interface()