• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 #define GZERO_INT_INTERVAL	1 /* Default interrupt interval = 1 ms */
14 #define GZERO_INT_MAXPACKET	1024
15 
16 struct usb_zero_options {
17 	unsigned pattern;
18 	unsigned isoc_interval;
19 	unsigned isoc_maxpacket;
20 	unsigned isoc_mult;
21 	unsigned isoc_maxburst;
22 	unsigned int_interval; /* In ms */
23 	unsigned int_maxpacket;
24 	unsigned int_mult;
25 	unsigned int_maxburst;
26 	unsigned bulk_buflen;
27 	unsigned qlen;
28 };
29 
30 struct f_ss_opts {
31 	struct usb_function_instance func_inst;
32 	unsigned pattern;
33 	unsigned isoc_interval;
34 	unsigned isoc_maxpacket;
35 	unsigned isoc_mult;
36 	unsigned isoc_maxburst;
37 	unsigned int_interval; /* In ms */
38 	unsigned int_maxpacket;
39 	unsigned int_mult;
40 	unsigned int_maxburst;
41 	unsigned bulk_buflen;
42 
43 	/*
44 	 * Read/write access to configfs attributes is handled by configfs.
45 	 *
46 	 * This is to protect the data from concurrent access by read/write
47 	 * and create symlink/remove symlink.
48 	 */
49 	struct mutex			lock;
50 	int				refcnt;
51 };
52 
53 struct f_lb_opts {
54 	struct usb_function_instance func_inst;
55 	unsigned bulk_buflen;
56 	unsigned qlen;
57 
58 	/*
59 	 * Read/write access to configfs attributes is handled by configfs.
60 	 *
61 	 * This is to protect the data from concurrent access by read/write
62 	 * and create symlink/remove symlink.
63 	 */
64 	struct mutex			lock;
65 	int				refcnt;
66 };
67 
68 void lb_modexit(void);
69 int lb_modinit(void);
70 
71 /* common utilities */
72 void free_ep_req(struct usb_ep *ep, struct usb_request *req);
73 void disable_endpoints(struct usb_composite_dev *cdev,
74 		struct usb_ep *in, struct usb_ep *out,
75 		struct usb_ep *iso_in, struct usb_ep *iso_out,
76 		struct usb_ep *int_in, struct usb_ep *int_out);
77 
78 #endif /* __G_ZERO_H */
79