05 Sep, 2017

2 commits


14 Nov, 2016

1 commit

  • dma_pool_alloc does not initialize the value of the newly allocated
    block for the v_lli, and the uninitilize value make the tests failed
    which is on pine64 with dmatest.
    we can fix it just change the "|=" to "=" for the v_lli->cfg.

    Signed-off-by: Hao Zhang
    Acked-by: Maxime Ripard
    Signed-off-by: Vinod Koul

    Axl-zhang
     

27 Sep, 2016

1 commit


22 Jun, 2016

1 commit


02 May, 2016

3 commits


26 Apr, 2016

3 commits


01 Oct, 2015

1 commit


05 Aug, 2015

1 commit

  • Most drivers need to set constraints on the buffer alignment for async tx
    operations. However, even though it is documented, some drivers either use
    a defined constant that is not matching what the alignment variable expects
    (like DMA_BUSWIDTH_* constants) or fill the alignment in bytes instead of
    power of two.

    Add a new enum for these alignments that matches what the framework
    expects, and convert the drivers to it.

    Signed-off-by: Maxime Ripard
    Signed-off-by: Vinod Koul

    Maxime Ripard
     

08 May, 2015

1 commit


19 Mar, 2015

3 commits


22 Dec, 2014

2 commits


13 Dec, 2014

1 commit

  • Pull dmaengine updates from Vinod Koul:
    "Main features this time are:

    - BAM v1.3.0 support form qcom bam dma
    - support for Allwinner sun8i dma
    - atmels eXtended DMA Controller driver
    - chancnt cleanup by Maxime
    - fixes spread over drivers"

    * 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma: (56 commits)
    dmaenegine: Delete a check before free_percpu()
    dmaengine: ioatdma: fix dma mapping errors
    dma: cppi41: add a delay while setting the TD bit
    dma: cppi41: wait longer for the HW to return the descriptor
    dmaengine: fsl-edma: fixup reg offset and hw S/G support in big-endian model
    dmaengine: fsl-edma: fix calculation of remaining bytes
    drivers/dma/pch_dma: declare pch_dma_id_table as static
    dmaengine: ste_dma40: fix error return code
    dma: imx-sdma: clarify about firmware not found error
    Documentation: devicetree: Fix Xilinx VDMA specification
    dmaengine: pl330: update author info
    dmaengine: clarify the issue_pending expectations
    dmaengine: at_xdmac: Add DMA_PRIVATE
    ARM: dts: at_xdmac: fix bad value of dma-cells in documentation
    dmaengine: at_xdmac: fix missing spin_unlock
    dmaengine: at_xdmac: fix a bug in transfer residue computation
    dmaengine: at_xdmac: fix software lockup at_xdmac_tx_status()
    dmaengine: at_xdmac: remove chancnt affectation
    dmaengine: at_xdmac: prefer usage of readl/writel_relaxed
    dmaengine: xdmac: fix print warning on dma_addr_t variable
    ...

    Linus Torvalds
     

17 Nov, 2014

2 commits


12 Nov, 2014

1 commit

  • The prep_memcpy call was not setting any meaningful burst and width because it
    was relying on the dma_slave_config was not set already.

    Rework the needed conversion functions, and hardcode the width and burst to
    use.

    Signed-off-by: Maxime Ripard
    Cc: stable@vger.kernel.org
    Signed-off-by: Vinod Koul

    Maxime Ripard
     

06 Nov, 2014

1 commit


24 Sep, 2014

1 commit

  • The sun6i DMA controller requires the AHB1 bus clock to be
    clocked from PLL6. This was originally done by the dmaengine
    driver during probe time. The AHB1 clock driver has since been
    unified, so the original code does not work.

    Remove the clk muxing code, and replace it with DT clk default
    properties.

    Signed-off-by: Chen-Yu Tsai
    Acked-by: Maxime Ripard
    Signed-off-by: Vinod Koul

    Chen-Yu Tsai
     

30 Jul, 2014

3 commits

  • The sun6i_dma_prep_memcpy and sun6i_dma_prep_slave_sg functions were both
    leaking the descriptor they allocated if an error was happening after a
    successful dma_pool_alloc call.

    It also fixes a memleak that was happening in the scatter gather list
    traversal, that was allocating as much descriptor as there was scatter gather
    items, but only freeing the current descriptor if an error was to arise.

    Reported-by: Dan Carpenter
    Signed-off-by: Maxime Ripard
    Signed-off-by: Vinod Koul

    Maxime Ripard
     
  • There's still a small window between the call to sun6i_kill_tasklet and the end
    of the driver remove function where a spurious interrupt might trigger, and
    start using deallocated resources.

    Replace the call to synchronize_irq by a free_irq, so that we're sure that we
    won't get any further interrupts when we're deallocating resources.

    Signed-off-by: Maxime Ripard
    Signed-off-by: Vinod Koul

    Maxime Ripard
     
  • Since the conversion routine is quite trivial, we don't need this switch, and
    we can just use a simple calculation.

    Signed-off-by: Maxime Ripard
    Signed-off-by: Vinod Koul

    Maxime Ripard
     

28 Jul, 2014

2 commits

  • The sg_dma_len() returns unsigned int but we had driver print it as %zu, use
    %u as documented in Documentation/printk-formats.txt

    drivers/dma/sun6i-dma.c: In function ‘sun6i_dma_prep_slave_sg’:
    drivers/dma/sun6i-dma.c:643: warning: format ‘%zu’ expects type ‘size_t’,
    but argument 8 has type ‘unsigned int’
    drivers/dma/sun6i-dma.c:661: warning: format ‘%zu’ expects type ‘size_t’,
    but argument 8 has type ‘unsigned int’

    Reported-by: kbuild test robot
    Signed-off-by: Vinod Koul

    Vinod Koul
     
  • Since the driver defined COMPILE_TEST, it gets compiled for different arch's
    The driver uses __virt_to_phys() insteadof virt_to_phys, so replace it

    drivers/dma/sun6i-dma.c: In function ‘sun6i_dma_dump_chan_regs’:
    drivers/dma/sun6i-dma.c:203: error: implicit declaration of function '__virt_to_phys'

    Reported-by: kbuild test robot
    Reported-by: Stephen Rothwell
    Signed-off-by: Vinod Koul

    Vinod Koul
     

25 Jul, 2014

1 commit

  • The Allwinner A31 has a 16 channels DMA controller that it shares with the
    newer A23. Although sharing some similarities with the DMA controller of the
    older Allwinner SoCs, it's significantly different, I don't expect it to be
    possible to share the driver for these two.

    The A31 Controller is able to memory-to-memory or memory-to-device transfers on
    the 16 channels in parallel.

    Signed-off-by: Maxime Ripard
    Acked-by: Arnd Bergmann
    Signed-off-by: Vinod Koul

    Maxime Ripard