20 Sep, 2011

1 commit


29 May, 2011

1 commit

  • * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx: (33 commits)
    x86: poll waiting for I/OAT DMA channel status
    maintainers: add dma engine tree details
    dmaengine: add TODO items for future work on dma drivers
    dmaengine: Add API documentation for slave dma usage
    dmaengine/dw_dmac: Update maintainer-ship
    dmaengine: move link order
    dmaengine/dw_dmac: implement pause and resume in dwc_control
    dmaengine/dw_dmac: Replace spin_lock* with irqsave variants and enable submission from callback
    dmaengine/dw_dmac: Divide one sg to many desc, if sg len is greater than DWC_MAX_COUNT
    dmaengine/dw_dmac: set residue as total len in dwc_tx_status if status is !DMA_SUCCESS
    dmaengine/dw_dmac: don't call callback routine in case dmaengine_terminate_all() is called
    dmaengine: at_hdmac: pause: no need to wait for FIFO empty
    pch_dma: modify pci device table definition
    pch_dma: Support new device ML7223 IOH
    pch_dma: Support I2S for ML7213 IOH
    pch_dma: Fix DMA setting issue
    pch_dma: modify for checkpatch
    pch_dma: fix dma direction issue for ML7213 IOH video-in
    dmaengine: at_hdmac: use descriptor chaining help function
    dmaengine: at_hdmac: implement pause and resume in atc_control
    ...

    Fix up trivial conflict in drivers/dma/dw_dmac.c

    Linus Torvalds
     

25 May, 2011

1 commit

  • Nobody is currently maintaining dw_dmac. We are using dw_dmac for SPEAr13xx and
    are currently maintaining it. After discussing with Vinod, sending this patch to
    update maintainer-ship of dw_dmac.

    Signed-off-by: Viresh Kumar
    Acked-by: Havard Skinnemoen
    Signed-off-by: Vinod Koul

    Viresh Kumar
     

19 May, 2011

1 commit


13 May, 2011

5 commits


31 Mar, 2011

1 commit

  • dwc_scan_descriptors scans all descriptors from active_list in case transfer is
    not completed. It compares first_desc->lli.llp, and then all childrens of its
    tx_list. But it doesn't compare its own address, i.e. first_desc->txd.phys, as
    this is what we have initially programmed into the controller register. So this
    causes dma to stop and finish a transfer, which was never started. And thus
    fail.

    Signed-off-by: Viresh Kumar
    Signed-off-by: Vinod Koul

    Viresh Kumar
     

07 Mar, 2011

10 commits


30 Jan, 2011

3 commits

  • Some platforms (e.g. Picochip PC3XX) have multiple DMA controllers
    where some may be used for slave transfers and others for general
    purpose memcpy type transfers. Add a .is_private boolean to the
    platform data structure so that controllers can be marked as private
    so that the DMA_PRIVATE capability will be set for that controller.

    Signed-off-by: Jamie Iles
    Signed-off-by: Dan Williams

    Jamie Iles
     
  • Some platforms have flexible mastering capabilities and this needs
    to be selected at runtime. If the platform has specified private
    data in the form of the dw_dma_slave then fetch the source and
    destination masters from here. If this isn't present, default to
    the previous of 0 and 1.

    v2: cleanup whitespace

    Acked-by: Hans-Christian Egtvedt
    Signed-off-by: Jamie Iles
    Signed-off-by: Dan Williams

    Jamie Iles
     
  • Some hardware (picoChip picoXCell in particular) sometimes has
    the block transfer complete bit being set for a channel after the
    whole transfer has completed. If we don't have any transfers in the
    active list then don't bother to scan the descriptors. This often
    happens in normal operation and doesn't require the channel to be
    reset.

    v2: cleanup whitespace

    Signed-off-by: Jamie Iles
    Signed-off-by: Dan Williams

    Jamie Iles
     

18 May, 2010

1 commit

  • This adds an argument to the DMAengine control function, so that
    we can later provide control commands that need some external data
    passed in through an argument akin to the ioctl() operation
    prototype.

    [dan.j.williams@intel.com: fix up some missed conversions]
    Signed-off-by: Linus Walleij
    Signed-off-by: Dan Williams

    Linus Walleij
     

27 Mar, 2010

