15 May, 2012

1 commit

  • The maxburst/chunk size was taken from the private slave DMA data structure.
    Use the common API provided by DMA_SLAVE_CONFIG to setup src/dst maxburst
    values.
    The ctrla field is not needed anymore in the slave private structure nor the
    header constants that were located in an architecture specific directory.
    The at91sam9g45_devices.c file that was using this platform data is also
    modified to remove this now useless data.

    Signed-off-by: Nicolas Ferre
    Signed-off-by: Vinod Koul

    Nicolas Ferre
     

21 Mar, 2012

1 commit

  • This patch introduces DMA_SLAVE_CONFIG to at_hdmac Atmel DMA driver.

    It is needed to fix a regression in the use of atmel-mci.c driver on Atmel
    AT91 platforms brouth by e2b35f3:
    "dmaengine/dw_dmac: Fix dw_dmac user drivers to adapt to slave_config changes"

    We remove some parts of the private structure "at_dma_slave" and use the
    information provided by "struct dma_slave_config": source/destination
    peripheral registers and access width.

    AT_DMA_SLAVE_WIDTH_* values used previously are not needed anymore as we
    now use the standard ones. Although some conversion functions are needed to
    match register expected values.

    Some AT91 sub-architecture specific files are slightly touched by this patch
    but it cannot be split because it can break compilation.

    Signed-off-by: Nicolas Ferre
    Signed-off-by: Vinod Koul

    Nicolas Ferre
     

13 Mar, 2012

1 commit


31 Jan, 2012

1 commit

  • commit 463894705e4089d0ff69e7d877312d496ac70e5b deleted redundant
    chan_id and chancnt initialization in dma drivers as this is done
    in dma_async_device_register().

    However, atc_enable_irq() relied on chan_id set before registering
    the device, what left only channel 0 functional for this driver.

    This patch introduces atc_enable/disable_chan_irq() as a variant
    of atc_enable/disable_irq() with the channel as explicit argument.

    Signed-off-by: Nikolaus Voss
    Signed-off-by: Nicolas Ferre
    Cc: stable
    Signed-off-by: Vinod Koul

    Nikolaus Voss
     

28 Nov, 2011

1 commit


10 Nov, 2011

1 commit

  • We remove the use of platform data from DMA controller driver.
    We now use of .id_table to distinguish between compatible
    types. The two implementations allow to determine the
    number of channels and the capabilities of the controller.

    Signed-off-by: Nicolas Ferre
    Acked-by: Grant Likely
    Signed-off-by: Vinod Koul

    Nicolas Ferre
     

19 Aug, 2011

2 commits


09 May, 2011

1 commit


02 May, 2011

3 commits


09 Sep, 2009

1 commit


23 Jul, 2009

2 commits

  • This patch for at_hdmac adds the slave transfers capability to the Atmel DMA
    controller available on some AT91 SOCs. This allow peripheral to memory and
    memory to peripheral transfers with hardware handshaking.

    Slave structure for controller specific information is passed through channel
    private data. This at_dma_slave structure is defined in at_hdmac.h header file
    and relative hardware definition are moved to this file from at_hdmac_regs.h.
    Doing this we allow the channel configuration from platform definition code.

    This work is intensively based on dw_dmac and several slave implementations.

    Signed-off-by: Nicolas Ferre
    Signed-off-by: Dan Williams

    Nicolas Ferre
     
  • This AHB DMA Controller (aka HDMA or DMAC on AT91 systems) is availlable on
    at91sam9rl chip. It will be used on other products in the future.

    This first release covers only the memory-to-memory tranfer type. This is the
    only tranfer type supported by this chip. On other products, it will be used
    also for peripheral DMA transfer (slave API support to come).

    I used dmatest client without problem in different configurations to test it.

    Full documentation for this controller can be found in the SAM9RL datasheet:
    http://www.atmel.com/dyn/products/product_card.asp?part_id=4243

    Signed-off-by: Nicolas Ferre
    Acked-by: Maciej Sosnowski
    Signed-off-by: Dan Williams

    Nicolas Ferre