| From | Robert Baldyga <> | Subject | [PATCH v4 15/43] usb: gadget: composite: handle get_alt() automatically | Date | Wed, 03 Feb 2016 13:39:23 +0100 |
| |
As now we store current altsetting number for each interface, we can handle USB_REQ_GET_INTERFACE automatically.
Signed-off-by: Robert Baldyga <r.baldyga@samsung.com> --- drivers/usb/gadget/composite.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c index 1c26443..a4b5346 100644 --- a/drivers/usb/gadget/composite.c +++ b/drivers/usb/gadget/composite.c @@ -2077,7 +2077,13 @@ composite_setup(struct usb_gadget *gadget, const struct usb_ctrlrequest *ctrl) if (!f) break; /* lots of interfaces only need altsetting zero... */ - value = f->get_alt ? f->get_alt(f, w_index) : 0; + if (usb_function_is_new_api(f)) { + value = usb_interface_id_to_index(f, intf); + if (value >= 0) + value = f->descs->intfs[value]->cur_altset; + } else { + value = f->get_alt ? f->get_alt(f, w_index) : 0; + } if (value < 0) break; *((u8 *)req->buf) = value; -- 1.9.1
|