From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=38964 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Q6FwZ-0006S4-Vc for qemu-devel@nongnu.org; Sun, 03 Apr 2011 01:33:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Q6FwU-0005Je-02 for qemu-devel@nongnu.org; Sun, 03 Apr 2011 01:33:47 -0400 Received: from ipmail05.adl6.internode.on.net ([150.101.137.143]:49109) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Q6FwT-0005IH-KO for qemu-devel@nongnu.org; Sun, 03 Apr 2011 01:33:41 -0400 From: Brad Hards Date: Sun, 3 Apr 2011 15:33:17 +1000 Message-Id: <1301808801-7850-1-git-send-email-bradh@frogmouth.net> Subject: [Qemu-devel] [PATCH v2 0/4]usb: implement Interface Association Descriptor support List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: kraxel@redhat.com These descriptors are covered in Section 9.6.4 of the USB 3.0 spec, but there is a better description in the Intel IAD whitepaper (www.usb.org/developers/whitepapers/iadclasscode_r10.pdf). The short version is that IAD is an extra descriptor type that appears before a group (two or more) interface descriptors, that explains which interface descriptors make up a virtual device. So it could look like: Config Desc IAD#0 Iface#0 Iface#1 Iface#2 IAD#1 Iface#3 Iface#4 [Check the diagram in the Intel IAD whitepaper if that makes no sense] The implementation basically introduces the concept of a grouped of interfaces (with an IAD header), and support for sending it to the device. The intended use for this is USB Video class devices, which have a Control interface and Streaming interface that are a single logical device. Changes v2 (from v1): - Added Signed-off-by, per CODING_STYLE - Fixed bug in altsetting handling (.nif needed instead of .bNumInterfaces) - Fixed some whitespace and line-length problems indicated by checkstyle.pl Diffstat: usb-desc.c | 52 +++++++++++++++++++++++++++++++++++++++++++++++++--- usb-desc.h | 20 ++++++++++++++++++++ usb-hid.c | 3 +++ usb-hub.c | 1 + usb-msd.c | 2 ++ usb-serial.c | 1 + usb-wacom.c | 1 + usb.h | 2 ++ 8 files changed, 79 insertions(+), 3 deletions(-)