1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef __USBAUDIO_ENDPOINT_H 3*4882a593Smuzhiyun #define __USBAUDIO_ENDPOINT_H 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #define SND_USB_ENDPOINT_TYPE_DATA 0 6*4882a593Smuzhiyun #define SND_USB_ENDPOINT_TYPE_SYNC 1 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun struct snd_usb_endpoint *snd_usb_add_endpoint(struct snd_usb_audio *chip, 9*4882a593Smuzhiyun struct usb_host_interface *alts, 10*4882a593Smuzhiyun int ep_num, int direction, int type); 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun int snd_usb_endpoint_set_params(struct snd_usb_endpoint *ep, 13*4882a593Smuzhiyun snd_pcm_format_t pcm_format, 14*4882a593Smuzhiyun unsigned int channels, 15*4882a593Smuzhiyun unsigned int period_bytes, 16*4882a593Smuzhiyun unsigned int period_frames, 17*4882a593Smuzhiyun unsigned int buffer_periods, 18*4882a593Smuzhiyun unsigned int rate, 19*4882a593Smuzhiyun struct audioformat *fmt, 20*4882a593Smuzhiyun struct snd_usb_endpoint *sync_ep); 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun int snd_usb_endpoint_start(struct snd_usb_endpoint *ep); 23*4882a593Smuzhiyun void snd_usb_endpoint_stop(struct snd_usb_endpoint *ep); 24*4882a593Smuzhiyun void snd_usb_endpoint_sync_pending_stop(struct snd_usb_endpoint *ep); 25*4882a593Smuzhiyun int snd_usb_endpoint_activate(struct snd_usb_endpoint *ep); 26*4882a593Smuzhiyun void snd_usb_endpoint_deactivate(struct snd_usb_endpoint *ep); 27*4882a593Smuzhiyun void snd_usb_endpoint_release(struct snd_usb_endpoint *ep); 28*4882a593Smuzhiyun void snd_usb_endpoint_free(struct snd_usb_endpoint *ep); 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun int snd_usb_endpoint_implicit_feedback_sink(struct snd_usb_endpoint *ep); 31*4882a593Smuzhiyun int snd_usb_endpoint_slave_next_packet_size(struct snd_usb_endpoint *ep); 32*4882a593Smuzhiyun int snd_usb_endpoint_next_packet_size(struct snd_usb_endpoint *ep); 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun void snd_usb_handle_sync_urb(struct snd_usb_endpoint *ep, 35*4882a593Smuzhiyun struct snd_usb_endpoint *sender, 36*4882a593Smuzhiyun const struct urb *urb); 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun #endif /* __USBAUDIO_ENDPOINT_H */ 39