Hi, As we discussed a couple of weeks ago, this is the third attempt at creating a generic behaviour for slave capabilities retrieval so that generic layers using dmaengine can actually rely on that. That has been done mostly through two steps: by moving out the sub-commands of the device_control callback, so that the dmaengine core can then infer from that wether a sub-command is implemented, and then by moving the slave properties, such as the supported buswidth, to the structure dma_device itself. Comments are as usual appreciated! Thanks, Maxime Changes from v4: - Rebased on top of current dma/next - Converted AT91 XDMAC driver to the new API - Updated the documentation to reflect our changes Changes from v3: - Removed the generic_slave_caps flag - Merged the patch introducing a generic slave caps functions with the one introducing the dma_device capabilities Changes from v2: - Reworked dma_chan_get/dma_chan_put in order to optionally use device_alloc_chan_resources/device_free_chan_resources - Modified a few client drivers that were still calling device_control directly to use the dmaengine API instead - Totally remove device_control and device_slave_config - Move device_control BUG_ON removal earlier in the patch set to avoid breaking the bisectability - Converted rapidio tsi721 driver too. - Minor cosmetics changes and fixes suggested by Laurent Pinchart and Andy Shevchenko - Fixed a few build warnings - Collected the various Acked-by - Rebased on top of 3.18-rc1 Changes from v1: - Add a flag to trigger the generic slave caps mechanism - Add a warning whenever this flag is not set, or when a device_control callback is still defined - Migrate all existing users to use the new callbacks, and the generic slave capabilities Ludovic Desroches (2): dmaengine: at_xdmac: split device_control dmaengine: at_xdmac: Declare slave capabilities for the generic code Maxime Ripard (59): serial: at91: Use dmaengine_slave_config API crypto: ux500: Use dmaengine_terminate_all API dmaengine: Make the destination abbreviation coherent dmaengine: Rework dma_chan_get dmaengine: Make channel allocation callbacks optional dmaengine: Introduce a device_config callback dmaengine: split out pause/resume operations from device_control dmaengine: Add device_terminate_all callback dmaengine: Remove the need to declare device_control dmaengine: Create a generic dma_slave_caps callback dmaengine: pl08x: Split device_control dmaengine: hdmac: Split device_control dmaengine: bcm2835: Split device_control dmaengine: coh901318: Split device_control dmaengine: cppi41: Split device_control dmaengine: jz4740: Split device_control dmaengine: dw: Split device_control dmaengine: edma: Split device_control dmaengine: ep93xx: Split device_control dmaengine: fsl-edma: Split device_control dmaengine: imx: Split device_control dmaengine: imx-sdma: Split device_control dmaengine: intel-mid-dma: Split device_control dmaengine: ipu-idmac: Split device_control dmaengine: k3: Split device_control dmaengine: mmp-pdma: Split device_control dmaengine: mmp-tdma: Split device_control dmaengine: moxart: Split device_control dmaengine: fsl-dma: Split device_control dmaengine: mpc512x: Split device_control dmaengine: mxs: Split device_control dmaengine: nbpfaxi: Split device_control dmaengine: omap: Split device_control dmaengine: pl330: Split device_control dmaengine: bam-dma: Split device_control dmaengine: s3c24xx: Split device_control dmaengine: sa11x0: Split device_control dmaengine: sh: Split device_control dmaengine: sirf: Split device_control dmaengine: sun6i: Split device_control dmaengine: d40: Split device_control dmaengine: tegra20: Split device_control dmaengine: xilinx: Split device_control dmaengine: mv_xor: Remove device_control dmaengine: pch-dma: Rename device_control dmaengine: td: Rename device_control dmaengine: txx9: Rename device_control dmaengine: rapidio: tsi721: Rename device_control dmaengine: bcm2835: Declare slave capabilities for the generic code dmaengine: fsl-edma: Declare slave capabilities for the generic code dmaengine: edma: Declare slave capabilities for the generic code dmaengine: nbpfaxi: Declare slave capabilities for the generic code dmaengine: omap: Declare slave capabilities for the generic code dmaengine: pl330: Declare slave capabilities for the generic code dmaengine: sirf: Declare slave capabilities for the generic code dmaengine: sun6i: Declare slave capabilities for the generic code dmaengine: Add a warning for drivers not using the generic slave caps retrieval dmaengine: Remove device_control and device_slave_caps Documentation: dmaengine: Update the documentation Documentation/dmaengine/provider.txt | 93 ++++++++-------- drivers/crypto/ux500/cryp/cryp_core.c | 4 +- drivers/crypto/ux500/hash/hash_core.c | 2 +- drivers/dma/amba-pl08x.c | 156 +++++++++++++++------------ drivers/dma/at_hdmac.c | 121 ++++++++++++--------- drivers/dma/at_xdmac.c | 127 ++++++++++++---------- drivers/dma/bcm2835-dma.c | 46 ++------ drivers/dma/coh901318.c | 137 +++++++++++------------ drivers/dma/cppi41.c | 30 +----- drivers/dma/dma-jz4740.c | 20 +--- drivers/dma/dmaengine.c | 51 +++++---- drivers/dma/dw/core.c | 82 +++++++------- drivers/dma/edma.c | 70 ++++-------- drivers/dma/ep93xx_dma.c | 41 ++----- drivers/dma/fsl-edma.c | 123 ++++++++++----------- drivers/dma/fsldma.c | 91 ++++++---------- drivers/dma/imx-dma.c | 103 +++++++++--------- drivers/dma/imx-sdma.c | 66 ++++++------ drivers/dma/intel_mid_dma.c | 25 ++--- drivers/dma/ipu/ipu_idmac.c | 96 +++++++++-------- drivers/dma/k3dma.c | 197 ++++++++++++++++++---------------- drivers/dma/mmp_pdma.c | 109 ++++++++++--------- drivers/dma/mmp_tdma.c | 82 +++++++------- drivers/dma/moxart-dma.c | 25 +---- drivers/dma/mpc512x_dma.c | 111 +++++++++---------- drivers/dma/mv_xor.c | 9 -- drivers/dma/mxs-dma.c | 59 ++++------ drivers/dma/nbpfaxi.c | 110 +++++++++---------- drivers/dma/omap-dma.c | 69 ++++-------- drivers/dma/pch_dma.c | 8 +- drivers/dma/pl330.c | 126 ++++++++++------------ drivers/dma/qcom_bam_dma.c | 85 +++++++-------- drivers/dma/s3c24xx-dma.c | 75 +++++++------ drivers/dma/sa11x0-dma.c | 158 ++++++++++++++------------- drivers/dma/sh/shdma-base.c | 72 ++++++------- drivers/dma/sirf-dma.c | 59 +++------- drivers/dma/ste_dma40.c | 60 +++++------ drivers/dma/sun6i-dma.c | 159 ++++++++++++++------------- drivers/dma/tegra20-apb-dma.c | 22 +--- drivers/dma/timb_dma.c | 8 +- drivers/dma/txx9dmac.c | 9 +- drivers/dma/xilinx/xilinx_vdma.c | 29 ++--- drivers/rapidio/devices/tsi721_dma.c | 8 +- drivers/tty/serial/atmel_serial.c | 10 +- include/linux/dmaengine.h | 121 ++++++++++++--------- sound/soc/soc-generic-dmaengine-pcm.c | 2 +- 46 files changed, 1520 insertions(+), 1746 deletions(-) -- 2.1.1 -- To unsubscribe from this list: send the line "unsubscribe dmaengine" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html