All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 00/10] usb: musb: tusb6010_omap: Convert to DMAengine
@ 2017-05-10  8:42 ` Peter Ujfalusi
  0 siblings, 0 replies; 38+ messages in thread
From: Peter Ujfalusi @ 2017-05-10  8:42 UTC (permalink / raw)
  To: b-liu, tony, gregkh, vinod.koul
  Cc: linux-usb, linux-omap, balbi, linux-kernel, dmaengine

Hi,

Changes since v1:
- Fix the port_window support in omap-dma DMAengine driver
- MUSB_G_NO_SKB_RESERVE quirk flag addition to msub core
- packet size corruption fix for tusb6010
- Handle DMA completion for TX also in the DMA callback

The v1 series was tested with g_cdc where only the DMA was only enabled for TX
and because of that I have not noticed that the sDMA code was not correct for RX,
it only worked for TX case.

The ASYNC mode of tusb6010 is really unstable, we get corrupted TX/RX offset
register quite easily, but the SYNC mode is stable.

The series was tested on top of next-20170510 with g_ncm module since with this
we can use the quirk to avoid skb_reserve and get properly aligned buffers for
DMA.
The n810 is using nfsroot.

The device would not boot to prompt most of the time before patch 5 (packet size
reset fix).
With that patch in, the device would boot up fine most of the cases, but will
fail pretty fast with my stress test [1].
After the first 9 patch the legacy DMA mode is going to be stable with g_ncm, it
boots to prompt, and survives the stress test [1].

The last patch is going the DMAengine conversion and I have run the stress test
against it over 3 hours (ping-test.sh wrap count is 139).

[1] Running these in parallel:
ping -f 192.168.0.2
ping -f -s 2048 192.168.0.2
ping-test.sh 192.168.0.2 1

and (nfsroot) time to time:
scp root@192.168.0.1:/usr/portage/distfiles/thunderbird-52.1.0.source.tar.xz /

$ ls -alh /usr/portage/distfiles/thunderbird-52.1.0.source.tar.xz 
218M Apr 30 15:46 /usr/portage/distfiles/thunderbird-52.1.0.source.tar.xz

In essence copy 218M from my host back to the host.

ping-test.sh (modified version from Tony to show the wrap count):
#!/bin/bash

device=$1
size=$2
wraps=0

while [ 1 ]; do
        #echo "Pinging with size $size"
        if ! ping -w0 -c1 -s$size $device > /dev/null 2>&1; then
                break;
        fi
        size=$(expr $size + 1)

        if [ $size -gt 8192 ]; then
	        wraps=$(expr $wraps + 1)
		echo "wrapping ($wraps) at $size"
                size=1
        fi
done
echo "Test ran up to $size"

Regards,
Peter

CC: dmaengine@vger.kernel.org
I only send the cover letter and the DMAengine patch for the dmaengine list, the
rest can be checked - if there is interest - via lkml
---
Peter Ujfalusi (10):
  dmaengine: omap-dma: port_window support correction for both direction
  usb: musb: Add quirk to avoid skb reserve in gadget mode
  usb: musb: tusb6010: Add MUSB_G_NO_SKB_RESERVE to quirks
  usb: musb: tusb6010_omap: Use one musb_ep_select call in
    tusb_omap_dma_program
  usb: musb: tusb6010_omap: Do not reset the other direction's packet
    size
  usb: musb: tusb6010_omap: Create new struct for DMA data/parameters
  usb: musb: tusb6010_omap: Allocate DMA channels upfront
  usb: musb: tusb6010: Handle DMA TX completion in DMA callback as well
  ARM: OMAP2+: DMA: Add slave map entries for 24xx external request
    lines
  usb: musb: tusb6010_omap: Convert to DMAengine API

 arch/arm/mach-omap2/dma.c        |  24 +++
 drivers/dma/omap-dma.c           |  39 ++--
 drivers/usb/musb/musb_core.c     |   3 +
 drivers/usb/musb/musb_core.h     |   1 +
 drivers/usb/musb/tusb6010.c      |  21 +--
 drivers/usb/musb/tusb6010_omap.c | 391 ++++++++++++++++-----------------------
 6 files changed, 211 insertions(+), 268 deletions(-)

-- 
2.12.2

^ permalink raw reply	[flat|nested] 38+ messages in thread

end of thread, other threads:[~2017-05-12 12:09 UTC | newest]

Thread overview: 38+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-10  8:42 [PATCH v2 00/10] usb: musb: tusb6010_omap: Convert to DMAengine Peter Ujfalusi
2017-05-10  8:42 ` Peter Ujfalusi
2017-05-10  8:42 ` [PATCH v2 01/10] dmaengine: omap-dma: port_window support correction for both direction Peter Ujfalusi
2017-05-10  8:42   ` Peter Ujfalusi
2017-05-10 16:28   ` Tony Lindgren
2017-05-10  8:42 ` [PATCH v2 02/10] usb: musb: Add quirk to avoid skb reserve in gadget mode Peter Ujfalusi
2017-05-10  8:42   ` Peter Ujfalusi
2017-05-10  8:42 ` [PATCH v2 03/10] usb: musb: tusb6010: Add MUSB_G_NO_SKB_RESERVE to quirks Peter Ujfalusi
2017-05-10  8:42   ` Peter Ujfalusi
2017-05-10  8:42 ` [PATCH v2 04/10] usb: musb: tusb6010_omap: Use one musb_ep_select call in tusb_omap_dma_program Peter Ujfalusi
2017-05-10  8:42   ` Peter Ujfalusi
2017-05-10  8:42 ` [PATCH v2 05/10] usb: musb: tusb6010_omap: Do not reset the other direction's packet size Peter Ujfalusi
2017-05-10  8:42   ` Peter Ujfalusi
2017-05-10 16:28   ` Tony Lindgren
2017-05-10 16:28     ` Tony Lindgren
2017-05-10 17:07   ` Bin Liu
2017-05-10 17:07     ` Bin Liu
2017-05-10 23:16     ` Joe Perches
2017-05-11  6:19       ` Peter Ujfalusi
2017-05-11  6:19         ` Peter Ujfalusi
2017-05-11 14:12         ` Bin Liu
2017-05-11 14:12           ` Bin Liu
2017-05-12  6:53           ` Peter Ujfalusi
2017-05-12  6:53             ` Peter Ujfalusi
2017-05-12 12:07             ` Bin Liu
2017-05-12 12:07               ` Bin Liu
2017-05-10  8:42 ` [PATCH v2 06/10] usb: musb: tusb6010_omap: Create new struct for DMA data/parameters Peter Ujfalusi
2017-05-10  8:42   ` Peter Ujfalusi
2017-05-10  8:42 ` [PATCH v2 07/10] usb: musb: tusb6010_omap: Allocate DMA channels upfront Peter Ujfalusi
2017-05-10  8:42   ` Peter Ujfalusi
2017-05-10  8:42 ` [PATCH v2 08/10] usb: musb: tusb6010: Handle DMA TX completion in DMA callback as well Peter Ujfalusi
2017-05-10  8:42   ` Peter Ujfalusi
2017-05-10  8:42 ` [PATCH v2 09/10] ARM: OMAP2+: DMA: Add slave map entries for 24xx external request lines Peter Ujfalusi
2017-05-10  8:42   ` Peter Ujfalusi
2017-05-10 16:30   ` Tony Lindgren
2017-05-10  8:51 ` [PATCH v2 10/10] usb: musb: tusb6010_omap: Convert to DMAengine API Peter Ujfalusi
2017-05-10  8:51   ` Peter Ujfalusi
2017-05-10 16:32 ` [PATCH v2 00/10] usb: musb: tusb6010_omap: Convert to DMAengine Tony Lindgren

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.