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
101 list_add_tail(&fp->list, &subs->fmt_list); in snd_usb_init_substream()
102 subs->formats |= fp->formats; in snd_usb_init_substream()
104 subs->fmt_type = fp->fmt_type; in snd_usb_init_substream()
105 subs->ep_num = fp->endpoint; in snd_usb_init_substream()
106 if (fp->channels > subs->channels_max) in snd_usb_init_substream()
107 subs->channels_max = fp->channels; in snd_usb_init_substream()
126 struct audioformat *fp) in have_dup_chmap() argument
130 for (p = fp->list.prev; p != &subs->fmt_list; p = p->prev) { in have_dup_chmap()
134 !memcmp(prev->chmap, fp->chmap, sizeof(*fp->chmap))) in have_dup_chmap()
145 struct audioformat *fp; in usb_chmap_ctl_tlv() local
155 list_for_each_entry(fp, &subs->fmt_list, list) { in usb_chmap_ctl_tlv()
158 if (!fp->chmap) in usb_chmap_ctl_tlv()
160 if (have_dup_chmap(subs, fp)) in usb_chmap_ctl_tlv()
163 ch_bytes = fp->chmap->channels * 4; in usb_chmap_ctl_tlv()
170 for (i = 0; i < fp->chmap->channels; i++, dst++) { in usb_chmap_ctl_tlv()
171 if (put_user(fp->chmap->map[i], dst)) in usb_chmap_ctl_tlv()
206 struct audioformat *fp; in add_chmap() local
211 list_for_each_entry(fp, &subs->fmt_list, list) in add_chmap()
212 if (fp->chmap) in add_chmap()
325 struct audioformat *fp) in snd_usb_add_audio_stream() argument
333 if (as->fmt_type != fp->fmt_type) in snd_usb_add_audio_stream()
336 if (subs->ep_num == fp->endpoint) { in snd_usb_add_audio_stream()
337 list_add_tail(&fp->list, &subs->fmt_list); in snd_usb_add_audio_stream()
339 subs->formats |= fp->formats; in snd_usb_add_audio_stream()
345 if (as->fmt_type != fp->fmt_type) in snd_usb_add_audio_stream()
353 snd_usb_init_substream(as, stream, fp); in snd_usb_add_audio_stream()
363 as->fmt_type = fp->fmt_type; in snd_usb_add_audio_stream()
381 snd_usb_init_substream(as, stream, fp); in snd_usb_add_audio_stream()
490 struct audioformat *fp = NULL; in snd_usb_parse_audio_interface() local
655 fp && fp->altsetting == 1 && fp->channels == 1 && in snd_usb_parse_audio_interface()
656 fp->formats == SNDRV_PCM_FMTBIT_S16_LE && in snd_usb_parse_audio_interface()
659 fp->maxpacksize * 2) in snd_usb_parse_audio_interface()
662 fp = kzalloc(sizeof(*fp), GFP_KERNEL); in snd_usb_parse_audio_interface()
663 if (! fp) { in snd_usb_parse_audio_interface()
668 fp->iface = iface_no; in snd_usb_parse_audio_interface()
669 fp->altsetting = altno; in snd_usb_parse_audio_interface()
670 fp->altset_idx = i; in snd_usb_parse_audio_interface()
671 fp->endpoint = get_endpoint(alts, 0)->bEndpointAddress; in snd_usb_parse_audio_interface()
672 fp->ep_attr = get_endpoint(alts, 0)->bmAttributes; in snd_usb_parse_audio_interface()
673 fp->datainterval = snd_usb_parse_datainterval(chip, alts); in snd_usb_parse_audio_interface()
674 fp->protocol = protocol; in snd_usb_parse_audio_interface()
675 fp->maxpacksize = le16_to_cpu(get_endpoint(alts, 0)->wMaxPacketSize); in snd_usb_parse_audio_interface()
676 fp->channels = num_channels; in snd_usb_parse_audio_interface()
678 fp->maxpacksize = (((fp->maxpacksize >> 11) & 3) + 1) in snd_usb_parse_audio_interface()
679 * (fp->maxpacksize & 0x7ff); in snd_usb_parse_audio_interface()
680 fp->attributes = parse_uac_endpoint_attributes(chip, alts, protocol, iface_no); in snd_usb_parse_audio_interface()
681 fp->clock = clock; in snd_usb_parse_audio_interface()
682 INIT_LIST_HEAD(&fp->list); in snd_usb_parse_audio_interface()
691 fp->attributes &= ~UAC_EP_CS_ATTR_SAMPLE_RATE; in snd_usb_parse_audio_interface()
696 fp->attributes |= UAC_EP_CS_ATTR_SAMPLE_RATE; in snd_usb_parse_audio_interface()
707 fp->ep_attr &= ~USB_ENDPOINT_SYNCTYPE; in snd_usb_parse_audio_interface()
709 fp->ep_attr |= USB_ENDPOINT_SYNC_ADAPTIVE; in snd_usb_parse_audio_interface()
711 fp->ep_attr |= USB_ENDPOINT_SYNC_SYNC; in snd_usb_parse_audio_interface()
716 if (snd_usb_parse_audio_format(chip, fp, format, fmt, stream) < 0) { in snd_usb_parse_audio_interface()
717 kfree(fp->rate_table); in snd_usb_parse_audio_interface()
718 kfree(fp); in snd_usb_parse_audio_interface()
719 fp = NULL; in snd_usb_parse_audio_interface()
724 if (fp->channels != num_channels) in snd_usb_parse_audio_interface()
726 fp->chmap = convert_chmap(fp->channels, chconfig, protocol); in snd_usb_parse_audio_interface()
728 dev_dbg(&dev->dev, "%u:%d: add audio endpoint %#x\n", iface_no, altno, fp->endpoint); in snd_usb_parse_audio_interface()
729 err = snd_usb_add_audio_stream(chip, stream, fp); in snd_usb_parse_audio_interface()
731 list_del(&fp->list); /* unlink for avoiding double-free */ in snd_usb_parse_audio_interface()
732 kfree(fp->rate_table); in snd_usb_parse_audio_interface()
733 kfree(fp->chmap); in snd_usb_parse_audio_interface()
734 kfree(fp); in snd_usb_parse_audio_interface()
739 snd_usb_init_pitch(chip, iface_no, alts, fp); in snd_usb_parse_audio_interface()
740 snd_usb_init_sample_rate(chip, iface_no, alts, fp, fp->rate_max); in snd_usb_parse_audio_interface()