summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>2012-12-23 21:10:21 +0100
committerFelipe Balbi <balbi@ti.com>2013-01-21 19:52:47 +0100
commit2d5a88990260d226a69acddf22c04f47c267b33a (patch)
tree131ac7501eade3e1b96136208ba46f20c6e86f13
parentusb: gadget: factor out two helper functions from composite_bind() (diff)
downloadlinux-2d5a88990260d226a69acddf22c04f47c267b33a.tar.xz
linux-2d5a88990260d226a69acddf22c04f47c267b33a.zip
usb: gadget: export composite's setup & disconnect function
The configfs can't use all of composite's hooks because ->bind() and ->unbind() has to be done a little differently. ->disconnect() and ->setup() on the hand can be recycled. This patch exports them both so configfs can use them. Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Felipe Balbi <balbi@ti.com>
-rw-r--r--drivers/usb/gadget/composite.c4
-rw-r--r--include/linux/usb/composite.h4
2 files changed, 6 insertions, 2 deletions
diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c
index 9083ec93f38e..8a1c3752f75f 100644
--- a/drivers/usb/gadget/composite.c
+++ b/drivers/usb/gadget/composite.c
@@ -1077,7 +1077,7 @@ static void composite_setup_complete(struct usb_ep *ep, struct usb_request *req)
* housekeeping for the gadget function we're implementing. Most of
* the work is in config and function specific setup.
*/
-static int
+int
composite_setup(struct usb_gadget *gadget, const struct usb_ctrlrequest *ctrl)
{
struct usb_composite_dev *cdev = get_gadget_data(gadget);
@@ -1344,7 +1344,7 @@ done:
return value;
}
-static void composite_disconnect(struct usb_gadget *gadget)
+void composite_disconnect(struct usb_gadget *gadget)
{
struct usb_composite_dev *cdev = get_gadget_data(gadget);
unsigned long flags;
diff --git a/include/linux/usb/composite.h b/include/linux/usb/composite.h
index bd6d857c12f4..a212ec3e9d69 100644
--- a/include/linux/usb/composite.h
+++ b/include/linux/usb/composite.h
@@ -398,6 +398,10 @@ extern int usb_string_ids_tab(struct usb_composite_dev *c,
struct usb_string *str);
extern int usb_string_ids_n(struct usb_composite_dev *c, unsigned n);
+extern void composite_disconnect(struct usb_gadget *gadget);
+extern int composite_setup(struct usb_gadget *gadget,
+ const struct usb_ctrlrequest *ctrl);
+
/*
* Some systems will need runtime overrides for the product identifiers
* published in the device descriptor, either numbers or strings or both.