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 */ |
74 | |