03 Oct, 2016

1 commit


01 Oct, 2016

1 commit


27 Sep, 2016

1 commit


19 Aug, 2015

7 commits

  • Tasklets may have been scheduled as a result of an earlier interrupt
    that could still be running. Kill them before unregistering the
    device.

    Signed-off-by: Alex Smith
    Cc: Vinod Koul
    Cc: Zubair Lutfullah Kakakhel
    Cc: dmaengine@vger.kernel.org
    Signed-off-by: Vinod Koul

    Alex Smith
     
  • We must explicitly free the IRQ before the device is unregistered in
    case any device interrupt still occurs, so there's no point in using
    the managed variations of the IRQ functions. Change to the regular
    versions.

    Signed-off-by: Alex Smith
    Cc: Vinod Koul
    Cc: Zubair Lutfullah Kakakhel
    Cc: dmaengine@vger.kernel.org
    Signed-off-by: Vinod Koul

    Alex Smith
     
  • When scanning for a free DMA channel, the filter function should ensure
    that the channel is on the controller that it was requested to be on in
    the DT.

    Signed-off-by: Alex Smith
    Cc: Vinod Koul
    Cc: Zubair Lutfullah Kakakhel
    Cc: dmaengine@vger.kernel.org
    Signed-off-by: Vinod Koul

    Alex Smith
     
  • When the DT requests a specific channel to use it is not necesssary
    to scan through all DMA channels in the system. Just return the
    requested channel using dma_get_slave_channel().

    Signed-off-by: Alex Smith
    Cc: Vinod Koul
    Cc: Zubair Lutfullah Kakakhel
    Cc: dmaengine@vger.kernel.org
    Signed-off-by: Vinod Koul

    Alex Smith
     
  • There are a some signedness bugs such as testing for < 0 on unsigned
    return values. Additionally there are some cases where functions which
    should return NULL on error actually return a PTR_ERR value which can
    result in oopses on error. Fix these issues.

    Signed-off-by: Alex Smith
    Cc: Vinod Koul
    Cc: Zubair Lutfullah Kakakhel
    Cc: dmaengine@vger.kernel.org
    Signed-off-by: Vinod Koul

    Alex Smith
     
  • For some reason the controller does not support 8 byte transfers (but
    does support all other powers of 2 up to 128). In this case fall back
    to 4 bytes. In addition, fall back to 128 bytes when any larger power
    of 2 would be possible within the alignment constraints, as this is
    the maximum supported.

    It makes no sense to outright reject 8 or >128 bytes just because the
    alignment constraints make those the maximum possible size given the
    parameters for the transaction. For instance, this can result in a DMA
    from/to an 8 byte aligned address failing.

    It is perfectly safe to fall back to smaller transfer sizes, the only
    consequence is reduced transfer efficiency, which is far better than
    not allowing the transfer at all.

    Signed-off-by: Alex Smith
    Cc: Vinod Koul
    Cc: Zubair Lutfullah Kakakhel
    Cc: dmaengine@vger.kernel.org
    Signed-off-by: Vinod Koul

    Alex Smith
     
  • Several function prototypes did not match the dmaengine API they were
    implementing, resulting in build warnings. Correct these.

    Signed-off-by: Alex Smith
    Cc: Vinod Koul
    Cc: Zubair Lutfullah Kakakhel
    Cc: dmaengine@vger.kernel.org
    Signed-off-by: Vinod Koul

    Alex Smith
     

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
     

01 Apr, 2015

1 commit

  • This patch adds a driver for the DMA controller found in the Ingenic
    JZ4780.

    It currently does not implement any support for the programmable firmware
    feature of the controller - this is not necessary for most uses. It also
    does not take priority into account when allocating channels, it just
    allocates the first available channel. This can be implemented later.

    Signed-off-by: Alex Smith
    Signed-off-by: Zubair Lutfullah Kakakhel
    [Updated for dmaengine api changes, Add residue support, couple of minor fixes]
    Signed-off-by: Vinod Koul

    Alex Smith