aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Chen <peter.chen@freescale.com>2014-09-11 21:32:41 -0400
committerFelipe Balbi <balbi@ti.com>2014-09-12 10:12:51 -0400
commit974a70bdecea5296db1b643e4046ef208e99c592 (patch)
tree040d2ee0578c85b155fe91a3f5bfe13905e2ed32
parent1f7c51660034091dc134fcc534b7f1fa86a6e823 (diff)
usb: gadget: udc-core: add utility for bus reset
The udc driver can notify the udc core that bus reset occurs by calling this utility, the core will notify gadget driver this information and update gadget state accordingly. Signed-off-by: Peter Chen <peter.chen@freescale.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
-rw-r--r--drivers/usb/gadget/udc/udc-core.c17
-rw-r--r--include/linux/usb/gadget.h6
2 files changed, 23 insertions, 0 deletions
diff --git a/drivers/usb/gadget/udc/udc-core.c b/drivers/usb/gadget/udc/udc-core.c
index b0d98172bc07..ba661c6da54a 100644
--- a/drivers/usb/gadget/udc/udc-core.c
+++ b/drivers/usb/gadget/udc/udc-core.c
@@ -124,6 +124,23 @@ EXPORT_SYMBOL_GPL(usb_gadget_set_state);
124/* ------------------------------------------------------------------------- */ 124/* ------------------------------------------------------------------------- */
125 125
126/** 126/**
127 * usb_gadget_udc_reset - notifies the udc core that bus reset occurs
128 * @gadget: The gadget which bus reset occurs
129 * @driver: The gadget driver we want to notify
130 *
131 * If the udc driver has bus reset handler, it needs to call this when the bus
132 * reset occurs, it notifies the gadget driver that the bus reset occurs as
133 * well as updates gadget state.
134 */
135void usb_gadget_udc_reset(struct usb_gadget *gadget,
136 struct usb_gadget_driver *driver)
137{
138 driver->reset(gadget);
139 usb_gadget_set_state(gadget, USB_STATE_DEFAULT);
140}
141EXPORT_SYMBOL_GPL(usb_gadget_udc_reset);
142
143/**
127 * usb_gadget_udc_start - tells usb device controller to start up 144 * usb_gadget_udc_start - tells usb device controller to start up
128 * @gadget: The gadget we want to get started 145 * @gadget: The gadget we want to get started
129 * @driver: The driver we want to bind to @gadget 146 * @driver: The driver we want to bind to @gadget
diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h
index 598a6e9b2850..d18811433324 100644
--- a/include/linux/usb/gadget.h
+++ b/include/linux/usb/gadget.h
@@ -1017,6 +1017,12 @@ extern void usb_gadget_set_state(struct usb_gadget *gadget,
1017 1017
1018/*-------------------------------------------------------------------------*/ 1018/*-------------------------------------------------------------------------*/
1019 1019
1020/* utility to tell udc core that the bus reset occurs */
1021extern void usb_gadget_udc_reset(struct usb_gadget *gadget,
1022 struct usb_gadget_driver *driver);
1023
1024/*-------------------------------------------------------------------------*/
1025
1020/* utility wrapping a simple endpoint selection policy */ 1026/* utility wrapping a simple endpoint selection policy */
1021 1027
1022extern struct usb_ep *usb_ep_autoconfig(struct usb_gadget *, 1028extern struct usb_ep *usb_ep_autoconfig(struct usb_gadget *,