diff options
Diffstat (limited to 'include/linux/usb/gadget.h')
| -rw-r--r-- | include/linux/usb/gadget.h | 11 | 
1 files changed, 11 insertions, 0 deletions
diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h index 2e297e80d59..c454a88abf2 100644 --- a/include/linux/usb/gadget.h +++ b/include/linux/usb/gadget.h @@ -482,6 +482,7 @@ struct usb_gadget_ops {   * @speed: Speed of current connection to USB host.   * @max_speed: Maximal speed the UDC can handle.  UDC must support this   *      and all slower speeds. + * @state: the state we are now (attached, suspended, configured, etc)   * @sg_supported: true if we can handle scatter-gather   * @is_otg: True if the USB device port uses a Mini-AB jack, so that the   *	gadget driver must provide a USB OTG descriptor. @@ -525,6 +526,7 @@ struct usb_gadget {  	struct list_head		ep_list;	/* of usb_ep */  	enum usb_device_speed		speed;  	enum usb_device_speed		max_speed; +	enum usb_device_state		state;  	unsigned			sg_supported:1;  	unsigned			is_otg:1;  	unsigned			is_a_peripheral:1; @@ -872,6 +874,8 @@ int usb_gadget_probe_driver(struct usb_gadget_driver *driver);   */  int usb_gadget_unregister_driver(struct usb_gadget_driver *driver); +extern int usb_add_gadget_udc_release(struct device *parent, +		struct usb_gadget *gadget, void (*release)(struct device *dev));  extern int usb_add_gadget_udc(struct device *parent, struct usb_gadget *gadget);  extern void usb_del_gadget_udc(struct usb_gadget *gadget);  extern int udc_attach_driver(const char *name, @@ -959,6 +963,13 @@ extern void usb_gadget_unmap_request(struct usb_gadget *gadget,  /*-------------------------------------------------------------------------*/ +/* utility to set gadget state properly */ + +extern void usb_gadget_set_state(struct usb_gadget *gadget, +		enum usb_device_state state); + +/*-------------------------------------------------------------------------*/ +  /* utility wrapping a simple endpoint selection policy */  extern struct usb_ep *usb_ep_autoconfig(struct usb_gadget *,  |