Kernel USB gadget configfs interface (Matt Porter, Linaro) - The Linux kernel has long had support for USB peripheral or "gadget" drivers. In the past, the creation and configuration of composite USB gadgets has required custom kernel drivers in order to support arbitrary combinations of USB device functions. In this presentation, Matt Porter will review the history of kernel gadget APIs and userspace APIs for creating USB gadgets. He will review the USB gadget configfs API and how it can be used to create arbitrary USB composite gadgets using existing kernel USB functions. Matt will then introduce use of the libusbg userspace gadget library by demonstration of several USB composite gadget examples.