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 14struct 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 24struct 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 43struct 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 58void lb_modexit(void); 59int lb_modinit(void); 60 61/* common utilities */ 62void free_ep_req(struct usb_ep *ep, struct usb_request *req); 63void 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 */ 68