On Fri, Mar 13, 2015 at 11:13:11AM +0800, Peter Chen wrote: > On Thu, Mar 12, 2015 at 11:04:09AM -0500, Felipe Balbi wrote: > > 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 > > > > I suggested it at v1, but after thinking more, we have handled > DEVICE request type at individual udc driver, like remote wakeup, > self-power support, so it is reasonable we handle get_status that > if we support hnp polling at udc driver, since it is controller > driver's capabilities. right, right.. it is controller's capabilities, but all controller needs to do is a set a flag in struct usb_gadget, which it already does. Then, every single udc will get free implementation after setting that flag, right ? -- balbi
Attachment:
signature.asc
Description: Digital signature