This patchset creats a Multifunction Composite Gadget which uses composite framework to create a gadget with two configurations providing Ethernet (RNDIS in one and CDC in another configuration), Serial and Mass Storage. This patch requires the "Mass Storage USB composite Function created" patchset I have submitted earlier. The first patch adds IADs to RNDI and CDC since without those I was unable to make the gadget work correctly (ie. host tried to handle each interface separately). The second patch adds the MFG. The gadget seems to be functionaly -- when device is connected to Linux host all three functions (CDC Ethernet, CDC Serial and Mass Storage) are detected and handled properly. I'm heaving a hard time, however, making it work with Windows though. With a single configuration (ie. with RNDIS disabled or second configuration #if-ed out) Windows properly detects the gadget as a composite and identifies its functions. However, when two configurations are present things are not so nice. Therefore, any help in the matter of creating an INF would be greatly appreciated. I've been trying to create an INF for quite some time now but have done nothing so far -- the issue at the moment is that I have no idea how to let Windows know that the gadget is an composite and that it should choose it's first configuration. Michal Nazarewicz (2): USB: Interface Association Descriptors added to CDC & RNDIS USB: g_multi: Multifunction Composite Gadget added drivers/usb/gadget/Kconfig | 27 ++++ drivers/usb/gadget/Makefile | 3 +- drivers/usb/gadget/f_acm.c | 28 ++++ drivers/usb/gadget/f_rndis.c | 35 ++++- drivers/usb/gadget/multi.c | 349 ++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 437 insertions(+), 5 deletions(-) create mode 100644 drivers/usb/gadget/multi.c -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html