]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
tools: ffs-test: convert to new descriptor format
authorMichal Nazarewicz <mina86@mina86.com>
Wed, 27 Aug 2014 20:58:46 +0000 (22:58 +0200)
committerFelipe Balbi <balbi@ti.com>
Tue, 2 Sep 2014 14:16:46 +0000 (09:16 -0500)
Since commit [ac8dde11: “Add flags to descriptors block”] functionfs
supports a new, more powerful and extensible, descriptor format.
Since ffs-test is probably the first thing users of the functionfs
interface see when they start writing functionfs user space daemons,
convert it to use the new format thus promoting it.

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

index 3ca03de7c2a85073ca9ce22c59a960a2e2bd4024..6d2a16b834bf19f3a75abce80388e2c10e02bf2a 100644 (file)
@@ -102,7 +102,7 @@ struct usb_ext_prop_desc {
  * structure.  Any flags that are not recognised cause the whole block to be
  * rejected with -ENOSYS.
  *
- * Legacy descriptors format:
+ * Legacy descriptors format (deprecated as of 3.14):
  *
  * | off | name      | type         | description                          |
  * |-----+-----------+--------------+--------------------------------------|
index a87e99f37c52e4239d4467c524929dd010162740..708d317b0f37b82d6a494ab8b886b8a85da2b444 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * ffs-test.c.c -- user mode filesystem api for usb composite function
+ * ffs-test.c -- user mode filesystem api for usb composite function
  *
  * Copyright (C) 2010 Samsung Electronics
  *                    Author: Michal Nazarewicz <mina86@mina86.com>
@@ -106,7 +106,9 @@ static void _msg(unsigned level, const char *fmt, ...)
 /******************** Descriptors and Strings *******************************/
 
 static const struct {
-       struct usb_functionfs_descs_head header;
+       struct usb_functionfs_descs_head_v2 header;
+       __le32 fs_count;
+       __le32 hs_count;
        struct {
                struct usb_interface_descriptor intf;
                struct usb_endpoint_descriptor_no_audio sink;
@@ -114,11 +116,12 @@ static const struct {
        } __attribute__((packed)) fs_descs, hs_descs;
 } __attribute__((packed)) descriptors = {
        .header = {
-               .magic = cpu_to_le32(FUNCTIONFS_DESCRIPTORS_MAGIC),
+               .magic = cpu_to_le32(FUNCTIONFS_DESCRIPTORS_MAGIC_V2),
+               .flags = cpu_to_le32(FUNCTIONFS_HAS_FS_DESC |
+                                    FUNCTIONFS_HAS_HS_DESC),
                .length = cpu_to_le32(sizeof descriptors),
-               .fs_count = cpu_to_le32(3),
-               .hs_count = cpu_to_le32(3),
        },
+       .fs_count = cpu_to_le32(3),
        .fs_descs = {
                .intf = {
                        .bLength = sizeof descriptors.fs_descs.intf,
@@ -142,6 +145,7 @@ static const struct {
                        /* .wMaxPacketSize = autoconfiguration (kernel) */
                },
        },
+       .hs_count = cpu_to_le32(3),
        .hs_descs = {
                .intf = {
                        .bLength = sizeof descriptors.fs_descs.intf,