* [PATCH 1/5] USB: gadget: Fix unused variable warning in ci13xxx_udc
@ 2011-04-28 7:58 Pavankumar Kondeti
2011-04-28 7:58 ` [PATCH 2/5] USB: gadget: Fix bug in endpoint feature request processing " Pavankumar Kondeti
` (6 more replies)
0 siblings, 7 replies; 27+ messages in thread
From: Pavankumar Kondeti @ 2011-04-28 7:58 UTC (permalink / raw)
To: greg, linux-usb; +Cc: linux-arm-msm, Pavankumar Kondeti
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
---
drivers/usb/gadget/ci13xxx_udc.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/usb/gadget/ci13xxx_udc.c b/drivers/usb/gadget/ci13xxx_udc.c
index e09178b..6a9ad59 100644
--- a/drivers/usb/gadget/ci13xxx_udc.c
+++ b/drivers/usb/gadget/ci13xxx_udc.c
@@ -1843,7 +1843,7 @@ __releases(mEp->lock)
__acquires(mEp->lock)
{
struct ci13xxx_req *mReq, *mReqTemp;
- int retval;
+ int uninitialized_var(retval);
trace("%p", mEp);
--
Sent by a consultant of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
^ permalink raw reply related [flat|nested] 27+ messages in thread* [PATCH 2/5] USB: gadget: Fix bug in endpoint feature request processing in ci13xxx_udc 2011-04-28 7:58 [PATCH 1/5] USB: gadget: Fix unused variable warning in ci13xxx_udc Pavankumar Kondeti @ 2011-04-28 7:58 ` Pavankumar Kondeti [not found] ` <1303977501-17115-1-git-send-email-pkondeti-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> ` (5 subsequent siblings) 6 siblings, 0 replies; 27+ messages in thread From: Pavankumar Kondeti @ 2011-04-28 7:58 UTC (permalink / raw) To: greg, linux-usb; +Cc: linux-arm-msm, Pavankumar Kondeti The OUT endpoints are stored in 0 - hw_ep_max/2 and IN endpoints are stored from hw_ep_max/2 - hw_ep_max in ci13xxx_ep array. Retrieve the IN endpoint correctly while processing endpoint feature requests. Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org> --- drivers/usb/gadget/ci13xxx_udc.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/drivers/usb/gadget/ci13xxx_udc.c b/drivers/usb/gadget/ci13xxx_udc.c index 6a9ad59..0e6d649 100644 --- a/drivers/usb/gadget/ci13xxx_udc.c +++ b/drivers/usb/gadget/ci13xxx_udc.c @@ -1894,7 +1894,7 @@ __acquires(udc->lock) for (i = 0; i < hw_ep_max; i++) { struct ci13xxx_ep *mEp = &udc->ci13xxx_ep[i]; - int type, num, err = -EINVAL; + int type, num, dir, err = -EINVAL; struct usb_ctrlrequest req; if (mEp->desc == NULL) @@ -1952,7 +1952,10 @@ __acquires(udc->lock) if (req.wLength != 0) break; num = le16_to_cpu(req.wIndex); + dir = num & USB_ENDPOINT_DIR_MASK; num &= USB_ENDPOINT_NUMBER_MASK; + if (dir) /* TX */ + num += hw_ep_max/2; if (!udc->ci13xxx_ep[num].wedge) { spin_unlock(udc->lock); err = usb_ep_clear_halt( @@ -2001,7 +2004,10 @@ __acquires(udc->lock) if (req.wLength != 0) break; num = le16_to_cpu(req.wIndex); + dir = num & USB_ENDPOINT_DIR_MASK; num &= USB_ENDPOINT_NUMBER_MASK; + if (dir) /* TX */ + num += hw_ep_max/2; spin_unlock(udc->lock); err = usb_ep_set_halt(&udc->ci13xxx_ep[num].ep); -- Sent by a consultant of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum. ^ permalink raw reply related [flat|nested] 27+ messages in thread
[parent not found: <1303977501-17115-1-git-send-email-pkondeti-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>]
* [PATCH 3/5] USB: gadget: Use ep0out for control OUT data phase in ci13xxx_udc [not found] ` <1303977501-17115-1-git-send-email-pkondeti-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> @ 2011-04-28 7:58 ` Pavankumar Kondeti 0 siblings, 0 replies; 27+ messages in thread From: Pavankumar Kondeti @ 2011-04-28 7:58 UTC (permalink / raw) To: greg-U8xfFu+wG4EAvxtiuMwx3w, linux-usb-u79uwXL29TY76Z2rM5mHXA Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA, Pavankumar Kondeti The current code queue the control OUT data request to ep0in instead of ep0out. Check ep0_dir and use the correct control endpoint. Signed-off-by: Pavankumar Kondeti <pkondeti-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> --- drivers/usb/gadget/ci13xxx_udc.c | 20 ++++++++++++++------ 1 files changed, 14 insertions(+), 6 deletions(-) diff --git a/drivers/usb/gadget/ci13xxx_udc.c b/drivers/usb/gadget/ci13xxx_udc.c index 0e6d649..0076db2 100644 --- a/drivers/usb/gadget/ci13xxx_udc.c +++ b/drivers/usb/gadget/ci13xxx_udc.c @@ -1843,6 +1843,7 @@ __releases(mEp->lock) __acquires(mEp->lock) { struct ci13xxx_req *mReq, *mReqTemp; + struct ci13xxx_ep *mEpTemp = mEp; int uninitialized_var(retval); trace("%p", mEp); @@ -1859,7 +1860,10 @@ __acquires(mEp->lock) dbg_done(_usb_addr(mEp), mReq->ptr->token, retval); if (mReq->req.complete != NULL) { spin_unlock(mEp->lock); - mReq->req.complete(&mEp->ep, &mReq->req); + if ((mEp->type == USB_ENDPOINT_XFER_CONTROL) && + mReq->req.length) + mEpTemp = &_udc->ep0in; + mReq->req.complete(&mEpTemp->ep, &mReq->req); spin_lock(mEp->lock); } } @@ -2248,11 +2252,15 @@ static int ep_queue(struct usb_ep *ep, struct usb_request *req, spin_lock_irqsave(mEp->lock, flags); - if (mEp->type == USB_ENDPOINT_XFER_CONTROL && - !list_empty(&mEp->qh.queue)) { - _ep_nuke(mEp); - retval = -EOVERFLOW; - warn("endpoint ctrl %X nuked", _usb_addr(mEp)); + if (mEp->type == USB_ENDPOINT_XFER_CONTROL) { + if (req->length) + mEp = (_udc->ep0_dir == RX) ? + &_udc->ep0out : &_udc->ep0in; + if (!list_empty(&mEp->qh.queue)) { + _ep_nuke(mEp); + retval = -EOVERFLOW; + warn("endpoint ctrl %X nuked", _usb_addr(mEp)); + } } /* first nuke then test link, e.g. previous status has not sent */ -- Sent by a consultant of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum. -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH 4/5] USB: gadget: Initialize ep0 once while registering gadget in ci13xxx_udc 2011-04-28 7:58 [PATCH 1/5] USB: gadget: Fix unused variable warning in ci13xxx_udc Pavankumar Kondeti 2011-04-28 7:58 ` [PATCH 2/5] USB: gadget: Fix bug in endpoint feature request processing " Pavankumar Kondeti [not found] ` <1303977501-17115-1-git-send-email-pkondeti-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> @ 2011-04-28 7:58 ` Pavankumar Kondeti 2011-04-28 7:58 ` [PATCH 5/5] USB: OTG: msm: Clear in_lpm flag before enabling the IRQ in resume Pavankumar Kondeti ` (3 subsequent siblings) 6 siblings, 0 replies; 27+ messages in thread From: Pavankumar Kondeti @ 2011-04-28 7:58 UTC (permalink / raw) To: greg, linux-usb; +Cc: linux-arm-msm, Anji jonnala, Pavankumar Kondeti From: Anji jonnala <anjir@codeaurora.org> Some of the simulators may cache the ep0 maxpacket size to zero if the ep0 dQh is not setup before enabling the pullup. Hence Setup ep0 and initialize the dQh fields once while registering the gadget(before enabling the pullup). HSUSB Chipidea link controller spec says ep0 is enabled always in the HW. Hence disabling and enabling the ep0 as a part of reset interrupt is unneccesary. Remove the disable/enable ep0 logic from reset interrupt handling. Signed-off-by: Anji jonnala <anjir@codeaurora.org> Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org> --- drivers/usb/gadget/ci13xxx_udc.c | 31 +++++++++++++++++-------------- 1 files changed, 17 insertions(+), 14 deletions(-) diff --git a/drivers/usb/gadget/ci13xxx_udc.c b/drivers/usb/gadget/ci13xxx_udc.c index 0076db2..5fdc12d 100644 --- a/drivers/usb/gadget/ci13xxx_udc.c +++ b/drivers/usb/gadget/ci13xxx_udc.c @@ -1634,8 +1634,6 @@ static int _gadget_stop_activity(struct usb_gadget *gadget) gadget_for_each_ep(ep, gadget) { usb_ep_disable(ep); } - usb_ep_disable(&udc->ep0out.ep); - usb_ep_disable(&udc->ep0in.ep); if (udc->status != NULL) { usb_ep_free_request(&udc->ep0in.ep, udc->status); @@ -1678,18 +1676,10 @@ __acquires(udc->lock) if (retval) goto done; - retval = usb_ep_enable(&udc->ep0out.ep, &ctrl_endpt_out_desc); - if (retval) - goto done; + udc->status = usb_ep_alloc_request(&udc->ep0in.ep, GFP_ATOMIC); + if (udc->status == NULL) + retval = -ENOMEM; - retval = usb_ep_enable(&udc->ep0in.ep, &ctrl_endpt_in_desc); - if (!retval) { - udc->status = usb_ep_alloc_request(&udc->ep0in.ep, GFP_ATOMIC); - if (udc->status == NULL) { - usb_ep_disable(&udc->ep0out.ep); - retval = -ENOMEM; - } - } spin_lock(udc->lock); done: @@ -2120,7 +2110,12 @@ static int ep_enable(struct usb_ep *ep, (mEp->ep.maxpacket << ffs_nr(QH_MAX_PKT)) & QH_MAX_PKT; mEp->qh.ptr->td.next |= TD_TERMINATE; /* needed? */ - retval |= hw_ep_enable(mEp->num, mEp->dir, mEp->type); + /* + * Enable endpoints in the HW other than ep0 as ep0 + * is always enabled + */ + if (mEp->num) + retval |= hw_ep_enable(mEp->num, mEp->dir, mEp->type); spin_unlock_irqrestore(mEp->lock, flags); return retval; @@ -2609,6 +2604,14 @@ int usb_gadget_probe_driver(struct usb_gadget_driver *driver, } if (retval) goto done; + spin_unlock_irqrestore(udc->lock, flags); + retval = usb_ep_enable(&udc->ep0out.ep, &ctrl_endpt_out_desc); + if (retval) + return retval; + retval = usb_ep_enable(&udc->ep0in.ep, &ctrl_endpt_in_desc); + if (retval) + return retval; + spin_lock_irqsave(udc->lock, flags); udc->gadget.ep0 = &udc->ep0in.ep; /* bind gadget */ -- Sent by a consultant of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum. ^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH 5/5] USB: OTG: msm: Clear in_lpm flag before enabling the IRQ in resume 2011-04-28 7:58 [PATCH 1/5] USB: gadget: Fix unused variable warning in ci13xxx_udc Pavankumar Kondeti ` (2 preceding siblings ...) 2011-04-28 7:58 ` [PATCH 4/5] USB: gadget: Initialize ep0 once while registering gadget " Pavankumar Kondeti @ 2011-04-28 7:58 ` Pavankumar Kondeti 2011-04-28 10:01 ` [PATCH 1/5] USB: gadget: Fix unused variable warning in ci13xxx_udc Michal Nazarewicz ` (2 subsequent siblings) 6 siblings, 0 replies; 27+ messages in thread From: Pavankumar Kondeti @ 2011-04-28 7:58 UTC (permalink / raw) To: greg, linux-usb; +Cc: linux-arm-msm, Pavankumar Kondeti The current code is clearing in_lpm flag after enabling the IRQ. If IRQ comes immediately before in_lpm flag is set, it thinks that hardware is in low power mode and disables the IRQ. Fix this by clearing in_lpm flag before enabling the IRQ. Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org> --- drivers/usb/otg/msm_otg.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/usb/otg/msm_otg.c b/drivers/usb/otg/msm_otg.c index 2965986..f58b7da 100644 --- a/drivers/usb/otg/msm_otg.c +++ b/drivers/usb/otg/msm_otg.c @@ -389,14 +389,14 @@ skip_phy_resume: if (bus) set_bit(HCD_FLAG_HW_ACCESSIBLE, &(bus_to_hcd(bus))->flags); + atomic_set(&motg->in_lpm, 0); + if (motg->async_int) { motg->async_int = 0; pm_runtime_put(otg->dev); enable_irq(motg->irq); } - atomic_set(&motg->in_lpm, 0); - dev_info(otg->dev, "USB exited from low power mode\n"); return 0; -- Sent by a consultant of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum. ^ permalink raw reply related [flat|nested] 27+ messages in thread
* Re: [PATCH 1/5] USB: gadget: Fix unused variable warning in ci13xxx_udc 2011-04-28 7:58 [PATCH 1/5] USB: gadget: Fix unused variable warning in ci13xxx_udc Pavankumar Kondeti ` (3 preceding siblings ...) 2011-04-28 7:58 ` [PATCH 5/5] USB: OTG: msm: Clear in_lpm flag before enabling the IRQ in resume Pavankumar Kondeti @ 2011-04-28 10:01 ` Michal Nazarewicz 2011-04-28 10:19 ` Pavan Kondeti 2011-04-29 5:12 ` [PATCH 1/7] USB: gadget: Fix typo (s/EBUSY/-EBUSY) " Pavankumar Kondeti 2011-05-02 6:26 ` [PATCH V2 0/7] Typo & BUG fixes for MSM USB drivers Pavankumar Kondeti 6 siblings, 1 reply; 27+ messages in thread From: Michal Nazarewicz @ 2011-04-28 10:01 UTC (permalink / raw) To: greg, linux-usb, Pavankumar Kondeti; +Cc: linux-arm-msm On Thu, 28 Apr 2011 09:58:17 +0200, Pavankumar Kondeti <pkondeti@codeaurora.org> wrote: > Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org> > --- > drivers/usb/gadget/ci13xxx_udc.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/drivers/usb/gadget/ci13xxx_udc.c > b/drivers/usb/gadget/ci13xxx_udc.c > index e09178b..6a9ad59 100644 > --- a/drivers/usb/gadget/ci13xxx_udc.c > +++ b/drivers/usb/gadget/ci13xxx_udc.c > @@ -1843,7 +1843,7 @@ __releases(mEp->lock) > __acquires(mEp->lock) > { > struct ci13xxx_req *mReq, *mReqTemp; > - int retval; > + int uninitialized_var(retval); > trace("%p", mEp); Could we instead set it to 0? Also, it seems this function has a bug where it compares retval with EBUSY instead of -EBUSY: if (retval == EBUSY) retval = 0; Just saying in case anyone wants to take care of it. -- Best regards, _ _ .o. | Liege of Serenely Enlightened Majesty of o' \,=./ `o ..o | Computer Science, Michal "mina86" Nazarewicz (o o) ooo +-----<email/xmpp: mnazarewicz@google.com>-----ooO--(_)--Ooo-- ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH 1/5] USB: gadget: Fix unused variable warning in ci13xxx_udc 2011-04-28 10:01 ` [PATCH 1/5] USB: gadget: Fix unused variable warning in ci13xxx_udc Michal Nazarewicz @ 2011-04-28 10:19 ` Pavan Kondeti [not found] ` <4DB93F48.4050803-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> 0 siblings, 1 reply; 27+ messages in thread From: Pavan Kondeti @ 2011-04-28 10:19 UTC (permalink / raw) To: Michal Nazarewicz; +Cc: greg, linux-usb, linux-arm-msm On 4/28/2011 3:31 PM, Michal Nazarewicz wrote: > On Thu, 28 Apr 2011 09:58:17 +0200, Pavankumar Kondeti > <pkondeti@codeaurora.org> wrote: > >> Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org> >> --- >> drivers/usb/gadget/ci13xxx_udc.c | 2 +- >> 1 files changed, 1 insertions(+), 1 deletions(-) >> >> diff --git a/drivers/usb/gadget/ci13xxx_udc.c >> b/drivers/usb/gadget/ci13xxx_udc.c >> index e09178b..6a9ad59 100644 >> --- a/drivers/usb/gadget/ci13xxx_udc.c >> +++ b/drivers/usb/gadget/ci13xxx_udc.c >> @@ -1843,7 +1843,7 @@ __releases(mEp->lock) >> __acquires(mEp->lock) >> { >> struct ci13xxx_req *mReq, *mReqTemp; >> - int retval; >> + int uninitialized_var(retval); >> trace("%p", mEp); > > Could we instead set it to 0? > would it matter anyway? we return -EINVAL if the queue is empty. Otherwise we assign retval = _hardware_dequeue(). > Also, it seems this function has a bug where it compares retval > with EBUSY instead of -EBUSY: > > if (retval == EBUSY) > retval = 0; > > Just saying in case anyone wants to take care of it. > Thanks for pointing this out. I will send out a patch to fix this. As of now isr_tr_complete_low() return value is simply ignored for non-control endpoints. We never hit this case for control endpoint. -- Sent by a consultant of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum. ^ permalink raw reply [flat|nested] 27+ messages in thread
[parent not found: <4DB93F48.4050803-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>]
* Re: [PATCH 1/5] USB: gadget: Fix unused variable warning in ci13xxx_udc [not found] ` <4DB93F48.4050803-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> @ 2011-04-28 16:30 ` David Brown 0 siblings, 0 replies; 27+ messages in thread From: David Brown @ 2011-04-28 16:30 UTC (permalink / raw) To: Pavan Kondeti Cc: Michal Nazarewicz, greg-U8xfFu+wG4EAvxtiuMwx3w, linux-usb-u79uwXL29TY76Z2rM5mHXA, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA On Thu, Apr 28 2011, Pavan Kondeti wrote: > On 4/28/2011 3:31 PM, Michal Nazarewicz wrote: >> On Thu, 28 Apr 2011 09:58:17 +0200, Pavankumar Kondeti >> <pkondeti-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> wrote: >> >>> Signed-off-by: Pavankumar Kondeti <pkondeti-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> >>> --- >>> drivers/usb/gadget/ci13xxx_udc.c | 2 +- >>> 1 files changed, 1 insertions(+), 1 deletions(-) >>> >>> diff --git a/drivers/usb/gadget/ci13xxx_udc.c >>> b/drivers/usb/gadget/ci13xxx_udc.c >>> index e09178b..6a9ad59 100644 >>> --- a/drivers/usb/gadget/ci13xxx_udc.c >>> +++ b/drivers/usb/gadget/ci13xxx_udc.c >>> @@ -1843,7 +1843,7 @@ __releases(mEp->lock) >>> __acquires(mEp->lock) >>> { >>> struct ci13xxx_req *mReq, *mReqTemp; >>> - int retval; >>> + int uninitialized_var(retval); >>> trace("%p", mEp); >> >> Could we instead set it to 0? >> > > would it matter anyway? we return -EINVAL if the queue is empty. > Otherwise we assign retval = _hardware_dequeue(). It is indeed a legitimate mistake on gcc's part. Using uninitialized_var() avoids generating unnecessary code to initialize the value. On the other hand, initializing to zero would keep future possible changes from missing the warning. Anyone know of a concensus on this kind of case? David -- Sent by an employee of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum. -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH 1/7] USB: gadget: Fix typo (s/EBUSY/-EBUSY) in ci13xxx_udc 2011-04-28 7:58 [PATCH 1/5] USB: gadget: Fix unused variable warning in ci13xxx_udc Pavankumar Kondeti ` (4 preceding siblings ...) 2011-04-28 10:01 ` [PATCH 1/5] USB: gadget: Fix unused variable warning in ci13xxx_udc Michal Nazarewicz @ 2011-04-29 5:12 ` Pavankumar Kondeti 2011-04-29 5:12 ` [PATCH 2/7] USB: gadget: Use bitwise AND operator to test flags " Pavankumar Kondeti ` (5 more replies) 2011-05-02 6:26 ` [PATCH V2 0/7] Typo & BUG fixes for MSM USB drivers Pavankumar Kondeti 6 siblings, 6 replies; 27+ messages in thread From: Pavankumar Kondeti @ 2011-04-29 5:12 UTC (permalink / raw) To: greg, linux-usb; +Cc: linux-arm-msm, Pavankumar Kondeti Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org> --- drivers/usb/gadget/ci13xxx_udc.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/usb/gadget/ci13xxx_udc.c b/drivers/usb/gadget/ci13xxx_udc.c index e09178b..348d8a0 100644 --- a/drivers/usb/gadget/ci13xxx_udc.c +++ b/drivers/usb/gadget/ci13xxx_udc.c @@ -1864,7 +1864,7 @@ __acquires(mEp->lock) } } - if (retval == EBUSY) + if (retval == -EBUSY) retval = 0; if (retval < 0) dbg_event(_usb_addr(mEp), "DONE", retval); -- Sent by a consultant of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum. ^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH 2/7] USB: gadget: Use bitwise AND operator to test flags in ci13xxx_udc 2011-04-29 5:12 ` [PATCH 1/7] USB: gadget: Fix typo (s/EBUSY/-EBUSY) " Pavankumar Kondeti @ 2011-04-29 5:12 ` Pavankumar Kondeti 2011-04-29 5:12 ` [PATCH 3/7] USB: gadget: Fix unused variable warning " Pavankumar Kondeti ` (4 subsequent siblings) 5 siblings, 0 replies; 27+ messages in thread From: Pavankumar Kondeti @ 2011-04-29 5:12 UTC (permalink / raw) To: greg, linux-usb; +Cc: linux-arm-msm, Pavankumar Kondeti Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org> --- drivers/usb/gadget/ci13xxx_udc.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/usb/gadget/ci13xxx_udc.c b/drivers/usb/gadget/ci13xxx_udc.c index 348d8a0..03dff95 100644 --- a/drivers/usb/gadget/ci13xxx_udc.c +++ b/drivers/usb/gadget/ci13xxx_udc.c @@ -310,7 +310,7 @@ static int hw_device_reset(struct ci13xxx *udc) udc->udc_driver->notify_event(udc, CI13XXX_CONTROLLER_RESET_EVENT); - if (udc->udc_driver->flags && CI13XXX_DISABLE_STREAMING) + if (udc->udc_driver->flags & CI13XXX_DISABLE_STREAMING) hw_cwrite(CAP_USBMODE, USBMODE_SDIS, USBMODE_SDIS); /* USBMODE should be configured step by step */ -- Sent by a consultant of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum. ^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH 3/7] USB: gadget: Fix unused variable warning in ci13xxx_udc 2011-04-29 5:12 ` [PATCH 1/7] USB: gadget: Fix typo (s/EBUSY/-EBUSY) " Pavankumar Kondeti 2011-04-29 5:12 ` [PATCH 2/7] USB: gadget: Use bitwise AND operator to test flags " Pavankumar Kondeti @ 2011-04-29 5:12 ` Pavankumar Kondeti 2011-04-29 5:12 ` [PATCH 4/7] USB: gadget: Fix bug in endpoint feature request processing " Pavankumar Kondeti ` (3 subsequent siblings) 5 siblings, 0 replies; 27+ messages in thread From: Pavankumar Kondeti @ 2011-04-29 5:12 UTC (permalink / raw) To: greg, linux-usb; +Cc: linux-arm-msm, Pavankumar Kondeti Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org> --- drivers/usb/gadget/ci13xxx_udc.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/usb/gadget/ci13xxx_udc.c b/drivers/usb/gadget/ci13xxx_udc.c index 03dff95..92498ae 100644 --- a/drivers/usb/gadget/ci13xxx_udc.c +++ b/drivers/usb/gadget/ci13xxx_udc.c @@ -1843,7 +1843,7 @@ __releases(mEp->lock) __acquires(mEp->lock) { struct ci13xxx_req *mReq, *mReqTemp; - int retval; + int uninitialized_var(retval); trace("%p", mEp); -- Sent by a consultant of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum. ^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH 4/7] USB: gadget: Fix bug in endpoint feature request processing in ci13xxx_udc 2011-04-29 5:12 ` [PATCH 1/7] USB: gadget: Fix typo (s/EBUSY/-EBUSY) " Pavankumar Kondeti 2011-04-29 5:12 ` [PATCH 2/7] USB: gadget: Use bitwise AND operator to test flags " Pavankumar Kondeti 2011-04-29 5:12 ` [PATCH 3/7] USB: gadget: Fix unused variable warning " Pavankumar Kondeti @ 2011-04-29 5:12 ` Pavankumar Kondeti [not found] ` <1304053975-1960-1-git-send-email-pkondeti-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> ` (2 subsequent siblings) 5 siblings, 0 replies; 27+ messages in thread From: Pavankumar Kondeti @ 2011-04-29 5:12 UTC (permalink / raw) To: greg, linux-usb; +Cc: linux-arm-msm, Pavankumar Kondeti The OUT endpoints are stored in 0 - hw_ep_max/2 and IN endpoints are stored from hw_ep_max/2 - hw_ep_max in ci13xxx_ep array. Retrieve the IN endpoint correctly while processing endpoint feature requests. Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org> --- drivers/usb/gadget/ci13xxx_udc.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/drivers/usb/gadget/ci13xxx_udc.c b/drivers/usb/gadget/ci13xxx_udc.c index 92498ae..1b095cb 100644 --- a/drivers/usb/gadget/ci13xxx_udc.c +++ b/drivers/usb/gadget/ci13xxx_udc.c @@ -1894,7 +1894,7 @@ __acquires(udc->lock) for (i = 0; i < hw_ep_max; i++) { struct ci13xxx_ep *mEp = &udc->ci13xxx_ep[i]; - int type, num, err = -EINVAL; + int type, num, dir, err = -EINVAL; struct usb_ctrlrequest req; if (mEp->desc == NULL) @@ -1952,7 +1952,10 @@ __acquires(udc->lock) if (req.wLength != 0) break; num = le16_to_cpu(req.wIndex); + dir = num & USB_ENDPOINT_DIR_MASK; num &= USB_ENDPOINT_NUMBER_MASK; + if (dir) /* TX */ + num += hw_ep_max/2; if (!udc->ci13xxx_ep[num].wedge) { spin_unlock(udc->lock); err = usb_ep_clear_halt( @@ -2001,7 +2004,10 @@ __acquires(udc->lock) if (req.wLength != 0) break; num = le16_to_cpu(req.wIndex); + dir = num & USB_ENDPOINT_DIR_MASK; num &= USB_ENDPOINT_NUMBER_MASK; + if (dir) /* TX */ + num += hw_ep_max/2; spin_unlock(udc->lock); err = usb_ep_set_halt(&udc->ci13xxx_ep[num].ep); -- Sent by a consultant of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum. ^ permalink raw reply related [flat|nested] 27+ messages in thread
[parent not found: <1304053975-1960-1-git-send-email-pkondeti-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>]
* [PATCH 5/7] USB: gadget: Use ep0out for control OUT data phase in ci13xxx_udc [not found] ` <1304053975-1960-1-git-send-email-pkondeti-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> @ 2011-04-29 5:12 ` Pavankumar Kondeti 2011-04-29 16:04 ` [PATCH 1/7] USB: gadget: Fix typo (s/EBUSY/-EBUSY) " David Brown 1 sibling, 0 replies; 27+ messages in thread From: Pavankumar Kondeti @ 2011-04-29 5:12 UTC (permalink / raw) To: greg-U8xfFu+wG4EAvxtiuMwx3w, linux-usb-u79uwXL29TY76Z2rM5mHXA Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA, Pavankumar Kondeti The current code queue the control OUT data request to ep0in instead of ep0out. Check ep0_dir and use the correct control endpoint. Signed-off-by: Pavankumar Kondeti <pkondeti-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> --- drivers/usb/gadget/ci13xxx_udc.c | 20 ++++++++++++++------ 1 files changed, 14 insertions(+), 6 deletions(-) diff --git a/drivers/usb/gadget/ci13xxx_udc.c b/drivers/usb/gadget/ci13xxx_udc.c index 1b095cb..09c76a1 100644 --- a/drivers/usb/gadget/ci13xxx_udc.c +++ b/drivers/usb/gadget/ci13xxx_udc.c @@ -1843,6 +1843,7 @@ __releases(mEp->lock) __acquires(mEp->lock) { struct ci13xxx_req *mReq, *mReqTemp; + struct ci13xxx_ep *mEpTemp = mEp; int uninitialized_var(retval); trace("%p", mEp); @@ -1859,7 +1860,10 @@ __acquires(mEp->lock) dbg_done(_usb_addr(mEp), mReq->ptr->token, retval); if (mReq->req.complete != NULL) { spin_unlock(mEp->lock); - mReq->req.complete(&mEp->ep, &mReq->req); + if ((mEp->type == USB_ENDPOINT_XFER_CONTROL) && + mReq->req.length) + mEpTemp = &_udc->ep0in; + mReq->req.complete(&mEpTemp->ep, &mReq->req); spin_lock(mEp->lock); } } @@ -2248,11 +2252,15 @@ static int ep_queue(struct usb_ep *ep, struct usb_request *req, spin_lock_irqsave(mEp->lock, flags); - if (mEp->type == USB_ENDPOINT_XFER_CONTROL && - !list_empty(&mEp->qh.queue)) { - _ep_nuke(mEp); - retval = -EOVERFLOW; - warn("endpoint ctrl %X nuked", _usb_addr(mEp)); + if (mEp->type == USB_ENDPOINT_XFER_CONTROL) { + if (req->length) + mEp = (_udc->ep0_dir == RX) ? + &_udc->ep0out : &_udc->ep0in; + if (!list_empty(&mEp->qh.queue)) { + _ep_nuke(mEp); + retval = -EOVERFLOW; + warn("endpoint ctrl %X nuked", _usb_addr(mEp)); + } } /* first nuke then test link, e.g. previous status has not sent */ -- Sent by a consultant of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum. -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 27+ messages in thread
* Re: [PATCH 1/7] USB: gadget: Fix typo (s/EBUSY/-EBUSY) in ci13xxx_udc [not found] ` <1304053975-1960-1-git-send-email-pkondeti-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> 2011-04-29 5:12 ` [PATCH 5/7] USB: gadget: Use ep0out for control OUT data phase " Pavankumar Kondeti @ 2011-04-29 16:04 ` David Brown [not found] ` <8yay62txcwc.fsf-AOX6H5vLt3Uj8izMo0bVsAC/G2K4zDHf@public.gmane.org> 2011-05-02 6:09 ` Pavan Kondeti 1 sibling, 2 replies; 27+ messages in thread From: David Brown @ 2011-04-29 16:04 UTC (permalink / raw) To: Pavankumar Kondeti Cc: greg-U8xfFu+wG4EAvxtiuMwx3w, linux-usb-u79uwXL29TY76Z2rM5mHXA, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA On Thu, Apr 28 2011, Pavankumar Kondeti wrote: > Signed-off-by: Pavankumar Kondeti <pkondeti-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> It is helpful to maintains to describe second revisions of patches in the subject, something like: [PATCH v2 1/7] ... Also, for something this size, it would be helpful to have a coverletter explaining the what the series does. It is also useful to put a small history in the coverletter stating what is fixed in each update of the patch series. For example, this update fixes some small mistakes that were addressed on the list. Oh, and you should CC the people that mentioned things that need to be fixed so that they see the updates. David -- Sent by an employee of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum. -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 27+ messages in thread
[parent not found: <8yay62txcwc.fsf-AOX6H5vLt3Uj8izMo0bVsAC/G2K4zDHf@public.gmane.org>]
* Re: [PATCH 1/7] USB: gadget: Fix typo (s/EBUSY/-EBUSY) in ci13xxx_udc [not found] ` <8yay62txcwc.fsf-AOX6H5vLt3Uj8izMo0bVsAC/G2K4zDHf@public.gmane.org> @ 2011-04-30 0:29 ` Greg KH 2011-05-02 5:44 ` Pavan Kondeti 0 siblings, 1 reply; 27+ messages in thread From: Greg KH @ 2011-04-30 0:29 UTC (permalink / raw) To: Pavankumar Kondeti Cc: David Brown, linux-usb-u79uwXL29TY76Z2rM5mHXA, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA On Fri, Apr 29, 2011 at 09:04:03AM -0700, David Brown wrote: > On Thu, Apr 28 2011, Pavankumar Kondeti wrote: > > > Signed-off-by: Pavankumar Kondeti <pkondeti-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> > > It is helpful to maintains to describe second revisions of patches in > the subject, something like: [PATCH v2 1/7] ... Yes, I'm totally confused now as to what patches you want applied... So I'm just deleting all patches from you all from my patch queue. Pavankumar, please fix this up and resend. thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH 1/7] USB: gadget: Fix typo (s/EBUSY/-EBUSY) in ci13xxx_udc 2011-04-30 0:29 ` Greg KH @ 2011-05-02 5:44 ` Pavan Kondeti 0 siblings, 0 replies; 27+ messages in thread From: Pavan Kondeti @ 2011-05-02 5:44 UTC (permalink / raw) To: Greg KH; +Cc: David Brown, linux-usb, linux-arm-msm On 4/30/2011 5:59 AM, Greg KH wrote: > On Fri, Apr 29, 2011 at 09:04:03AM -0700, David Brown wrote: >> On Thu, Apr 28 2011, Pavankumar Kondeti wrote: >> >>> Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org> >> >> It is helpful to maintains to describe second revisions of patches in >> the subject, something like: [PATCH v2 1/7] ... > > Yes, I'm totally confused now as to what patches you want applied... > > So I'm just deleting all patches from you all from my patch queue. > Pavankumar, please fix this up and resend. > Sorry for the confusion. I will re-send the patch series. Thanks, Pavan -- Sent by a consultant of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum. ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH 1/7] USB: gadget: Fix typo (s/EBUSY/-EBUSY) in ci13xxx_udc 2011-04-29 16:04 ` [PATCH 1/7] USB: gadget: Fix typo (s/EBUSY/-EBUSY) " David Brown [not found] ` <8yay62txcwc.fsf-AOX6H5vLt3Uj8izMo0bVsAC/G2K4zDHf@public.gmane.org> @ 2011-05-02 6:09 ` Pavan Kondeti 1 sibling, 0 replies; 27+ messages in thread From: Pavan Kondeti @ 2011-05-02 6:09 UTC (permalink / raw) To: David Brown; +Cc: greg, linux-usb, linux-arm-msm Hi David, Thanks for your feedback. I will re-send the patch series. Thanks, Pavan On 4/29/2011 9:34 PM, David Brown wrote: > On Thu, Apr 28 2011, Pavankumar Kondeti wrote: > >> Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org> > > It is helpful to maintains to describe second revisions of patches in > the subject, something like: [PATCH v2 1/7] ... > > Also, for something this size, it would be helpful to have a coverletter > explaining the what the series does. It is also useful to put a small > history in the coverletter stating what is fixed in each update of the > patch series. For example, this update fixes some small mistakes that > were addressed on the list. > > Oh, and you should CC the people that mentioned things that need to be > fixed so that they see the updates. > > David > -- Sent by a consultant of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum. ^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH 6/7] USB: gadget: Initialize ep0 once while registering gadget in ci13xxx_udc 2011-04-29 5:12 ` [PATCH 1/7] USB: gadget: Fix typo (s/EBUSY/-EBUSY) " Pavankumar Kondeti ` (3 preceding siblings ...) [not found] ` <1304053975-1960-1-git-send-email-pkondeti-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> @ 2011-04-29 5:12 ` Pavankumar Kondeti 2011-04-29 5:12 ` [PATCH 7/7] USB: OTG: msm: Clear in_lpm flag before enabling the IRQ in resume Pavankumar Kondeti 5 siblings, 0 replies; 27+ messages in thread From: Pavankumar Kondeti @ 2011-04-29 5:12 UTC (permalink / raw) To: greg, linux-usb; +Cc: linux-arm-msm, Anji jonnala, Pavankumar Kondeti From: Anji jonnala <anjir@codeaurora.org> Some of the simulators may cache the ep0 maxpacket size to zero if the ep0 dQh is not setup before enabling the pullup. Hence Setup ep0 and initialize the dQh fields once while registering the gadget(before enabling the pullup). HSUSB Chipidea link controller spec says ep0 is enabled always in the HW. Hence disabling and enabling the ep0 as a part of reset interrupt is unneccesary. Remove the disable/enable ep0 logic from reset interrupt handling. Signed-off-by: Anji jonnala <anjir@codeaurora.org> Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org> --- drivers/usb/gadget/ci13xxx_udc.c | 31 +++++++++++++++++-------------- 1 files changed, 17 insertions(+), 14 deletions(-) diff --git a/drivers/usb/gadget/ci13xxx_udc.c b/drivers/usb/gadget/ci13xxx_udc.c index 09c76a1..68123ee 100644 --- a/drivers/usb/gadget/ci13xxx_udc.c +++ b/drivers/usb/gadget/ci13xxx_udc.c @@ -1634,8 +1634,6 @@ static int _gadget_stop_activity(struct usb_gadget *gadget) gadget_for_each_ep(ep, gadget) { usb_ep_disable(ep); } - usb_ep_disable(&udc->ep0out.ep); - usb_ep_disable(&udc->ep0in.ep); if (udc->status != NULL) { usb_ep_free_request(&udc->ep0in.ep, udc->status); @@ -1678,18 +1676,10 @@ __acquires(udc->lock) if (retval) goto done; - retval = usb_ep_enable(&udc->ep0out.ep, &ctrl_endpt_out_desc); - if (retval) - goto done; + udc->status = usb_ep_alloc_request(&udc->ep0in.ep, GFP_ATOMIC); + if (udc->status == NULL) + retval = -ENOMEM; - retval = usb_ep_enable(&udc->ep0in.ep, &ctrl_endpt_in_desc); - if (!retval) { - udc->status = usb_ep_alloc_request(&udc->ep0in.ep, GFP_ATOMIC); - if (udc->status == NULL) { - usb_ep_disable(&udc->ep0out.ep); - retval = -ENOMEM; - } - } spin_lock(udc->lock); done: @@ -2120,7 +2110,12 @@ static int ep_enable(struct usb_ep *ep, (mEp->ep.maxpacket << ffs_nr(QH_MAX_PKT)) & QH_MAX_PKT; mEp->qh.ptr->td.next |= TD_TERMINATE; /* needed? */ - retval |= hw_ep_enable(mEp->num, mEp->dir, mEp->type); + /* + * Enable endpoints in the HW other than ep0 as ep0 + * is always enabled + */ + if (mEp->num) + retval |= hw_ep_enable(mEp->num, mEp->dir, mEp->type); spin_unlock_irqrestore(mEp->lock, flags); return retval; @@ -2609,6 +2604,14 @@ int usb_gadget_probe_driver(struct usb_gadget_driver *driver, } if (retval) goto done; + spin_unlock_irqrestore(udc->lock, flags); + retval = usb_ep_enable(&udc->ep0out.ep, &ctrl_endpt_out_desc); + if (retval) + return retval; + retval = usb_ep_enable(&udc->ep0in.ep, &ctrl_endpt_in_desc); + if (retval) + return retval; + spin_lock_irqsave(udc->lock, flags); udc->gadget.ep0 = &udc->ep0in.ep; /* bind gadget */ -- Sent by a consultant of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum. ^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH 7/7] USB: OTG: msm: Clear in_lpm flag before enabling the IRQ in resume 2011-04-29 5:12 ` [PATCH 1/7] USB: gadget: Fix typo (s/EBUSY/-EBUSY) " Pavankumar Kondeti ` (4 preceding siblings ...) 2011-04-29 5:12 ` [PATCH 6/7] USB: gadget: Initialize ep0 once while registering gadget " Pavankumar Kondeti @ 2011-04-29 5:12 ` Pavankumar Kondeti 5 siblings, 0 replies; 27+ messages in thread From: Pavankumar Kondeti @ 2011-04-29 5:12 UTC (permalink / raw) To: greg, linux-usb; +Cc: linux-arm-msm, Pavankumar Kondeti The current code is clearing in_lpm flag after enabling the IRQ. If IRQ comes immediately before in_lpm flag is set, it thinks that hardware is in low power mode and disables the IRQ. Fix this by clearing in_lpm flag before enabling the IRQ. Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org> --- drivers/usb/otg/msm_otg.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/usb/otg/msm_otg.c b/drivers/usb/otg/msm_otg.c index 2965986..f58b7da 100644 --- a/drivers/usb/otg/msm_otg.c +++ b/drivers/usb/otg/msm_otg.c @@ -389,14 +389,14 @@ skip_phy_resume: if (bus) set_bit(HCD_FLAG_HW_ACCESSIBLE, &(bus_to_hcd(bus))->flags); + atomic_set(&motg->in_lpm, 0); + if (motg->async_int) { motg->async_int = 0; pm_runtime_put(otg->dev); enable_irq(motg->irq); } - atomic_set(&motg->in_lpm, 0); - dev_info(otg->dev, "USB exited from low power mode\n"); return 0; -- Sent by a consultant of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum. ^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH V2 0/7] Typo & BUG fixes for MSM USB drivers 2011-04-28 7:58 [PATCH 1/5] USB: gadget: Fix unused variable warning in ci13xxx_udc Pavankumar Kondeti ` (5 preceding siblings ...) 2011-04-29 5:12 ` [PATCH 1/7] USB: gadget: Fix typo (s/EBUSY/-EBUSY) " Pavankumar Kondeti @ 2011-05-02 6:26 ` Pavankumar Kondeti [not found] ` <1304317593-21808-1-git-send-email-pkondeti-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> ` (5 more replies) 6 siblings, 6 replies; 27+ messages in thread From: Pavankumar Kondeti @ 2011-05-02 6:26 UTC (permalink / raw) To: greg, linux-usb; +Cc: linux-arm-msm, davidb, mina86, Pavankumar Kondeti This patch series addresses the following issues. 1. EP0 is enabled after enabling pull-up in ci13xxx_udc. But some simulators are caching the ep0 max packet size at the time of pull-up enable due to which USB is not working. Fix this by initializing ep0 at gadget driver registration. 2. Retrieve the IN endpoint correctly from ep array while processing endpoint feature requests. 3. Data phase on control OUT is not working. 4. USB does not work some times after resume due to a race condition involved in clearing in_lpm flag. Other than above issues, a couple typo mistakes are corrected in this patch series. Changelog: - v2 - Resending patches with V2 tag :-) - logical AND operator is used instead of bitwiese AND for testing flags. - Fixes a typo error (s/EBUSY/-EBUSY) pointed out by Michal. Anji jonnala (1): USB: gadget: Initialize ep0 once while registering gadget in ci13xxx_udc Pavankumar Kondeti (6): USB: gadget: Fix typo (s/EBUSY/-EBUSY) in ci13xxx_udc USB: gadget: Use bitwise AND operator to test flags in ci13xxx_udc USB: gadget: Fix unused variable warning in ci13xxx_udc USB: gadget: Fix bug in endpoint feature request processing in ci13xxx_udc USB: gadget: Use ep0out for control OUT data phase in ci13xxx_udc USB: OTG: msm: Clear in_lpm flag before enabling the IRQ in resume drivers/usb/gadget/ci13xxx_udc.c | 65 ++++++++++++++++++++++++-------------- drivers/usb/otg/msm_otg.c | 4 +- 2 files changed, 43 insertions(+), 26 deletions(-) -- Sent by a consultant of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum. ^ permalink raw reply [flat|nested] 27+ messages in thread
[parent not found: <1304317593-21808-1-git-send-email-pkondeti-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>]
* [PATCH V2 1/7] USB: gadget: Fix typo (s/EBUSY/-EBUSY) in ci13xxx_udc [not found] ` <1304317593-21808-1-git-send-email-pkondeti-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> @ 2011-05-02 6:26 ` Pavankumar Kondeti 2011-05-02 6:26 ` [PATCH V2 3/7] USB: gadget: Fix unused variable warning " Pavankumar Kondeti 1 sibling, 0 replies; 27+ messages in thread From: Pavankumar Kondeti @ 2011-05-02 6:26 UTC (permalink / raw) To: greg-U8xfFu+wG4EAvxtiuMwx3w, linux-usb-u79uwXL29TY76Z2rM5mHXA Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA, davidb-sgV2jX0FEOL9JmXXK+q4OQ, mina86-deATy8a+UHjQT0dZR+AlfA, Pavankumar Kondeti Signed-off-by: Pavankumar Kondeti <pkondeti-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> --- drivers/usb/gadget/ci13xxx_udc.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/usb/gadget/ci13xxx_udc.c b/drivers/usb/gadget/ci13xxx_udc.c index e09178b..348d8a0 100644 --- a/drivers/usb/gadget/ci13xxx_udc.c +++ b/drivers/usb/gadget/ci13xxx_udc.c @@ -1864,7 +1864,7 @@ __acquires(mEp->lock) } } - if (retval == EBUSY) + if (retval == -EBUSY) retval = 0; if (retval < 0) dbg_event(_usb_addr(mEp), "DONE", retval); -- Sent by a consultant of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum. -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH V2 3/7] USB: gadget: Fix unused variable warning in ci13xxx_udc [not found] ` <1304317593-21808-1-git-send-email-pkondeti-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> 2011-05-02 6:26 ` [PATCH V2 1/7] USB: gadget: Fix typo (s/EBUSY/-EBUSY) in ci13xxx_udc Pavankumar Kondeti @ 2011-05-02 6:26 ` Pavankumar Kondeti 1 sibling, 0 replies; 27+ messages in thread From: Pavankumar Kondeti @ 2011-05-02 6:26 UTC (permalink / raw) To: greg-U8xfFu+wG4EAvxtiuMwx3w, linux-usb-u79uwXL29TY76Z2rM5mHXA Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA, davidb-sgV2jX0FEOL9JmXXK+q4OQ, mina86-deATy8a+UHjQT0dZR+AlfA, Pavankumar Kondeti Signed-off-by: Pavankumar Kondeti <pkondeti-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> --- drivers/usb/gadget/ci13xxx_udc.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/usb/gadget/ci13xxx_udc.c b/drivers/usb/gadget/ci13xxx_udc.c index 03dff95..92498ae 100644 --- a/drivers/usb/gadget/ci13xxx_udc.c +++ b/drivers/usb/gadget/ci13xxx_udc.c @@ -1843,7 +1843,7 @@ __releases(mEp->lock) __acquires(mEp->lock) { struct ci13xxx_req *mReq, *mReqTemp; - int retval; + int uninitialized_var(retval); trace("%p", mEp); -- Sent by a consultant of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum. -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH V2 2/7] USB: gadget: Use bitwise AND operator to test flags in ci13xxx_udc 2011-05-02 6:26 ` [PATCH V2 0/7] Typo & BUG fixes for MSM USB drivers Pavankumar Kondeti [not found] ` <1304317593-21808-1-git-send-email-pkondeti-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> @ 2011-05-02 6:26 ` Pavankumar Kondeti 2011-05-02 6:26 ` [PATCH V2 4/7] USB: gadget: Fix bug in endpoint feature request processing " Pavankumar Kondeti ` (3 subsequent siblings) 5 siblings, 0 replies; 27+ messages in thread From: Pavankumar Kondeti @ 2011-05-02 6:26 UTC (permalink / raw) To: greg, linux-usb; +Cc: linux-arm-msm, davidb, mina86, Pavankumar Kondeti Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org> --- drivers/usb/gadget/ci13xxx_udc.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/usb/gadget/ci13xxx_udc.c b/drivers/usb/gadget/ci13xxx_udc.c index 348d8a0..03dff95 100644 --- a/drivers/usb/gadget/ci13xxx_udc.c +++ b/drivers/usb/gadget/ci13xxx_udc.c @@ -310,7 +310,7 @@ static int hw_device_reset(struct ci13xxx *udc) udc->udc_driver->notify_event(udc, CI13XXX_CONTROLLER_RESET_EVENT); - if (udc->udc_driver->flags && CI13XXX_DISABLE_STREAMING) + if (udc->udc_driver->flags & CI13XXX_DISABLE_STREAMING) hw_cwrite(CAP_USBMODE, USBMODE_SDIS, USBMODE_SDIS); /* USBMODE should be configured step by step */ -- Sent by a consultant of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum. ^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH V2 4/7] USB: gadget: Fix bug in endpoint feature request processing in ci13xxx_udc 2011-05-02 6:26 ` [PATCH V2 0/7] Typo & BUG fixes for MSM USB drivers Pavankumar Kondeti [not found] ` <1304317593-21808-1-git-send-email-pkondeti-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> 2011-05-02 6:26 ` [PATCH V2 2/7] USB: gadget: Use bitwise AND operator to test flags " Pavankumar Kondeti @ 2011-05-02 6:26 ` Pavankumar Kondeti 2011-05-02 6:26 ` [PATCH V2 5/7] USB: gadget: Use ep0out for control OUT data phase " Pavankumar Kondeti ` (2 subsequent siblings) 5 siblings, 0 replies; 27+ messages in thread From: Pavankumar Kondeti @ 2011-05-02 6:26 UTC (permalink / raw) To: greg, linux-usb; +Cc: linux-arm-msm, davidb, mina86, Pavankumar Kondeti The OUT endpoints are stored in 0 - hw_ep_max/2 and IN endpoints are stored from hw_ep_max/2 - hw_ep_max in ci13xxx_ep array. Retrieve the IN endpoint correctly while processing endpoint feature requests. Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org> --- drivers/usb/gadget/ci13xxx_udc.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/drivers/usb/gadget/ci13xxx_udc.c b/drivers/usb/gadget/ci13xxx_udc.c index 92498ae..1b095cb 100644 --- a/drivers/usb/gadget/ci13xxx_udc.c +++ b/drivers/usb/gadget/ci13xxx_udc.c @@ -1894,7 +1894,7 @@ __acquires(udc->lock) for (i = 0; i < hw_ep_max; i++) { struct ci13xxx_ep *mEp = &udc->ci13xxx_ep[i]; - int type, num, err = -EINVAL; + int type, num, dir, err = -EINVAL; struct usb_ctrlrequest req; if (mEp->desc == NULL) @@ -1952,7 +1952,10 @@ __acquires(udc->lock) if (req.wLength != 0) break; num = le16_to_cpu(req.wIndex); + dir = num & USB_ENDPOINT_DIR_MASK; num &= USB_ENDPOINT_NUMBER_MASK; + if (dir) /* TX */ + num += hw_ep_max/2; if (!udc->ci13xxx_ep[num].wedge) { spin_unlock(udc->lock); err = usb_ep_clear_halt( @@ -2001,7 +2004,10 @@ __acquires(udc->lock) if (req.wLength != 0) break; num = le16_to_cpu(req.wIndex); + dir = num & USB_ENDPOINT_DIR_MASK; num &= USB_ENDPOINT_NUMBER_MASK; + if (dir) /* TX */ + num += hw_ep_max/2; spin_unlock(udc->lock); err = usb_ep_set_halt(&udc->ci13xxx_ep[num].ep); -- Sent by a consultant of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum. ^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH V2 5/7] USB: gadget: Use ep0out for control OUT data phase in ci13xxx_udc 2011-05-02 6:26 ` [PATCH V2 0/7] Typo & BUG fixes for MSM USB drivers Pavankumar Kondeti ` (2 preceding siblings ...) 2011-05-02 6:26 ` [PATCH V2 4/7] USB: gadget: Fix bug in endpoint feature request processing " Pavankumar Kondeti @ 2011-05-02 6:26 ` Pavankumar Kondeti 2011-05-02 6:26 ` [PATCH V2 6/7] USB: gadget: Initialize ep0 once while registering gadget " Pavankumar Kondeti 2011-05-02 6:26 ` [PATCH V2 7/7] USB: OTG: msm: Clear in_lpm flag before enabling the IRQ in resume Pavankumar Kondeti 5 siblings, 0 replies; 27+ messages in thread From: Pavankumar Kondeti @ 2011-05-02 6:26 UTC (permalink / raw) To: greg, linux-usb; +Cc: linux-arm-msm, davidb, mina86, Pavankumar Kondeti The current code queue the control OUT data request to ep0in instead of ep0out. Check ep0_dir and use the correct control endpoint. Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org> --- drivers/usb/gadget/ci13xxx_udc.c | 20 ++++++++++++++------ 1 files changed, 14 insertions(+), 6 deletions(-) diff --git a/drivers/usb/gadget/ci13xxx_udc.c b/drivers/usb/gadget/ci13xxx_udc.c index 1b095cb..09c76a1 100644 --- a/drivers/usb/gadget/ci13xxx_udc.c +++ b/drivers/usb/gadget/ci13xxx_udc.c @@ -1843,6 +1843,7 @@ __releases(mEp->lock) __acquires(mEp->lock) { struct ci13xxx_req *mReq, *mReqTemp; + struct ci13xxx_ep *mEpTemp = mEp; int uninitialized_var(retval); trace("%p", mEp); @@ -1859,7 +1860,10 @@ __acquires(mEp->lock) dbg_done(_usb_addr(mEp), mReq->ptr->token, retval); if (mReq->req.complete != NULL) { spin_unlock(mEp->lock); - mReq->req.complete(&mEp->ep, &mReq->req); + if ((mEp->type == USB_ENDPOINT_XFER_CONTROL) && + mReq->req.length) + mEpTemp = &_udc->ep0in; + mReq->req.complete(&mEpTemp->ep, &mReq->req); spin_lock(mEp->lock); } } @@ -2248,11 +2252,15 @@ static int ep_queue(struct usb_ep *ep, struct usb_request *req, spin_lock_irqsave(mEp->lock, flags); - if (mEp->type == USB_ENDPOINT_XFER_CONTROL && - !list_empty(&mEp->qh.queue)) { - _ep_nuke(mEp); - retval = -EOVERFLOW; - warn("endpoint ctrl %X nuked", _usb_addr(mEp)); + if (mEp->type == USB_ENDPOINT_XFER_CONTROL) { + if (req->length) + mEp = (_udc->ep0_dir == RX) ? + &_udc->ep0out : &_udc->ep0in; + if (!list_empty(&mEp->qh.queue)) { + _ep_nuke(mEp); + retval = -EOVERFLOW; + warn("endpoint ctrl %X nuked", _usb_addr(mEp)); + } } /* first nuke then test link, e.g. previous status has not sent */ -- Sent by a consultant of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum. ^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH V2 6/7] USB: gadget: Initialize ep0 once while registering gadget in ci13xxx_udc 2011-05-02 6:26 ` [PATCH V2 0/7] Typo & BUG fixes for MSM USB drivers Pavankumar Kondeti ` (3 preceding siblings ...) 2011-05-02 6:26 ` [PATCH V2 5/7] USB: gadget: Use ep0out for control OUT data phase " Pavankumar Kondeti @ 2011-05-02 6:26 ` Pavankumar Kondeti 2011-05-02 6:26 ` [PATCH V2 7/7] USB: OTG: msm: Clear in_lpm flag before enabling the IRQ in resume Pavankumar Kondeti 5 siblings, 0 replies; 27+ messages in thread From: Pavankumar Kondeti @ 2011-05-02 6:26 UTC (permalink / raw) To: greg, linux-usb Cc: linux-arm-msm, davidb, mina86, Anji jonnala, Pavankumar Kondeti From: Anji jonnala <anjir@codeaurora.org> Some of the simulators may cache the ep0 maxpacket size to zero if the ep0 dQh is not setup before enabling the pullup. Hence Setup ep0 and initialize the dQh fields once while registering the gadget(before enabling the pullup). HSUSB Chipidea link controller spec says ep0 is enabled always in the HW. Hence disabling and enabling the ep0 as a part of reset interrupt is unneccesary. Remove the disable/enable ep0 logic from reset interrupt handling. Signed-off-by: Anji jonnala <anjir@codeaurora.org> Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org> --- drivers/usb/gadget/ci13xxx_udc.c | 31 +++++++++++++++++-------------- 1 files changed, 17 insertions(+), 14 deletions(-) diff --git a/drivers/usb/gadget/ci13xxx_udc.c b/drivers/usb/gadget/ci13xxx_udc.c index 09c76a1..68123ee 100644 --- a/drivers/usb/gadget/ci13xxx_udc.c +++ b/drivers/usb/gadget/ci13xxx_udc.c @@ -1634,8 +1634,6 @@ static int _gadget_stop_activity(struct usb_gadget *gadget) gadget_for_each_ep(ep, gadget) { usb_ep_disable(ep); } - usb_ep_disable(&udc->ep0out.ep); - usb_ep_disable(&udc->ep0in.ep); if (udc->status != NULL) { usb_ep_free_request(&udc->ep0in.ep, udc->status); @@ -1678,18 +1676,10 @@ __acquires(udc->lock) if (retval) goto done; - retval = usb_ep_enable(&udc->ep0out.ep, &ctrl_endpt_out_desc); - if (retval) - goto done; + udc->status = usb_ep_alloc_request(&udc->ep0in.ep, GFP_ATOMIC); + if (udc->status == NULL) + retval = -ENOMEM; - retval = usb_ep_enable(&udc->ep0in.ep, &ctrl_endpt_in_desc); - if (!retval) { - udc->status = usb_ep_alloc_request(&udc->ep0in.ep, GFP_ATOMIC); - if (udc->status == NULL) { - usb_ep_disable(&udc->ep0out.ep); - retval = -ENOMEM; - } - } spin_lock(udc->lock); done: @@ -2120,7 +2110,12 @@ static int ep_enable(struct usb_ep *ep, (mEp->ep.maxpacket << ffs_nr(QH_MAX_PKT)) & QH_MAX_PKT; mEp->qh.ptr->td.next |= TD_TERMINATE; /* needed? */ - retval |= hw_ep_enable(mEp->num, mEp->dir, mEp->type); + /* + * Enable endpoints in the HW other than ep0 as ep0 + * is always enabled + */ + if (mEp->num) + retval |= hw_ep_enable(mEp->num, mEp->dir, mEp->type); spin_unlock_irqrestore(mEp->lock, flags); return retval; @@ -2609,6 +2604,14 @@ int usb_gadget_probe_driver(struct usb_gadget_driver *driver, } if (retval) goto done; + spin_unlock_irqrestore(udc->lock, flags); + retval = usb_ep_enable(&udc->ep0out.ep, &ctrl_endpt_out_desc); + if (retval) + return retval; + retval = usb_ep_enable(&udc->ep0in.ep, &ctrl_endpt_in_desc); + if (retval) + return retval; + spin_lock_irqsave(udc->lock, flags); udc->gadget.ep0 = &udc->ep0in.ep; /* bind gadget */ -- Sent by a consultant of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum. ^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH V2 7/7] USB: OTG: msm: Clear in_lpm flag before enabling the IRQ in resume 2011-05-02 6:26 ` [PATCH V2 0/7] Typo & BUG fixes for MSM USB drivers Pavankumar Kondeti ` (4 preceding siblings ...) 2011-05-02 6:26 ` [PATCH V2 6/7] USB: gadget: Initialize ep0 once while registering gadget " Pavankumar Kondeti @ 2011-05-02 6:26 ` Pavankumar Kondeti 5 siblings, 0 replies; 27+ messages in thread From: Pavankumar Kondeti @ 2011-05-02 6:26 UTC (permalink / raw) To: greg, linux-usb; +Cc: linux-arm-msm, davidb, mina86, Pavankumar Kondeti The current code is clearing in_lpm flag after enabling the IRQ. If IRQ comes immediately before in_lpm flag is set, it thinks that hardware is in low power mode and disables the IRQ. Fix this by clearing in_lpm flag before enabling the IRQ. Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org> --- drivers/usb/otg/msm_otg.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/usb/otg/msm_otg.c b/drivers/usb/otg/msm_otg.c index 2965986..f58b7da 100644 --- a/drivers/usb/otg/msm_otg.c +++ b/drivers/usb/otg/msm_otg.c @@ -389,14 +389,14 @@ skip_phy_resume: if (bus) set_bit(HCD_FLAG_HW_ACCESSIBLE, &(bus_to_hcd(bus))->flags); + atomic_set(&motg->in_lpm, 0); + if (motg->async_int) { motg->async_int = 0; pm_runtime_put(otg->dev); enable_irq(motg->irq); } - atomic_set(&motg->in_lpm, 0); - dev_info(otg->dev, "USB exited from low power mode\n"); return 0; -- Sent by a consultant of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum. ^ permalink raw reply related [flat|nested] 27+ messages in thread
end of thread, other threads:[~2011-05-02 6:27 UTC | newest]
Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-04-28 7:58 [PATCH 1/5] USB: gadget: Fix unused variable warning in ci13xxx_udc Pavankumar Kondeti
2011-04-28 7:58 ` [PATCH 2/5] USB: gadget: Fix bug in endpoint feature request processing " Pavankumar Kondeti
[not found] ` <1303977501-17115-1-git-send-email-pkondeti-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2011-04-28 7:58 ` [PATCH 3/5] USB: gadget: Use ep0out for control OUT data phase " Pavankumar Kondeti
2011-04-28 7:58 ` [PATCH 4/5] USB: gadget: Initialize ep0 once while registering gadget " Pavankumar Kondeti
2011-04-28 7:58 ` [PATCH 5/5] USB: OTG: msm: Clear in_lpm flag before enabling the IRQ in resume Pavankumar Kondeti
2011-04-28 10:01 ` [PATCH 1/5] USB: gadget: Fix unused variable warning in ci13xxx_udc Michal Nazarewicz
2011-04-28 10:19 ` Pavan Kondeti
[not found] ` <4DB93F48.4050803-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2011-04-28 16:30 ` David Brown
2011-04-29 5:12 ` [PATCH 1/7] USB: gadget: Fix typo (s/EBUSY/-EBUSY) " Pavankumar Kondeti
2011-04-29 5:12 ` [PATCH 2/7] USB: gadget: Use bitwise AND operator to test flags " Pavankumar Kondeti
2011-04-29 5:12 ` [PATCH 3/7] USB: gadget: Fix unused variable warning " Pavankumar Kondeti
2011-04-29 5:12 ` [PATCH 4/7] USB: gadget: Fix bug in endpoint feature request processing " Pavankumar Kondeti
[not found] ` <1304053975-1960-1-git-send-email-pkondeti-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2011-04-29 5:12 ` [PATCH 5/7] USB: gadget: Use ep0out for control OUT data phase " Pavankumar Kondeti
2011-04-29 16:04 ` [PATCH 1/7] USB: gadget: Fix typo (s/EBUSY/-EBUSY) " David Brown
[not found] ` <8yay62txcwc.fsf-AOX6H5vLt3Uj8izMo0bVsAC/G2K4zDHf@public.gmane.org>
2011-04-30 0:29 ` Greg KH
2011-05-02 5:44 ` Pavan Kondeti
2011-05-02 6:09 ` Pavan Kondeti
2011-04-29 5:12 ` [PATCH 6/7] USB: gadget: Initialize ep0 once while registering gadget " Pavankumar Kondeti
2011-04-29 5:12 ` [PATCH 7/7] USB: OTG: msm: Clear in_lpm flag before enabling the IRQ in resume Pavankumar Kondeti
2011-05-02 6:26 ` [PATCH V2 0/7] Typo & BUG fixes for MSM USB drivers Pavankumar Kondeti
[not found] ` <1304317593-21808-1-git-send-email-pkondeti-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2011-05-02 6:26 ` [PATCH V2 1/7] USB: gadget: Fix typo (s/EBUSY/-EBUSY) in ci13xxx_udc Pavankumar Kondeti
2011-05-02 6:26 ` [PATCH V2 3/7] USB: gadget: Fix unused variable warning " Pavankumar Kondeti
2011-05-02 6:26 ` [PATCH V2 2/7] USB: gadget: Use bitwise AND operator to test flags " Pavankumar Kondeti
2011-05-02 6:26 ` [PATCH V2 4/7] USB: gadget: Fix bug in endpoint feature request processing " Pavankumar Kondeti
2011-05-02 6:26 ` [PATCH V2 5/7] USB: gadget: Use ep0out for control OUT data phase " Pavankumar Kondeti
2011-05-02 6:26 ` [PATCH V2 6/7] USB: gadget: Initialize ep0 once while registering gadget " Pavankumar Kondeti
2011-05-02 6:26 ` [PATCH V2 7/7] USB: OTG: msm: Clear in_lpm flag before enabling the IRQ in resume Pavankumar Kondeti
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).