diff options
author | Michal Nazarewicz <m.nazarewicz@samsung.com> | 2010-06-21 07:57:08 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-08-10 17:35:37 -0400 |
commit | 3f3e12d050052032a51f75e72e540322e2a7da2b (patch) | |
tree | 3e90bb116993c31f1702a540a675626a29cce229 | |
parent | c7ba692294ef2f69a76b24b2ad45fc6c0ac0d497 (diff) |
USB: gadget: composite: added disconnect callback
Added a disconnect() callback to composite devices which
is called by composite glue when its disconnect callback
is called by gadget.
Signed-off-by: Michal Nazarewicz <m.nazarewicz@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r-- | drivers/usb/gadget/composite.c | 2 | ||||
-rw-r--r-- | include/linux/usb/composite.h | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c index 125167e17ce5..e483f80822d2 100644 --- a/drivers/usb/gadget/composite.c +++ b/drivers/usb/gadget/composite.c | |||
@@ -956,6 +956,8 @@ static void composite_disconnect(struct usb_gadget *gadget) | |||
956 | spin_lock_irqsave(&cdev->lock, flags); | 956 | spin_lock_irqsave(&cdev->lock, flags); |
957 | if (cdev->config) | 957 | if (cdev->config) |
958 | reset_config(cdev); | 958 | reset_config(cdev); |
959 | if (composite->disconnect) | ||
960 | composite->disconnect(cdev); | ||
959 | spin_unlock_irqrestore(&cdev->lock, flags); | 961 | spin_unlock_irqrestore(&cdev->lock, flags); |
960 | } | 962 | } |
961 | 963 | ||
diff --git a/include/linux/usb/composite.h b/include/linux/usb/composite.h index f378075c839a..890bc1472190 100644 --- a/include/linux/usb/composite.h +++ b/include/linux/usb/composite.h | |||
@@ -276,6 +276,8 @@ struct usb_composite_driver { | |||
276 | int (*bind)(struct usb_composite_dev *); | 276 | int (*bind)(struct usb_composite_dev *); |
277 | int (*unbind)(struct usb_composite_dev *); | 277 | int (*unbind)(struct usb_composite_dev *); |
278 | 278 | ||
279 | void (*disconnect)(struct usb_composite_dev *); | ||
280 | |||
279 | /* global suspend hooks */ | 281 | /* global suspend hooks */ |
280 | void (*suspend)(struct usb_composite_dev *); | 282 | void (*suspend)(struct usb_composite_dev *); |
281 | void (*resume)(struct usb_composite_dev *); | 283 | void (*resume)(struct usb_composite_dev *); |