diff options
author | Li Jun <b47624@freescale.com> | 2014-10-16 22:17:52 +0800 |
---|---|---|
committer | Peter Chen <peter.chen@freescale.com> | 2014-10-20 16:07:15 +0800 |
commit | 560690f1b24448b94806f390add9d91d602e3ef4 (patch) | |
tree | 9046d03d6ea96fce5f957f36a1dd3343816875ed /drivers/usb/gadget | |
parent | 31889db617b7ecf4cdf9f9e98957ec9b6de49a4e (diff) |
MLK-9617-15 usb: gadget: composite: add get otg descriptor request handling
This patch adds response to getting OTG descriptor request from host.
Signed-off-by: Li Jun <b47624@freescale.com>
Diffstat (limited to 'drivers/usb/gadget')
-rw-r--r-- | drivers/usb/gadget/composite.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c index a5e0045d03b8..6d829edefc9d 100644 --- a/drivers/usb/gadget/composite.c +++ b/drivers/usb/gadget/composite.c @@ -1286,6 +1286,19 @@ composite_setup(struct usb_gadget *gadget, const struct usb_ctrlrequest *ctrl) if (value >= 0) value = min(w_length, (u16) value); break; + case USB_DT_OTG: + if (gadget_is_otg(gadget)) { + struct usb_configuration *config; + + config = list_first_entry(&cdev->configs, + struct usb_configuration, list); + if (!config) + goto done; + + value = sizeof(struct usb_otg_descriptor); + memcpy(req->buf, config->descriptors[0], value); + } + break; case USB_DT_BOS: if (gadget_is_superspeed(gadget)) { value = bos_desc(cdev); |