Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

struct_usb_composite_driver(9) [suse man page]

STRUCT 
USB_COMPOSITE(9) Kernel Mode Gadget API STRUCT USB_COMPOSITE(9) NAME
struct_usb_composite_driver - groups configurations into a gadget SYNOPSIS
struct usb_composite_driver { const char * name; const struct usb_device_descriptor * dev; struct usb_gadget_strings ** strings; int (* bind) (struct usb_composite_dev *); int (* unbind) (struct usb_composite_dev *); void (* suspend) (struct usb_composite_dev *); void (* resume) (struct usb_composite_dev *); }; MEMBERS
name For diagnostics, identifies the driver. dev Template descriptor for the device, including default device identifiers. strings tables of strings, keyed by identifiers assigned during bind and language IDs provided in control requests bind (REQUIRED) Used to allocate resources that are shared across the whole device, such as string IDs, and add its configurations using usb_add_config(). This may fail by returning a negative errno value; it should return zero on successful initialization. unbind Reverses bind(); called as a side effect of unregistering this driver. suspend Notifies when the host stops sending USB traffic, after function notifications resume Notifies configuration when the host restarts USB traffic, before function notifications DESCRIPTION
Devices default to reporting self powered operation. Devices which rely on bus powered operation should report this in their bind() method. Before returning from bind, various fields in the template descriptor may be overridden. These include the idVendor/idProduct/bcdDevice values normally to bind the appropriate host side driver, and the three strings (iManufacturer, iProduct, iSerialNumber) normally used to provide user meaningful device identifiers. (The strings will not be defined unless they are defined in dev and strings.) The correct ep0 maxpacket size is also reported, as defined by the underlying controller driver. AUTHOR
David Brownell <dbrownell@users.sourceforge.net> Author. COPYRIGHT
Kernel Hackers Manual 2.6. July 2010 STRUCT USB_COMPOSITE(9)

Check Out this Related Man Page

STRUCT 
USB_COMPOSITE(9) Kernel Mode Gadget API STRUCT USB_COMPOSITE(9) NAME
struct_usb_composite_dev - represents one composite usb gadget SYNOPSIS
struct usb_composite_dev { struct usb_gadget * gadget; struct usb_request * req; struct usb_configuration * config; }; MEMBERS
gadget read-only, abstracts the gadget's usb peripheral controller req used for control responses; buffer is pre-allocated config the currently active configuration DESCRIPTION
One of these devices is allocated and initialized before the associated device driver's bind is called. OPEN ISSUE
it appears that some WUSB devices will need to be built by combining a normal (wired) gadget with a wireless one. This revision of the gadget framework should probably try to make sure doing that won't hurt too much. ONE NOTION FOR HOW TO HANDLE WIRELESS USB DEVICES INVOLVES
(a) a second gadget here, discovery mechanism TBD, but likely needing separate "register/unregister WUSB gadget" calls; (b) updates to usb_gadget to include flags "is it wireless", "is it wired", plus (presumably in a wrapper structure) bandgroup and PHY info; (c) presumably a wireless_ep wrapping a usb_ep, and reporting wireless-specific parameters like maxburst and maxsequence; (d) configurations that are specific to wireless links; (e) function drivers that understand wireless configs and will support wireless for (additional) function instances; (f) a function to support association setup (like CBAF), not necessarily requiring a wireless adapter; (g) composite device setup that can create one or more wireless configs, including appropriate association setup support; (h) more, TBD. AUTHOR
David Brownell <dbrownell@users.sourceforge.net> Author. COPYRIGHT
Kernel Hackers Manual 3.10 June 2014 STRUCT USB_COMPOSITE(9)
Man Page