74 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* 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 */
 |