1 /* 2 * Copyright (c) 2023 Huawei Device Co., Ltd. 3 * 4 * HDF is dual licensed: you can use it either under the terms of 5 * the GPL, or the BSD license, at your option. 6 * See the LICENSE file in the root of this repository for complete details. 7 */ 8 9 #ifndef AUDIO_USB_ENDPOINTS_H 10 #define AUDIO_USB_ENDPOINTS_H 11 12 #include <linux/gfp.h> 13 #include <linux/init.h> 14 #include <linux/ratelimit.h> 15 #include <linux/slab.h> 16 #include <linux/usb.h> 17 #include <linux/usb/audio.h> 18 19 #include "audio_host.h" 20 #include "audio_usb_linux.h" 21 22 int32_t AudioUsbEndpointStart(struct AudioUsbEndpoint *ep); 23 void AudioUsbEndpointStop(struct AudioUsbEndpoint *ep); 24 25 uint32_t AudioUsbEndpointNextPacketSize(struct AudioUsbEndpoint *ep); 26 uint32_t AudioUsbEndpointSlaveNextPacketSize(struct AudioUsbEndpoint *ep); 27 bool AudioUsbEndpointImplicitFeedbackSink(struct AudioUsbEndpoint *ep); 28 int32_t AudioUsbEndpointSetParams(struct AudioUsbEndpoint *ep, struct PcmInfo *pcmInfo, struct CircleBufInfo *bufInfo, 29 struct AudioUsbFormat *audioUsbFormat, struct AudioUsbEndpoint *syncEp); 30 int32_t AudioUSBPcmFormat(uint32_t bitWidth, bool isBigEndian, uint32_t *usbPcmFormat); 31 32 #endif