These patches mainly adds the support for QCA BAM command descriptor and per SG flags which are required for implementing BAM DMA support for some QCA peripherals like QPIC NAND/LCD. The BAM command descriptors perform all register reads and writes while data descriptors do data transfer. The QPIC NAND forms the chain of command and data descriptors for full page read/write and submit it to BAM DMA. Following are the limitation of existing DMA mapping function which forces us to go for separate DMA custom mapping function and SG. 1. BAM descriptor has multiple flags which cannot be mapped with generic DMA engine flags. 2. For each page code word i.e 512 bytes, approx 10-15 register read/writes are required. The NAND driver combines all these into SGL and submit it to BAM. Each register read/writes require different flags and the current generic SG does not have field to set dma flags for each SG. We cannot add flag parameter in generic SG since it is being used by different subsystems across linux kernel. So these patches add custom mapping function, QCA specific SG which has dma flag for each SG and its DMA mapping functions. With these, peripheral driver can set per SG flag and submit it to custom DMA mapping function. Abhishek Sahu (5): dmaengine: qca: bam_dma: Add header file for bam driver dmaengine: Add support for custom data mapping dmaengine: qca: bam_dma: Add support for bam sgl dmaengine: qca: bam_dma: implement custom data mapping dmaengine: qca: bam_dma: implement command descriptor drivers/dma/qcom/bam_dma.c | 98 +++++++++++++++++++++-- include/linux/dma/qcom_bam_dma.h | 162 +++++++++++++++++++++++++++++++++++++++ include/linux/dmaengine.h | 5 ++ 3 files changed, 258 insertions(+), 7 deletions(-) create mode 100644 include/linux/dma/qcom_bam_dma.h -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project -- 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