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