aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Lockwood <lockwood@android.com>2009-12-11 11:24:07 -0500
committerColin Cross <ccross@android.com>2011-06-14 09:08:54 -0700
commitc7ba16ae1a444d78c4c67960f76c87159125d2b0 (patch)
treeb3d75cee474a62e1783208a7667ce4d5c16cfa29
parent258d10363551562f1f4677902c8b277abfc0ec68 (diff)
downloadkernel_samsung_aries-c7ba16ae1a444d78c4c67960f76c87159125d2b0.zip
kernel_samsung_aries-c7ba16ae1a444d78c4c67960f76c87159125d2b0.tar.gz
kernel_samsung_aries-c7ba16ae1a444d78c4c67960f76c87159125d2b0.tar.bz2
USB: composite: Add flag to usb_function to hide its interface during enumeration
Change-Id: Ie999b5190e3e2b6fd23015b8e796cdd178829929 Signed-off-by: Mike Lockwood <lockwood@android.com>
-rw-r--r--drivers/usb/gadget/composite.c2
-rw-r--r--include/linux/usb/composite.h1
2 files changed, 2 insertions, 1 deletions
diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c
index 07bb37e..134d3d5 100644
--- a/drivers/usb/gadget/composite.c
+++ b/drivers/usb/gadget/composite.c
@@ -271,7 +271,7 @@ static int config_buf(struct usb_configuration *config,
descriptors = f->hs_descriptors;
else
descriptors = f->descriptors;
- if (!descriptors || descriptors[0] == NULL) {
+ if (f->hidden || !descriptors || descriptors[0] == NULL) {
for (; f != config->interface[interfaceCount];) {
interfaceCount++;
c->bNumInterfaces--;
diff --git a/include/linux/usb/composite.h b/include/linux/usb/composite.h
index b78cba4..8f5a89f 100644
--- a/include/linux/usb/composite.h
+++ b/include/linux/usb/composite.h
@@ -108,6 +108,7 @@ struct usb_function {
struct usb_descriptor_header **hs_descriptors;
struct usb_configuration *config;
+ int hidden;
/* REVISIT: bind() functions can be marked __init, which
* makes trouble for section mismatch analysis. See if