STRUCT USB_COMPOSITE(9) Kernel Mode Gadget API STRUCT USB_COMPOSITE(9)NAMEstruct_usb_composite_dev - represents one composite usb gadget
SYNOPSIS
struct usb_composite_dev {
struct usb_gadget * gadget;
struct usb_request * req;
unsigned bufsiz;
struct usb_configuration * config;
};
MEMBERS
gadget
read-only, abstracts the gadget´s usb peripheral controller
req
used for control responses; buffer is pre-allocated
bufsiz
size of buffer pre-allocated in req
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.
COPYRIGHTKernel Hackers Manual 2.6. November 2013 STRUCT USB_COMPOSITE(9)