Hi, On Thu, Mar 12, 2015 at 10:30:21AM +0800, Li Jun wrote: > From: Li Jun <b47624@xxxxxxxxxxxxx> > > Peripheral answers OTG status selector request from host according to > host_request_flag of gadget, length is 1. > > Signed-off-by: Li Jun <jun.li@xxxxxxxxxxxxx> > --- > drivers/usb/chipidea/udc.c | 28 +++++++++++++++++++++++----- > 1 file changed, 23 insertions(+), 5 deletions(-) > > diff --git a/drivers/usb/chipidea/udc.c b/drivers/usb/chipidea/udc.c > index 4254792..eed66bc 100644 > --- a/drivers/usb/chipidea/udc.c > +++ b/drivers/usb/chipidea/udc.c > @@ -831,7 +831,17 @@ __acquires(hwep->lock) > return -ENOMEM; > > req->complete = isr_get_status_complete; > - req->length = 2; > + if (setup->wIndex == OTG_STS_SELECTOR) { > + if (ci_otg_is_fsm_mode(ci)) { > + req->length = 1; > + } else { > + retval = -ENOTSUPP; > + goto err_free_req; > + } > + } else { > + req->length = 2; > + } this could still be done generically in composite.c -- balbi
Attachment:
signature.asc
Description: Digital signature