diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2014-07-15 09:01:16 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2014-07-22 08:09:43 +0200 |
commit | 791281577f3d68dd7ab6a4af34d211d6ae38d374 (patch) | |
tree | 23a1159a55bc8a13bec6e75183ab7e8e4a66cf1f /drivers | |
parent | 3504357d8ab38c39fb70374f89fcf243f3dfb9a2 (diff) | |
download | barebox-791281577f3d68dd7ab6a4af34d211d6ae38d374.tar.gz barebox-791281577f3d68dd7ab6a4af34d211d6ae38d374.tar.xz |
USB: gadget: DFU: Use usb_assign_descriptors/usb_free_all_descriptors
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/usb/gadget/dfu.c | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/drivers/usb/gadget/dfu.c b/drivers/usb/gadget/dfu.c index a685cc1a16..52527036d1 100644 --- a/drivers/usb/gadget/dfu.c +++ b/drivers/usb/gadget/dfu.c @@ -132,19 +132,13 @@ dfu_bind(struct usb_configuration *c, struct usb_function *f) header[i] = (struct usb_descriptor_header *) &usb_dfu_func; header[i + 1] = NULL; - /* copy descriptors, and track endpoint copies */ - f->fs_descriptors = usb_copy_descriptors(header); - if (!f->fs_descriptors) - goto out; + status = usb_assign_descriptors(f, header, header, NULL); - /* support all relevant hardware speeds... we expect that when - * hardware is dual speed, all bulk-capable endpoints work at - * both speeds - */ - if (gadget_is_dualspeed(c->cdev->gadget)) { - /* copy descriptors, and track endpoint copies */ - f->hs_descriptors = usb_copy_descriptors(header); - } + free(desc); + free(header); + + if (status) + goto out; for (i = 0; i < dfu_num_alt; i++) printf("dfu: register alt%d(%s) with device %s\n", @@ -164,9 +158,7 @@ dfu_unbind(struct usb_configuration *c, struct usb_function *f) { struct f_dfu *dfu = func_to_dfu(f); - free(f->fs_descriptors); - if (gadget_is_dualspeed(c->cdev->gadget)) - free(f->hs_descriptors); + usb_free_all_descriptors(f); dma_free(dfu->dnreq->buf); usb_ep_free_request(c->cdev->gadget->ep0, dfu->dnreq); |