* [PATCH 1/2] USB: musb-gadget: enable autoclear for OUT transfer in both DMA 0 and DMA 1
@ 2010-08-27 14:52 tom.leiming
2010-08-27 15:12 ` Gadiyar, Anand
2010-09-06 14:57 ` Gadiyar, Anand
0 siblings, 2 replies; 7+ messages in thread
From: tom.leiming @ 2010-08-27 14:52 UTC (permalink / raw)
To: greg, dbrownell, felipe.balbi
Cc: linux-usb, linux-omap, Ming Lei, Anand Gadiyar, Mike Frysinger,
Sergei Shtylyov
From: Ming Lei <tom.leiming@gmail.com>
This patch fixes one bugs of OUT transfer in double buffer case:
-the current code only enable autoclear for dma mode 1, and not
for dma mode 0
Without this patch, test #5 of usbtest can't be passed if we
configure musb as g_zero and use fifo mode 3 to enable double
buffer mode.
With this patch and the following patch(fix dma length),
on my beagle B5, test#5(queued bulk out) may go beyond
18Mbyte/s(seems dma mode 0 is quicker in double buffer case)
if musb is configured as g_zero and fifo mode 3 is taken, follows
the test command:
#./testusb -D DEV_NAME -c 1024 -t 5 -s 32768 -g 8 [1]
Also I have tested this patch can't make g_ether broken.
[1],
-source of testusb : tools/usb/testusb.c under linux kernel;
Signed-off-by: Ming Lei <tom.leiming@gmail.com>
Cc: Anand Gadiyar <gadiyar@ti.com>
Cc: Mike Frysinger <vapier@gentoo.org>
Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
---
drivers/usb/musb/musb_gadget.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/usb/musb/musb_gadget.c b/drivers/usb/musb/musb_gadget.c
index e0bd1c1..c0dfec4 100644
--- a/drivers/usb/musb/musb_gadget.c
+++ b/drivers/usb/musb/musb_gadget.c
@@ -645,9 +645,9 @@ static void rxstate(struct musb *musb, struct musb_request *req)
*/
csr |= MUSB_RXCSR_DMAENAB;
-#ifdef USE_MODE1
if (!musb_ep->hb_mult)
csr |= MUSB_RXCSR_AUTOCLEAR;
+#ifdef USE_MODE1
/* csr |= MUSB_RXCSR_DMAMODE; */
/* this special sequence (enabling and then
--
1.6.2.5
^ permalink raw reply related [flat|nested] 7+ messages in thread
* RE: [PATCH 1/2] USB: musb-gadget: enable autoclear for OUT transfer in both DMA 0 and DMA 1
2010-08-27 14:52 [PATCH 1/2] USB: musb-gadget: enable autoclear for OUT transfer in both DMA 0 and DMA 1 tom.leiming
@ 2010-08-27 15:12 ` Gadiyar, Anand
2010-08-27 15:26 ` Ming Lei
2010-09-06 14:57 ` Gadiyar, Anand
1 sibling, 1 reply; 7+ messages in thread
From: Gadiyar, Anand @ 2010-08-27 15:12 UTC (permalink / raw)
To: tom.leiming@gmail.com, greg@kroah.com,
dbrownell@users.sourceforge.net,
"felipe.balbi@nokia.com" <feli>
Cc: linux-usb@vger.kernel.org, linux-omap@vger.kernel.org,
Mike Frysinger, Sergei Shtylyov
tom.leiming@gmail.com wrote:
>
> From: Ming Lei <tom.leiming@gmail.com>
>
> This patch fixes one bugs of OUT transfer in double buffer case:
>
> -the current code only enable autoclear for dma mode 1, and not
> for dma mode 0
>
> Without this patch, test #5 of usbtest can't be passed if we
> configure musb as g_zero and use fifo mode 3 to enable double
> buffer mode.
>
> With this patch and the following patch(fix dma length),
> on my beagle B5, test#5(queued bulk out) may go beyond
> 18Mbyte/s(seems dma mode 0 is quicker in double buffer case)
> if musb is configured as g_zero and fifo mode 3 is taken, follows
> the test command:
>
> #./testusb -D DEV_NAME -c 1024 -t 5 -s 32768 -g 8 [1]
>
> Also I have tested this patch can't make g_ether broken.
>
> [1],
> -source of testusb : tools/usb/testusb.c under linux kernel;
>
> Signed-off-by: Ming Lei <tom.leiming@gmail.com>
> Cc: Anand Gadiyar <gadiyar@ti.com>
> Cc: Mike Frysinger <vapier@gentoo.org>
> Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
I'm not 100% sure why not having autoclear was causing a failure
with double-buffering enabled. I'd like this patch to be tested
more on OMAP as well as on Blackfin/Davinci.
I'll need time to study MUSB specs again to understand this,
so I'll skip acking this patch and let Felipe/Sergei/Mike/Ajay
take a look.
Thanks for taking the time to debug this - if this patch series
makes double buffering work reliably, that's a very good boost
to throughput.
- Anand
> ---
> drivers/usb/musb/musb_gadget.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/usb/musb/musb_gadget.c b/drivers/usb/musb/musb_gadget.c
> index e0bd1c1..c0dfec4 100644
> --- a/drivers/usb/musb/musb_gadget.c
> +++ b/drivers/usb/musb/musb_gadget.c
> @@ -645,9 +645,9 @@ static void rxstate(struct musb *musb, struct musb_request *req)
> */
>
> csr |= MUSB_RXCSR_DMAENAB;
> -#ifdef USE_MODE1
> if (!musb_ep->hb_mult)
> csr |= MUSB_RXCSR_AUTOCLEAR;
> +#ifdef USE_MODE1
> /* csr |= MUSB_RXCSR_DMAMODE; */
>
> /* this special sequence (enabling and then
> --
> 1.6.2.5
>
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] USB: musb-gadget: enable autoclear for OUT transfer in both DMA 0 and DMA 1
2010-08-27 15:12 ` Gadiyar, Anand
@ 2010-08-27 15:26 ` Ming Lei
0 siblings, 0 replies; 7+ messages in thread
From: Ming Lei @ 2010-08-27 15:26 UTC (permalink / raw)
To: Gadiyar, Anand
Cc: greg@kroah.com, dbrownell@users.sourceforge.net,
felipe.balbi@nokia.com, linux-usb@vger.kernel.org,
linux-omap@vger.kernel.org, Mike Frysinger, Sergei Shtylyov
2010/8/27 Gadiyar, Anand <gadiyar@ti.com>:
> tom.leiming@gmail.com wrote:
>>
>> From: Ming Lei <tom.leiming@gmail.com>
>>
>> This patch fixes one bugs of OUT transfer in double buffer case:
>>
>> -the current code only enable autoclear for dma mode 1, and not
>> for dma mode 0
>>
>> Without this patch, test #5 of usbtest can't be passed if we
>> configure musb as g_zero and use fifo mode 3 to enable double
>> buffer mode.
>>
>> With this patch and the following patch(fix dma length),
>> on my beagle B5, test#5(queued bulk out) may go beyond
>> 18Mbyte/s(seems dma mode 0 is quicker in double buffer case)
>> if musb is configured as g_zero and fifo mode 3 is taken, follows
>> the test command:
>>
>> #./testusb -D DEV_NAME -c 1024 -t 5 -s 32768 -g 8 [1]
>>
>> Also I have tested this patch can't make g_ether broken.
>>
>> [1],
>> -source of testusb : tools/usb/testusb.c under linux kernel;
>>
>> Signed-off-by: Ming Lei <tom.leiming@gmail.com>
>> Cc: Anand Gadiyar <gadiyar@ti.com>
>> Cc: Mike Frysinger <vapier@gentoo.org>
>> Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
>
> I'm not 100% sure why not having autoclear was causing a failure
> with double-buffering enabled. I'd like this patch to be tested
> more on OMAP as well as on Blackfin/Davinci.
We don't clear MUSB_RXCSR_RXPKTRDY explicitly when dma complete,
so if autoclear is not enabled, the dma read for packets from fifo will
not be acked, then any odd things may happen...
I have tested the patch for both single buffer and double buffer case,
test #5 and test #6 are passed, and result of test #5 in double buffer
may go beyond 18M/s(seems much quicker than dma mode 1).
Also, g_ether is OK with the patch.
>
> I'll need time to study MUSB specs again to understand this,
> so I'll skip acking this patch and let Felipe/Sergei/Mike/Ajay
> take a look.
Very good.
>
> Thanks for taking the time to debug this - if this patch series
> makes double buffering work reliably, that's a very good boost
> to throughput.
>
> - Anand
>
>> ---
>> drivers/usb/musb/musb_gadget.c | 2 +-
>> 1 files changed, 1 insertions(+), 1 deletions(-)
>>
>> diff --git a/drivers/usb/musb/musb_gadget.c b/drivers/usb/musb/musb_gadget.c
>> index e0bd1c1..c0dfec4 100644
>> --- a/drivers/usb/musb/musb_gadget.c
>> +++ b/drivers/usb/musb/musb_gadget.c
>> @@ -645,9 +645,9 @@ static void rxstate(struct musb *musb, struct musb_request *req)
>> */
>>
>> csr |= MUSB_RXCSR_DMAENAB;
>> -#ifdef USE_MODE1
>> if (!musb_ep->hb_mult)
>> csr |= MUSB_RXCSR_AUTOCLEAR;
>> +#ifdef USE_MODE1
>> /* csr |= MUSB_RXCSR_DMAMODE; */
>>
>> /* this special sequence (enabling and then
>> --
>> 1.6.2.5
>>
>>
--
Lei Ming
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 7+ messages in thread
* RE: [PATCH 1/2] USB: musb-gadget: enable autoclear for OUT transfer in both DMA 0 and DMA 1
2010-08-27 14:52 [PATCH 1/2] USB: musb-gadget: enable autoclear for OUT transfer in both DMA 0 and DMA 1 tom.leiming
2010-08-27 15:12 ` Gadiyar, Anand
@ 2010-09-06 14:57 ` Gadiyar, Anand
[not found] ` <5A47E75E594F054BAF48C5E4FC4B92AB03291AE04A-/tLxBxkBPtCIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
1 sibling, 1 reply; 7+ messages in thread
From: Gadiyar, Anand @ 2010-09-06 14:57 UTC (permalink / raw)
To: tom.leiming@gmail.com, greg@kroah.com,
dbrownell@users.sourceforge.net,
"felipe.balbi@nokia.com" <feli>
Cc: linux-usb@vger.kernel.org, linux-omap@vger.kernel.org,
Mike Frysinger, Sergei Shtylyov
tom.leiming@gmail.com wrote:
>
> From: Ming Lei <tom.leiming@gmail.com>
>
> This patch fixes one bugs of OUT transfer in double buffer case:
>
> -the current code only enable autoclear for dma mode 1, and not
> for dma mode 0
>
> Without this patch, test #5 of usbtest can't be passed if we
> configure musb as g_zero and use fifo mode 3 to enable double
> buffer mode.
>
> With this patch and the following patch(fix dma length),
> on my beagle B5, test#5(queued bulk out) may go beyond
> 18Mbyte/s(seems dma mode 0 is quicker in double buffer case)
> if musb is configured as g_zero and fifo mode 3 is taken, follows
> the test command:
>
> #./testusb -D DEV_NAME -c 1024 -t 5 -s 32768 -g 8 [1]
>
> Also I have tested this patch can't make g_ether broken.
>
> [1],
> -source of testusb : tools/usb/testusb.c under linux kernel;
>
> Signed-off-by: Ming Lei <tom.leiming@gmail.com>
> Cc: Anand Gadiyar <gadiyar@ti.com>
> Cc: Mike Frysinger <vapier@gentoo.org>
> Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
> ---
> drivers/usb/musb/musb_gadget.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/usb/musb/musb_gadget.c b/drivers/usb/musb/musb_gadget.c
> index e0bd1c1..c0dfec4 100644
> --- a/drivers/usb/musb/musb_gadget.c
> +++ b/drivers/usb/musb/musb_gadget.c
> @@ -645,9 +645,9 @@ static void rxstate(struct musb *musb, struct musb_request *req)
> */
>
> csr |= MUSB_RXCSR_DMAENAB;
> -#ifdef USE_MODE1
> if (!musb_ep->hb_mult)
> csr |= MUSB_RXCSR_AUTOCLEAR;
Hi Tom,
Which codebase is this patch meant for?
I don't see the hb_mult in current mainline code?
Are there any patches which this one depends on?
Thanks,
Anand
> +#ifdef USE_MODE1
> /* csr |= MUSB_RXCSR_DMAMODE; */
>
> /* this special sequence (enabling and then
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] USB: musb-gadget: enable autoclear for OUT transfer in both DMA 0 and DMA 1
[not found] ` <5A47E75E594F054BAF48C5E4FC4B92AB03291AE04A-/tLxBxkBPtCIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
@ 2010-09-06 15:13 ` Ming Lei
[not found] ` <AANLkTim8WC_2H3tUL4nU9LD2xDjzUbB1ERhMQeA20z1K-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
0 siblings, 1 reply; 7+ messages in thread
From: Ming Lei @ 2010-09-06 15:13 UTC (permalink / raw)
To: Gadiyar, Anand
Cc: greg-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org,
dbrownell-Rn4VEauK+AKRv+LV9MX5uipxlwaOVQ5f@public.gmane.org,
felipe.balbi-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org,
linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Mike Frysinger, Sergei Shtylyov
2010/9/6 Gadiyar, Anand <gadiyar-l0cyMroinI0@public.gmane.org>:
> Hi Tom,
>
> Which codebase is this patch meant for?
> I don't see the hb_mult in current mainline code?
>
> Are there any patches which this one depends on?
This depends on the two iso for device mode patches:
http://marc.info/?l=linux-usb&m=128076716001885&w=2
http://marc.info/?l=linux-usb&m=128076716901924&w=2
I plan to resend the two patches above and the double buffer patches
later.
thanks,
--
Lei Ming
--
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] 7+ messages in thread
* Re: [PATCH 1/2] USB: musb-gadget: enable autoclear for OUT transfer in both DMA 0 and DMA 1
[not found] ` <AANLkTim8WC_2H3tUL4nU9LD2xDjzUbB1ERhMQeA20z1K-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2010-09-06 16:11 ` Sergei Shtylyov
[not found] ` <4C8512BC.2080003-hkdhdckH98+B+jHODAdFcQ@public.gmane.org>
0 siblings, 1 reply; 7+ messages in thread
From: Sergei Shtylyov @ 2010-09-06 16:11 UTC (permalink / raw)
To: Ming Lei
Cc: Gadiyar, Anand, greg-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org,
dbrownell-Rn4VEauK+AKRv+LV9MX5uipxlwaOVQ5f@public.gmane.org,
felipe.balbi-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org,
linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Mike Frysinger
Hello.
Ming Lei wrote:
>> Which codebase is this patch meant for?
>> I don't see the hb_mult in current mainline code?
>> Are there any patches which this one depends on?
> This depends on the two iso for device mode patches:
> http://marc.info/?l=linux-usb&m=128076716001885&w=2
> http://marc.info/?l=linux-usb&m=128076716901924&w=2
> I plan to resend the two patches above and the double buffer patches
> later.
I recommend that you change the ordering of patches so that fixes come
first, and new features last. I.e. this patch should precede the second one of
those two above.
> thanks,
WBR, Sergei
--
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] 7+ messages in thread
* Re: [PATCH 1/2] USB: musb-gadget: enable autoclear for OUT transfer in both DMA 0 and DMA 1
[not found] ` <4C8512BC.2080003-hkdhdckH98+B+jHODAdFcQ@public.gmane.org>
@ 2010-09-07 13:26 ` Ming Lei
0 siblings, 0 replies; 7+ messages in thread
From: Ming Lei @ 2010-09-07 13:26 UTC (permalink / raw)
To: Sergei Shtylyov
Cc: Gadiyar, Anand, greg-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org,
dbrownell-Rn4VEauK+AKRv+LV9MX5uipxlwaOVQ5f@public.gmane.org,
felipe.balbi-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org,
linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Mike Frysinger
2010/9/7 Sergei Shtylyov <sshtylyov-Igf4POYTYCDQT0dZR+AlfA@public.gmane.org>:
> Hello.
>
> Ming Lei wrote:
>
>>> Which codebase is this patch meant for?
>>> I don't see the hb_mult in current mainline code?
>
>>> Are there any patches which this one depends on?
>
>> This depends on the two iso for device mode patches:
>> http://marc.info/?l=linux-usb&m=128076716001885&w=2
>> http://marc.info/?l=linux-usb&m=128076716901924&w=2
>
>> I plan to resend the two patches above and the double buffer patches
>> later.
>
> I recommend that you change the ordering of patches so that fixes come
> first, and new features last. I.e. this patch should precede the second one
> of those two above.
Good point, I will resend all the fix patches first, then the
isochronous support
patch.
thanks,
--
Lei Ming
--
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] 7+ messages in thread
end of thread, other threads:[~2010-09-07 13:26 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-08-27 14:52 [PATCH 1/2] USB: musb-gadget: enable autoclear for OUT transfer in both DMA 0 and DMA 1 tom.leiming
2010-08-27 15:12 ` Gadiyar, Anand
2010-08-27 15:26 ` Ming Lei
2010-09-06 14:57 ` Gadiyar, Anand
[not found] ` <5A47E75E594F054BAF48C5E4FC4B92AB03291AE04A-/tLxBxkBPtCIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
2010-09-06 15:13 ` Ming Lei
[not found] ` <AANLkTim8WC_2H3tUL4nU9LD2xDjzUbB1ERhMQeA20z1K-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-09-06 16:11 ` Sergei Shtylyov
[not found] ` <4C8512BC.2080003-hkdhdckH98+B+jHODAdFcQ@public.gmane.org>
2010-09-07 13:26 ` Ming Lei
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox