Scroll to navigation

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;
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.

COPYRIGHT

April 2023 Kernel Hackers Manual 2.6.