06 Feb, 2010

1 commit


11 Dec, 2009

1 commit


09 Sep, 2009

3 commits


30 Aug, 2009

1 commit

  • Test raid6 p+q operations with a simple "always multiply by 1" q
    calculation to fit into dmatest's current destination verification
    scheme.

    Reviewed-by: Andre Noll
    Acked-by: Maciej Sosnowski
    Signed-off-by: Dan Williams

    Dan Williams
     

23 Jul, 2009

3 commits


09 Apr, 2009

1 commit

  • The check for reaching max_channels is short circuited by 'continuing'
    after successfully adding a channel.

    [ Impact: make the 'max_channels' module parameter actually have an effect ]

    Cc:
    Reported-by: Dan Carpenter
    Signed-off-by: Dan Williams

    Dan Williams
     

26 Mar, 2009

2 commits


05 Mar, 2009

1 commit


14 Jan, 2009

1 commit


07 Jan, 2009

4 commits

  • Resolves:
    WARNING: at drivers/base/core.c:122 device_release+0x4d/0x52()
    Device 'dma0chan0' does not have a release() function, it is broken and must be fixed.

    The dma_chan_dev object is introduced to gear-match sysfs kobject and
    dmaengine channel lifetimes. When a channel is removed access to the
    sysfs entries return -ENODEV until the kobject can be released.

    The bulk of the change is updates to existing code to handle the extra
    layer of indirection between a dma_chan and its struct device.

    Reported-by: Alexander Beregalov
    Acked-by: Stephen Hemminger
    Cc: Haavard Skinnemoen
    Signed-off-by: Dan Williams

    Dan Williams
     
  • DMA_NAK is now useless. We can just use a bool instead.

    Reviewed-by: Andrew Morton
    Signed-off-by: Dan Williams

    Dan Williams
     
  • Replace the client registration infrastructure with a custom loop to
    poll for channels. Once dma_request_channel returns NULL stop asking
    for channels. A userspace side effect of this change if that loading
    the dmatest module before loading a dma driver will result in no
    channels being found, previously dmatest would get a callback. To
    facilitate testing in the built-in case dmatest_init is marked as a
    late_initcall. Another side effect is that channels under test can not
    be used for any other purpose.

    Cc: Haavard Skinnemoen
    Reviewed-by: Andrew Morton
    Signed-off-by: Dan Williams

    Dan Williams
     
  • Simply, if a client wants any dmaengine channel then prevent all dmaengine
    modules from being removed. Once the clients are done re-enable module
    removal.

    Why?, beyond reducing complication:
    1/ Tracking reference counts per-transaction in an efficient manner, as
    is currently done, requires a complicated scheme to avoid cache-line
    bouncing effects.
    2/ Per-transaction ref-counting gives the false impression that a
    dma-driver can be gracefully removed ahead of its user (net, md, or
    dma-slave)
    3/ None of the in-tree dma-drivers talk to hot pluggable hardware, but
    if such an engine were built one day we still would not need to notify
    clients of remove events. The driver can simply return NULL to a
    ->prep() request, something that is much easier for a client to handle.

    Reviewed-by: Andrew Morton
    Acked-by: Maciej Sosnowski
    Signed-off-by: Dan Williams

    Dan Williams
     

12 Nov, 2008

1 commit


19 Sep, 2008

2 commits


09 Jul, 2008

1 commit

  • This client tests DMA memcpy using various lengths and various offsets
    into the source and destination buffers. It will initialize both
    buffers with a repeatable pattern and verify that the DMA engine copies
    the requested region and nothing more. It will also verify that the
    bytes aren't swapped around, and that the source buffer isn't modified.

    The dmatest module can be configured to test a specific device, a
    specific channel. It can also test multiple channels at the same time,
    and it can start multiple threads competing for the same channel.

    Changes since v2:
    * Support testing multiple channels at the same time
    * Support testing with multiple threads competing for the same channel
    * Use counting test patterns in order to catch byte ordering issues

    Changes since v1:
    * Remove extra dashes around "help"
    * Remove "default n" from Kconfig
    * Turn TEST_BUF_SIZE into a module parameter
    * Return DMA_NAK instead of DMA_DUP
    * Print unhandled events
    * Support testing specific channels and devices
    * Move to the end of the Makefile

    Acked-by: Maciej Sosnowski
    Signed-off-by: Haavard Skinnemoen
    Signed-off-by: Dan Williams

    Haavard Skinnemoen