License cleanup: add SPDX GPL-2.0 license identifier to files with no license
[linux-block.git] / drivers / usb / gadget / function / g_zero.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * This header declares the utility functions used by "Gadget Zero", plus
4  * interfaces to its two single-configuration function drivers.
5  */
6
7 #ifndef __G_ZERO_H
8 #define __G_ZERO_H
9
10 #define GZERO_BULK_BUFLEN       4096
11 #define GZERO_QLEN              32
12 #define GZERO_ISOC_INTERVAL     4
13 #define GZERO_ISOC_MAXPACKET    1024
14 #define GZERO_SS_BULK_QLEN      1
15 #define GZERO_SS_ISO_QLEN       8
16
17 struct usb_zero_options {
18         unsigned pattern;
19         unsigned isoc_interval;
20         unsigned isoc_maxpacket;
21         unsigned isoc_mult;
22         unsigned isoc_maxburst;
23         unsigned bulk_buflen;
24         unsigned qlen;
25         unsigned ss_bulk_qlen;
26         unsigned ss_iso_qlen;
27 };
28
29 struct f_ss_opts {
30         struct usb_function_instance func_inst;
31         unsigned pattern;
32         unsigned isoc_interval;
33         unsigned isoc_maxpacket;
34         unsigned isoc_mult;
35         unsigned isoc_maxburst;
36         unsigned bulk_buflen;
37         unsigned bulk_qlen;
38         unsigned iso_qlen;
39
40         /*
41          * Read/write access to configfs attributes is handled by configfs.
42          *
43          * This is to protect the data from concurrent access by read/write
44          * and create symlink/remove symlink.
45          */
46         struct mutex                    lock;
47         int                             refcnt;
48 };
49
50 struct f_lb_opts {
51         struct usb_function_instance func_inst;
52         unsigned bulk_buflen;
53         unsigned qlen;
54
55         /*
56          * Read/write access to configfs attributes is handled by configfs.
57          *
58          * This is to protect the data from concurrent access by read/write
59          * and create symlink/remove symlink.
60          */
61         struct mutex                    lock;
62         int                             refcnt;
63 };
64
65 void lb_modexit(void);
66 int lb_modinit(void);
67
68 /* common utilities */
69 void disable_endpoints(struct usb_composite_dev *cdev,
70                 struct usb_ep *in, struct usb_ep *out,
71                 struct usb_ep *iso_in, struct usb_ep *iso_out);
72
73 #endif /* __G_ZERO_H */