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