usb: gadget: f_fs: add usb_functionfs_descs_head_v2 structure
authorMichal Nazarewicz <mina86@mina86.com>
Wed, 27 Aug 2014 20:58:45 +0000 (22:58 +0200)
committerFelipe Balbi <balbi@ti.com>
Tue, 2 Sep 2014 14:16:46 +0000 (09:16 -0500)
The structure can be used with user space tools that use the new
functionfs description format, for example as follows:

static const struct {
struct usb_functionfs_descs_head_v2 header;
__le32 fs_count;
__le32 hs_count;
struct {

} fs_desc;
struct {

} hs_desc;
} descriptors = {
.header = {
.magic = cpu_to_le32(FUNCTIONFS_DESCRIPTORS_MAGIC_V2),
.length = cpu_to_le32(sizeof(descriptors)),
.flags = cpu_to_le32(FUNCTIONFS_HAS_FS_DESC |
     FUNCTIONFS_HAS_HS_DESC)
},
.fs_count = cpu_to_le32(X),
.fs_desc = {

},
.hs_count = cpu_to_le32(Y),
.hs_desc = {

}
};

Signed-off-by: Michal Nazarewicz <mina86@mina86.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
include/uapi/linux/usb/functionfs.h

index 0154b2859fd7dd868a65dcb30bc6455594e23b65..3ca03de7c2a85073ca9ce22c59a960a2e2bd4024 100644 (file)
@@ -32,6 +32,16 @@ struct usb_endpoint_descriptor_no_audio {
        __u8  bInterval;
 } __attribute__((packed));
 
+struct usb_functionfs_descs_head_v2 {
+       __le32 magic;
+       __le32 length;
+       __le32 flags;
+       /*
+        * __le32 fs_count, hs_count, fs_count; must be included manually in
+        * the structure taking flags into consideration.
+        */
+} __attribute__((packed));
+
 /* Legacy format, deprecated as of 3.14. */
 struct usb_functionfs_descs_head {
        __le32 magic;