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