3 commits

  • Simple conditional struct filler to cut out some duplicated code.

    Signed-off-by: Dan Williams

    Dan Williams
     
  • Convert the device_is_tx_complete() operation on the
    DMA engine to a generic device_tx_status()operation which
    can return three states, DMA_TX_RUNNING, DMA_TX_COMPLETE,
    DMA_TX_PAUSED.

    [dan.j.williams@intel.com: update for timberdale]
    Signed-off-by: Linus Walleij
    Acked-by: Mark Brown
    Cc: Maciej Sosnowski
    Cc: Nicolas Ferre
    Cc: Pavel Machek
    Cc: Li Yang
    Cc: Guennadi Liakhovetski
    Cc: Paul Mundt
    Cc: Ralf Baechle
    Cc: Haavard Skinnemoen
    Cc: Magnus Damm
    Cc: Liam Girdwood
    Cc: Joe Perches
    Cc: Roland Dreier
    Signed-off-by: Dan Williams

    Linus Walleij
     
  • Convert the device_terminate_all() operation on the
    DMA engine to a generic device_control() operation
    which can now optionally support also pausing and
    resuming DMA on a certain channel. Implemented for the
    COH 901 318 DMAC as an example.

    [dan.j.williams@intel.com: update for timberdale]
    Signed-off-by: Linus Walleij
    Acked-by: Mark Brown
    Cc: Maciej Sosnowski
    Cc: Nicolas Ferre
    Cc: Pavel Machek
    Cc: Li Yang
    Cc: Guennadi Liakhovetski
    Cc: Paul Mundt
    Cc: Ralf Baechle
    Cc: Haavard Skinnemoen
    Cc: Magnus Damm
    Cc: Liam Girdwood
    Cc: Joe Perches
    Cc: Roland Dreier
    Signed-off-by: Dan Williams

    Linus Walleij
     

31 Dec, 2009

1 commit

  • * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx:
    drivers/dma: Correct use after free
    drivers/dma: drop unnecesary memset
    ioat2,3: put channel hardware in known state at init
    async_tx: expand async raid6 test to cover ioatdma corner case
    ioat3: fix p-disabled q-continuation
    sh: fix DMA driver's descriptor chaining and cookie assignment
    dma: at_hdmac: correct incompatible type for argument 1 of 'spin_lock_bh'

    Linus Torvalds
     

23 Dec, 2009

1 commit

  • memset of 0 is not needed after kzalloc

    The semantic patch that makes this change is as follows:
    (http://coccinelle.lip6.fr/)

    //
    @@
    expression x;
    statement S;
    @@

    x = kzalloc(...);
    if (x == NULL) S
    ... when != x
    -memset(x,0,...);//

    Signed-off-by: Julia Lawall
    Signed-off-by: Dan Williams

    Julia Lawall
     

16 Dec, 2009

1 commit


23 Sep, 2009

1 commit


09 Sep, 2009

2 commits


22 Jul, 2009

1 commit

  • This patch reworks platform driver power management code
    for dw_dmac from legacy late/early callbacks to dev_pm_ops.

    The callbacks are converted for CONFIG_SUSPEND like this:
    suspend_late() -> suspend_noirq()
    resume_early() -> resume_noirq()

    Signed-off-by: Magnus Damm
    Acked-by: Greg Kroah-Hartman
    Acked-by: Pavel Machek
    Signed-off-by: Rafael J. Wysocki

    Magnus Damm
     

04 Apr, 2009

1 commit

  • * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx:
    dma: Add SoF and EoF debugging to ipu_idmac.c, minor cleanup
    dw_dmac: add cyclic API to DW DMA driver
    dmaengine: Add privatecnt to revert DMA_PRIVATE property
    dmatest: add dma interrupts and callbacks
    dmatest: add xor test
    dmaengine: allow dma support for async_tx to be toggled
    async_tx: provide __async_inline for HAS_DMA=n archs
    dmaengine: kill some unused headers
    dmaengine: initialize tx_list in dma_async_tx_descriptor_init
    dma: i.MX31 IPU DMA robustness improvements
    dma: improve section assignment in i.MX31 IPU DMA driver
    dma: ipu_idmac driver cosmetic clean-up
    dmaengine: fail device registration if channel registration fails

    Linus Torvalds
     

02 Apr, 2009

1 commit

  • This patch adds a cyclic DMA interface to the DW DMA driver. This is
    very useful if you want to use the DMA controller in combination with a
    sound device which uses cyclic buffers.

    Using a DMA channel for cyclic DMA will disable the possibility to use
    it as a normal DMA engine until the user calls the cyclic free function
    on the DMA channel. Also a cyclic DMA list can not be prepared if the
    channel is already active.

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

    Hans-Christian Egtvedt
     

26 Mar, 2009

1 commit


25 Mar, 2009

1 commit


19 Feb, 2009

1 commit

  • The conversion of atmel-mci to dma_request_channel missed the
    initialization of the channel dma_slave information. The filter_fn passed
    to dma_request_channel is responsible for initializing the channel's
    private data. This implementation has the additional benefit of enabling
    a generic client-channel data passing mechanism.

    Reviewed-by: Atsushi Nemoto
    Signed-off-by: Dan Williams
    Acked-by: Haavard Skinnemoen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dan Williams
     

07 Jan, 2009

1 commit

  • 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