Lines Matching refs:fp
45 struct audioformat *fp, *n; in free_substream() local
49 list_for_each_entry_safe(fp, n, &subs->fmt_list, list) { in free_substream()
50 kfree(fp->rate_table); in free_substream()
51 kfree(fp->chmap); in free_substream()
52 kfree(fp); in free_substream()
84 struct audioformat *fp) in snd_usb_init_substream() argument
102 list_add_tail(&fp->list, &subs->fmt_list); in snd_usb_init_substream()
103 subs->formats |= fp->formats; in snd_usb_init_substream()
105 subs->fmt_type = fp->fmt_type; in snd_usb_init_substream()
106 subs->ep_num = fp->endpoint; in snd_usb_init_substream()
107 if (fp->channels > subs->channels_max) in snd_usb_init_substream()
108 subs->channels_max = fp->channels; in snd_usb_init_substream()
127 struct audioformat *fp) in have_dup_chmap() argument
131 for (p = fp->list.prev; p != &subs->fmt_list; p = p->prev) { in have_dup_chmap()
135 !memcmp(prev->chmap, fp->chmap, sizeof(*fp->chmap))) in have_dup_chmap()
146 struct audioformat *fp; in usb_chmap_ctl_tlv() local
156 list_for_each_entry(fp, &subs->fmt_list, list) { in usb_chmap_ctl_tlv()
159 if (!fp->chmap) in usb_chmap_ctl_tlv()
161 if (have_dup_chmap(subs, fp)) in usb_chmap_ctl_tlv()
164 ch_bytes = fp->chmap->channels * 4; in usb_chmap_ctl_tlv()
171 for (i = 0; i < fp->chmap->channels; i++, dst++) { in usb_chmap_ctl_tlv()
172 if (put_user(fp->chmap->map[i], dst)) in usb_chmap_ctl_tlv()
207 struct audioformat *fp; in add_chmap() local
212 list_for_each_entry(fp, &subs->fmt_list, list) in add_chmap()
213 if (fp->chmap) in add_chmap()
326 struct audioformat *fp) in snd_usb_add_audio_stream() argument
334 if (as->fmt_type != fp->fmt_type) in snd_usb_add_audio_stream()
337 if (subs->ep_num == fp->endpoint) { in snd_usb_add_audio_stream()
338 list_add_tail(&fp->list, &subs->fmt_list); in snd_usb_add_audio_stream()
340 subs->formats |= fp->formats; in snd_usb_add_audio_stream()
346 if (as->fmt_type != fp->fmt_type) in snd_usb_add_audio_stream()
354 snd_usb_init_substream(as, stream, fp); in snd_usb_add_audio_stream()
364 as->fmt_type = fp->fmt_type; in snd_usb_add_audio_stream()
382 snd_usb_init_substream(as, stream, fp); in snd_usb_add_audio_stream()
491 struct audioformat *fp = NULL; in snd_usb_parse_audio_interface() local
656 fp && fp->altsetting == 1 && fp->channels == 1 && in snd_usb_parse_audio_interface()
657 fp->formats == SNDRV_PCM_FMTBIT_S16_LE && in snd_usb_parse_audio_interface()
660 fp->maxpacksize * 2) in snd_usb_parse_audio_interface()
663 fp = kzalloc(sizeof(*fp), GFP_KERNEL); in snd_usb_parse_audio_interface()
664 if (! fp) { in snd_usb_parse_audio_interface()
669 fp->iface = iface_no; in snd_usb_parse_audio_interface()
670 fp->altsetting = altno; in snd_usb_parse_audio_interface()
671 fp->altset_idx = i; in snd_usb_parse_audio_interface()
672 fp->endpoint = get_endpoint(alts, 0)->bEndpointAddress; in snd_usb_parse_audio_interface()
673 fp->ep_attr = get_endpoint(alts, 0)->bmAttributes; in snd_usb_parse_audio_interface()
674 fp->datainterval = snd_usb_parse_datainterval(chip, alts); in snd_usb_parse_audio_interface()
675 fp->protocol = protocol; in snd_usb_parse_audio_interface()
676 fp->maxpacksize = le16_to_cpu(get_endpoint(alts, 0)->wMaxPacketSize); in snd_usb_parse_audio_interface()
677 fp->channels = num_channels; in snd_usb_parse_audio_interface()
679 fp->maxpacksize = (((fp->maxpacksize >> 11) & 3) + 1) in snd_usb_parse_audio_interface()
680 * (fp->maxpacksize & 0x7ff); in snd_usb_parse_audio_interface()
681 fp->attributes = parse_uac_endpoint_attributes(chip, alts, protocol, iface_no); in snd_usb_parse_audio_interface()
682 fp->clock = clock; in snd_usb_parse_audio_interface()
683 INIT_LIST_HEAD(&fp->list); in snd_usb_parse_audio_interface()
692 fp->attributes &= ~UAC_EP_CS_ATTR_SAMPLE_RATE; in snd_usb_parse_audio_interface()
697 fp->attributes |= UAC_EP_CS_ATTR_SAMPLE_RATE; in snd_usb_parse_audio_interface()
708 fp->ep_attr &= ~USB_ENDPOINT_SYNCTYPE; in snd_usb_parse_audio_interface()
710 fp->ep_attr |= USB_ENDPOINT_SYNC_ADAPTIVE; in snd_usb_parse_audio_interface()
712 fp->ep_attr |= USB_ENDPOINT_SYNC_SYNC; in snd_usb_parse_audio_interface()
717 if (snd_usb_parse_audio_format(chip, fp, format, fmt, stream) < 0) { in snd_usb_parse_audio_interface()
718 kfree(fp->rate_table); in snd_usb_parse_audio_interface()
719 kfree(fp); in snd_usb_parse_audio_interface()
720 fp = NULL; in snd_usb_parse_audio_interface()
725 if (fp->channels != num_channels) in snd_usb_parse_audio_interface()
727 fp->chmap = convert_chmap(fp->channels, chconfig, protocol); in snd_usb_parse_audio_interface()
729 dev_dbg(&dev->dev, "%u:%d: add audio endpoint %#x\n", iface_no, altno, fp->endpoint); in snd_usb_parse_audio_interface()
730 err = snd_usb_add_audio_stream(chip, stream, fp); in snd_usb_parse_audio_interface()
732 list_del(&fp->list); /* unlink for avoiding double-free */ in snd_usb_parse_audio_interface()
733 kfree(fp->rate_table); in snd_usb_parse_audio_interface()
734 kfree(fp->chmap); in snd_usb_parse_audio_interface()
735 kfree(fp); in snd_usb_parse_audio_interface()
740 snd_usb_init_pitch(chip, iface_no, alts, fp); in snd_usb_parse_audio_interface()
741 snd_usb_init_sample_rate(chip, iface_no, alts, fp, fp->rate_max); in snd_usb_parse_audio_interface()