On 5/4/2012 4:33 PM, Felipe Balbi wrote:
On Fri, May 04, 2012 at 04:28:34PM +0530, Pratyush Anand wrote:
On 5/4/2012 4:11 PM, Felipe Balbi wrote:
On Fri, May 04, 2012 at 04:06:22PM +0530, Pratyush Anand wrote:
On 5/4/2012 3:15 PM, Felipe Balbi wrote:
On Thu, May 03, 2012 at 07:05:05PM +0530, Pratyush Anand wrote:
If transfer not ready is received before ep_queue is called for control
out transfer then pending flag is set. Handling of this case was not
correct.
TRB size must be multiple of maxpacket for all control out transfer.
dma sync function should also be called before start transfer.
A routine to delegate transfer for control data has been extracted out
>from dwc3_ep0_do_control_data. Same routine has been called from
ep_queue too in case of pending flag is set.
Signed-off-by: Pratyush Anand<pratyush.anand@xxxxxx>
Signed-off-by: Felipe Balbi<balbi@xxxxxx>
---
drivers/usb/dwc3/ep0.c | 90 +++++++++++++++++++++++++----------------------
1 files changed, 48 insertions(+), 42 deletions(-)
diff --git a/drivers/usb/dwc3/ep0.c b/drivers/usb/dwc3/ep0.c
index 1f917d9..f0c5f85 100644
--- a/drivers/usb/dwc3/ep0.c
+++ b/drivers/usb/dwc3/ep0.c
@@ -119,6 +119,49 @@ static int dwc3_ep0_start_trans(struct dwc3 *dwc, u8 epnum, dma_addr_t buf_dma,
return 0;
}
+static int dwc3_ep0_start_data_trans(struct dwc3 *dwc,
+ struct dwc3_request *req)
+{
+ u32 transfer_size = req->request.length;
+ struct dwc3_ep *dep = dwc->eps[0];
you can't hardcode this to ep0. Physical endpoint 0 is *ONLY* for OUT
direction. physical endpoint 1 is *ONLY* for in direction.
But , If I see original dwc3_ep0_do_control_data, then it does hard
code to ep0.
no, it does not. It starts the transfer with event->endpoint_number,
which contains the physical number. dep is hardcoded to ep0, but solely
because we only queue request on ep0 list.
BTW, assuming req->direction contains the endpoint number isn't the best
way to go. It will work for ep0/1, of course, but only as long as we
don't change that flag to anything else. It's best to use
event->endpoint_number or dep->number, as I did on the version I just
sent.
thanks, I will use your version.
I think it's a bit too late to send that this merge window, so I will
delay it to v3.6, that way we can make sure to hash out all possible
details and make sure it works on multiple platforms. Sounds good to
you ?
Ok.
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html