summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/usb/composite.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/include/linux/usb/composite.h b/include/linux/usb/composite.h
index a49a66f2f82..d4f2a49869e 100644
--- a/include/linux/usb/composite.h
+++ b/include/linux/usb/composite.h
@@ -284,6 +284,8 @@ struct usb_composite_driver {
extern int usb_composite_register(struct usb_composite_driver *);
extern void usb_composite_unregister(struct usb_composite_driver *);
+#define OS_STRING_QW_SIGN_LEN 14
+#define OS_STRING_IDX 0xEE
/**
* struct usb_composite_device - represents one composite usb gadget
@@ -291,6 +293,9 @@ extern void usb_composite_unregister(struct usb_composite_driver *);
* @req: used for control responses; buffer is pre-allocated
* @bufsiz: size of buffer pre-allocated in @req
* @config: the currently active configuration
+ * @qw_sign: qwSignature part of the OS string
+ * @b_vendor_code: bMS_VendorCode part of the OS string
+ * @use_os_string: false by default, interested gadgets set it
*
* One of these devices is allocated and initialized before the
* associated device driver's bind() is called.
@@ -324,6 +329,11 @@ struct usb_composite_dev {
struct usb_configuration *config;
+ /* OS String is a custom (yet popular) extension to the USB standard. */
+ u8 qw_sign[OS_STRING_QW_SIGN_LEN];
+ u8 b_vendor_code;
+ unsigned int use_os_string:1;
+
/* private: */
/* internals */
unsigned int suspended:1;