g_zero.h (1677B)
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 17struct 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 29struct 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 50struct 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 65void lb_modexit(void); 66int lb_modinit(void); 67 68/* common utilities */ 69void 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 */