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