ChangeSet 1.1515.1.5, 2003/12/15 13:38:28-08:00, [EMAIL PROTECTED]

[PATCH] USB: <linux/usb_ch9.h> new descriptor codes, types

This patch adds definitions:

  - New "video" class, for video cameras and more complicated devices;

  - New "Interface association" descriptor type, used by video class,
    along with two other assigned desciptor type codes (OTG, "debug")
    listed in the same ECN to the USB 2.0 spec;

  - Type declarations for "Interface association" and OTG descriptors.

It also replaces three copies of USB_DT_CS_* declarations in audio
support with one in <linux/usb_ch9.h>, and uses the newly exposed
symbol in "usbnet".  (Near as I can tell, the convention for those
"class specific" descriptor types started with audio, and was then
adopted by several other class specifications.)


 drivers/usb/class/audio.h    |    6 ------
 drivers/usb/class/usb-midi.h |    6 ------
 drivers/usb/net/usbnet.c     |    3 +--
 include/linux/usb_ch9.h      |   42 ++++++++++++++++++++++++++++++++++++++++++
 sound/usb/usbaudio.h         |    6 ------
 5 files changed, 43 insertions(+), 20 deletions(-)


diff -Nru a/drivers/usb/class/audio.h b/drivers/usb/class/audio.h
--- a/drivers/usb/class/audio.h Mon Dec 29 14:21:09 2003
+++ b/drivers/usb/class/audio.h Mon Dec 29 14:21:09 2003
@@ -1,9 +1,3 @@
-#define USB_DT_CS_DEVICE                0x21
-#define USB_DT_CS_CONFIG                0x22
-#define USB_DT_CS_STRING                0x23
-#define USB_DT_CS_INTERFACE             0x24
-#define USB_DT_CS_ENDPOINT              0x25
-
 #define CS_AUDIO_UNDEFINED             0x20
 #define CS_AUDIO_DEVICE                        0x21
 #define CS_AUDIO_CONFIGURATION         0x22
diff -Nru a/drivers/usb/class/usb-midi.h b/drivers/usb/class/usb-midi.h
--- a/drivers/usb/class/usb-midi.h      Mon Dec 29 14:21:09 2003
+++ b/drivers/usb/class/usb-midi.h      Mon Dec 29 14:21:09 2003
@@ -28,12 +28,6 @@
 #define USB_SUBCLASS_MIDISTREAMING     3
 #endif
 
-#define USB_DT_CS_DEVICE               0x21
-#define USB_DT_CS_CONFIG               0x22
-#define USB_DT_CS_STRING               0x23
-#define USB_DT_CS_INTERFACE            0x24
-#define USB_DT_CS_ENDPOINT             0x25
-
 /* ------------------------------------------------------------------------- */
 /* Roland MIDI Devices */
 
diff -Nru a/drivers/usb/net/usbnet.c b/drivers/usb/net/usbnet.c
--- a/drivers/usb/net/usbnet.c  Mon Dec 29 14:21:09 2003
+++ b/drivers/usb/net/usbnet.c  Mon Dec 29 14:21:09 2003
@@ -923,8 +923,7 @@
        memset (info, 0, sizeof *info);
        info->control = intf;
        while (len > 3) {
-               /* ignore bDescriptorType != CS_INTERFACE */
-               if (buf [1] != 0x24)
+               if (buf [1] != USB_DT_CS_INTERFACE)
                        goto next_desc;
 
                /* bDescriptorSubType identifies three "must have" descriptors;
diff -Nru a/include/linux/usb_ch9.h b/include/linux/usb_ch9.h
--- a/include/linux/usb_ch9.h   Mon Dec 29 14:21:09 2003
+++ b/include/linux/usb_ch9.h   Mon Dec 29 14:21:09 2003
@@ -116,6 +116,17 @@
 #define USB_DT_DEVICE_QUALIFIER                0x06
 #define USB_DT_OTHER_SPEED_CONFIG      0x07
 #define USB_DT_INTERFACE_POWER         0x08
+/* these are from a minor usb 2.0 revision (ECN) */
+#define USB_DT_OTG                     0x09
+#define USB_DT_DEBUG                   0x0a
+#define USB_DT_INTERFACE_ASSOCIATION   0x0b
+
+/* conventional codes for class-specific descriptors */
+#define USB_DT_CS_DEVICE               0x21
+#define USB_DT_CS_CONFIG               0x22
+#define USB_DT_CS_STRING               0x23
+#define USB_DT_CS_INTERFACE            0x24
+#define USB_DT_CS_ENDPOINT             0x25
 
 /* All standard descriptors have these 2 fields at the beginning */
 struct usb_descriptor_header {
@@ -165,6 +176,7 @@
 #define USB_CLASS_CDC_DATA             0x0a
 #define USB_CLASS_CSCID                        0x0b    /* chip+ smart card */
 #define USB_CLASS_CONTENT_SEC          0x0d    /* content security */
+#define USB_CLASS_VIDEO                        0x0e
 #define USB_CLASS_APP_SPEC             0xfe
 #define USB_CLASS_VENDOR_SPEC          0xff
 
@@ -278,6 +290,36 @@
        __u8  bMaxPacketSize0;
        __u8  bNumConfigurations;
        __u8  bRESERVED;
+} __attribute__ ((packed));
+
+
+/*-------------------------------------------------------------------------*/
+
+/* USB_DT_OTG (from OTG 1.0a supplement) */
+struct usb_otg_descriptor {
+       __u8  bLength;
+       __u8  bDescriptorType;
+
+       __u8  bmAttributes;     /* support for HNP, SRP, etc */
+} __attribute__ ((packed));
+
+/* from usb_otg_descriptor.bmAttributes */
+#define USB_OTG_SRP            (1 << 0)
+#define USB_OTG_HNP            (1 << 1)        /* swap host/device roles */
+
+/*-------------------------------------------------------------------------*/
+
+/* USB_DT_INTERFACE_ASSOCIATION: groups interfaces */
+struct usb_interface_assoc_descriptor {
+       __u8  bLength;
+       __u8  bDescriptorType;
+
+       __u8  bFirstInterface;
+       __u8  bInterfaceCount;
+       __u8  bFunctionClass;
+       __u8  bFunctionSubClass;
+       __u8  bFunctionProtocol;
+       __u8  iFunction;
 } __attribute__ ((packed));
 
 
diff -Nru a/sound/usb/usbaudio.h b/sound/usb/usbaudio.h
--- a/sound/usb/usbaudio.h      Mon Dec 29 14:21:09 2003
+++ b/sound/usb/usbaudio.h      Mon Dec 29 14:21:09 2003
@@ -30,12 +30,6 @@
 #define USB_SUBCLASS_MIDI_STREAMING    0x03
 #define USB_SUBCLASS_VENDOR_SPEC       0xff
 
-#define USB_DT_CS_DEVICE                0x21
-#define USB_DT_CS_CONFIG                0x22
-#define USB_DT_CS_STRING                0x23
-#define USB_DT_CS_INTERFACE             0x24
-#define USB_DT_CS_ENDPOINT              0x25
-
 #define CS_AUDIO_UNDEFINED             0x20
 #define CS_AUDIO_DEVICE                        0x21
 #define CS_AUDIO_CONFIGURATION         0x22



-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id78&alloc_id371&op=click
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to