2008-06-20 08:55:23 +08:00
|
|
|
/*
|
|
|
|
* 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
|
|
|
|
|
2013-11-07 15:41:27 +08:00
|
|
|
#define GZERO_BULK_BUFLEN 4096
|
|
|
|
#define GZERO_QLEN 32
|
2013-11-07 15:41:28 +08:00
|
|
|
#define GZERO_ISOC_INTERVAL 4
|
|
|
|
#define GZERO_ISOC_MAXPACKET 1024
|
2015-11-19 15:02:16 +08:00
|
|
|
#define GZERO_SS_BULK_QLEN 1
|
|
|
|
#define GZERO_SS_ISO_QLEN 8
|
2013-11-07 15:41:27 +08:00
|
|
|
|
2012-12-24 04:10:01 +08:00
|
|
|
struct usb_zero_options {
|
|
|
|
unsigned pattern;
|
|
|
|
unsigned isoc_interval;
|
|
|
|
unsigned isoc_maxpacket;
|
|
|
|
unsigned isoc_mult;
|
|
|
|
unsigned isoc_maxburst;
|
|
|
|
unsigned bulk_buflen;
|
|
|
|
unsigned qlen;
|
2015-11-19 15:02:16 +08:00
|
|
|
unsigned ss_bulk_qlen;
|
|
|
|
unsigned ss_iso_qlen;
|
2012-12-24 04:10:01 +08:00
|
|
|
};
|
2008-06-20 08:55:23 +08:00
|
|
|
|
2012-12-24 04:10:01 +08:00
|
|
|
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;
|
2015-11-19 15:02:16 +08:00
|
|
|
unsigned bulk_qlen;
|
|
|
|
unsigned iso_qlen;
|
2013-11-07 15:41:28 +08:00
|
|
|
|
|
|
|
/*
|
|
|
|
* 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;
|
2012-12-24 04:10:01 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
struct f_lb_opts {
|
|
|
|
struct usb_function_instance func_inst;
|
|
|
|
unsigned bulk_buflen;
|
|
|
|
unsigned qlen;
|
2013-11-07 15:41:27 +08:00
|
|
|
|
|
|
|
/*
|
|
|
|
* 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;
|
2012-12-24 04:10:01 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
void lb_modexit(void);
|
|
|
|
int lb_modinit(void);
|
2008-06-20 08:55:23 +08:00
|
|
|
|
|
|
|
/* common utilities */
|
|
|
|
void disable_endpoints(struct usb_composite_dev *cdev,
|
2012-04-17 05:19:06 +08:00
|
|
|
struct usb_ep *in, struct usb_ep *out,
|
2015-03-11 23:00:05 +08:00
|
|
|
struct usb_ep *iso_in, struct usb_ep *iso_out);
|
2008-06-20 08:55:23 +08:00
|
|
|
|
|
|
|
#endif /* __G_ZERO_H */
|