Re: [PATCH v2 2/5] usb: chipidea: udc: add OTG status request handling

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux