diff options
author | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2012-12-23 21:10:23 +0100 |
---|---|---|
committer | Felipe Balbi <balbi@ti.com> | 2013-01-21 20:52:48 +0200 |
commit | 27a4663397302976869571ae7e175fc90ec22017 (patch) | |
tree | 92a293c9f9d2c30f7cdc76e1611a38fdd7f56fe0 /drivers/usb/gadget/composite.c | |
parent | 9bb2859f8a8dbc9b42f3100641dd0ae80cfbe86a (diff) |
usb: gadget: f_acm: use usb_gstrings_attach()
Use usb_gstrings_attach() to assign strings in f_acm to assign strings
ids.
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'drivers/usb/gadget/composite.c')
-rw-r--r-- | drivers/usb/gadget/composite.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c index 9d7a1fabc48..7c821de8ce3 100644 --- a/drivers/usb/gadget/composite.c +++ b/drivers/usb/gadget/composite.c @@ -943,6 +943,12 @@ static int get_string(struct usb_composite_dev *cdev, collect_langs(sp, s->wData); } } + list_for_each_entry(uc, &cdev->gstrings, list) { + struct usb_gadget_strings **sp; + + sp = get_containers_gs(uc); + collect_langs(sp, s->wData); + } for (len = 0; len <= 126 && s->wData[len]; len++) continue; @@ -1506,7 +1512,6 @@ static DEVICE_ATTR(suspended, 0444, composite_show_suspended, NULL); static void __composite_unbind(struct usb_gadget *gadget, bool unbind_driver) { struct usb_composite_dev *cdev = get_gadget_data(gadget); - struct usb_gadget_string_container *uc, *tmp; /* composite_disconnect() must already have been called * by the underlying peripheral controller driver! @@ -1521,10 +1526,6 @@ static void __composite_unbind(struct usb_gadget *gadget, bool unbind_driver) struct usb_configuration, list); remove_config(cdev, c); } - list_for_each_entry_safe(uc, tmp, &cdev->gstrings, list) { - list_del(&uc->list); - kfree(uc); - } if (cdev->driver->unbind && unbind_driver) cdev->driver->unbind(cdev); @@ -1626,6 +1627,12 @@ fail: void composite_dev_cleanup(struct usb_composite_dev *cdev) { + struct usb_gadget_string_container *uc, *tmp; + + list_for_each_entry_safe(uc, tmp, &cdev->gstrings, list) { + list_del(&uc->list); + kfree(uc); + } if (cdev->req) { kfree(cdev->req->buf); usb_ep_free_request(cdev->gadget->ep0, cdev->req); |