summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* dmaengine: qcom_hidma: kill the tasklets upon exitVinod Koul2016-07-231-0/+1
| | | | | | | | drivers should ensure that tasklets are killed, so that they can't be run after driver remove is executed Signed-off-by: Vinod Koul <vinod.koul@intel.com> Acked-by: Sinan Kaya <okaya@codeaurora.org>
* dmaengine: txx9dmac: explicitly freeup irqVinod Koul2016-07-231-2/+7
| | | | | | | | | | dmaengine device should explicitly call devm_free_irq() when using devm_request_irq(). The irq is still ON when devices remove is executed and irq should be quiesced before remove is completed. Signed-off-by: Vinod Koul <vinod.koul@intel.com>
* dmaengine: sirf-dma: kill the tasklets upon exitVinod Koul2016-07-231-0/+1
| | | | | | | | drivers should ensure that tasklets are killed, so that they can't be run after driver remove is executed Signed-off-by: Vinod Koul <vinod.koul@intel.com> Cc: Barry Song <Baohua.Song@csr.com>
* dmaengine: s3c24xx: kill the tasklets upon exitVinod Koul2016-07-231-1/+3
| | | | | | | | | | drivers should ensure that tasklets are killed, so that they can't be executed after driver remove is executed, so ensure they are killed. This driver used vchan tasklets, so those need to be killed. Signed-off-by: Vinod Koul <vinod.koul@intel.com> Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
* dmaengine: s3c24xx: explicitly freeup irqVinod Koul2016-07-231-0/+14
| | | | | | | | | | | dmaengine device should explicitly call devm_free_irq() when using devm_request_irq(). The irq is still ON when devices remove is executed and irq should be quiesced before remove is completed. Signed-off-by: Vinod Koul <vinod.koul@intel.com> Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
* dmaengine: pl330: explicitly freeup irqVinod Koul2016-07-161-0/+6
| | | | | | | | | | | | dmaengine device should explicitly call devm_free_irq() when using devm_request_irq(). The irq is still ON when devices remove is executed and irq should be quiesced before remove is completed. Signed-off-by: Vinod Koul <vinod.koul@intel.com> Cc: Jassi Brar <jassisinghbrar@gmail.com> Cc: Linus Walleij <linus.walleij@linaro.org>
* dmaengine: omap-dma: explicitly freeup irqVinod Koul2016-07-161-0/+4
| | | | | | | | | | | dmaengine device should explicitly call devm_free_irq() when using devm_request_irq(). The irq is still ON when devices remove is executed and irq should be quiesced before remove is completed. Signed-off-by: Vinod Koul <vinod.koul@intel.com> Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
* dmaengine: mpc512x: kill the tasklets upon exitVinod Koul2016-07-161-0/+1
| | | | | | | | drivers should ensure that tasklets are killed, so that they can't be run after driver remove is executed Signed-off-by: Vinod Koul <vinod.koul@intel.com> Cc: Mario Six <mario.six@gdsys.cc>
* dmaengine: nbpfaxi: kill the tasklets upon exitVinod Koul2016-07-161-0/+2
| | | | | | | | drivers should ensure that tasklets are killed, so that they can't be run after driver remove is executed Signed-off-by: Vinod Koul <vinod.koul@intel.com> Cc: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com>
* dmaengine: nbpfaxi: explicitly freeup irqVinod Koul2016-07-161-0/+11
| | | | | | | | | | | dmaengine device should explicitly call devm_free_irq() when using devm_request_irq(). The irq is still ON when devices remove is executed and irq should be quiesced before remove is completed. Signed-off-by: Vinod Koul <vinod.koul@intel.com> Cc: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com>
* dmaengine: moxart-dma: explicitly freeup irqVinod Koul2016-07-161-0/+4
| | | | | | | | | | | dmaengine device should explicitly call devm_free_irq() when using devm_request_irq(). The irq is still ON when devices remove is executed and irq should be quiesced before remove is completed. Signed-off-by: Vinod Koul <vinod.koul@intel.com> Cc: Jonas Jensen <jonas.jensen@gmail.com>
* dmaengine: mmp_tdma: statify symbolsVinod Koul2016-07-161-2/+2
| | | | | | | | | | Sparse complains: drivers/dma/mmp_tdma.c:407:22: warning: symbol 'mmp_tdma_alloc_descriptor' was not declared. Should it be static? drivers/dma/mmp_tdma.c:595:17: warning: symbol 'mmp_tdma_xlate' was not declared. Should it be static? Signed-off-by: Vinod Koul <vinod.koul@intel.com> Cc: Qiao Zhou <zhouqiao@marvell.com>
* dmaengine: mmp_pdma: explicitly freeup irqVinod Koul2016-07-161-0/+19
| | | | | | | | | | | dmaengine device should explicitly call devm_free_irq() when using devm_request_irq(). The irq is still ON when devices remove is executed and irq should be quiesced before remove is completed. Signed-off-by: Vinod Koul <vinod.koul@intel.com> Acked-by: Zhangfei Gao <zhangfei.gao@linaro.org>
* dmaengine: k3dma: explicitly freeup irqVinod Koul2016-07-161-0/+5
| | | | | | | | | | | dmaengine device should explicitly call devm_free_irq() when using devm_request_irq(). The irq is still ON when devices remove is executed and irq should be quiesced before remove is completed. Signed-off-by: Vinod Koul <vinod.koul@intel.com> Acked-by: Zhangfei Gao <zhangfei.gao@linaro.org>
* dmaengine: imx-sdma: explicitly freeup irqVinod Koul2016-07-161-0/+4
| | | | | | | | | | | | dmaengine device should explicitly call devm_free_irq() when using devm_request_irq(). The irq is still ON when devices remove is executed and irq should be quiesced before remove is completed. Signed-off-by: Vinod Koul <vinod.koul@intel.com> Cc: Sascha Hauer <s.hauer@pengutronix.de> Cc: Fabio Estevam <fabio.estevam@freescale.com>
* dmaengine: imx-dma: fix coding style issueVinod Koul2016-07-161-1/+1
| | | | | | | | imxdma_probe function starting brace is wrongly indented, so fix that Signed-off-by: Vinod Koul <vinod.koul@intel.com> Cc: Sascha Hauer <s.hauer@pengutronix.de> Cc: Linus Walleij <linus.walleij@linaro.org>
* dmaengine: imx-dma: explicitly freeup irqVinod Koul2016-07-161-0/+29
| | | | | | | | | | dmaengine device should explicitly call devm_free_irq() when using devm_request_irq(). The irq is still ON when devices remove is executed and irq should be quiesced before remove is completed. Signed-off-by: Vinod Koul <vinod.koul@intel.com>
* dmaengine: fsl-edma: kill the tasklets upon exitVinod Koul2016-07-161-0/+12
| | | | | | | | | | | drivers should ensure that tasklets are killed, so that they can't be executed after driver remove is executed, so ensure they are killed. This driver used vchan tasklets, so those need to be killed. Signed-off-by: Vinod Koul <vinod.koul@intel.com> Cc: Jingchang Lu <b35083@freescale.com> Cc: Peter Griffin <peter.griffin@linaro.org>
* dmaengine: jz4740: kill the tasklets upon exitVinod Koul2016-07-161-0/+14
| | | | | | | | | | drivers should ensure that tasklets are killed, so that they can't be executed after driver remove is executed, so ensure they are killed. This driver used vchan tasklets, so those need to be killed. Signed-off-by: Vinod Koul <vinod.koul@intel.com> Acked-by: Lars-Peter Clausen <lars@metafoo.de>
* dmaengine: fsl_raid: fix size_t print specifiersVinod Koul2016-07-161-3/+3
| | | | | | | | | | | | | | | | | | | | | | | size_t should be printed with %zu, not %lu as driver did, so fix these warning by doing this change drivers/dma/fsl_raid.c: In function 'fsl_re_prep_dma_genq': drivers/dma/fsl_raid.c:341:4: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'size_t' [-Wformat=] len, FSL_RE_MAX_DATA_LEN); ^ drivers/dma/fsl_raid.c: In function 'fsl_re_prep_dma_pq': drivers/dma/fsl_raid.c:428:4: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'size_t' [-Wformat=] len, FSL_RE_MAX_DATA_LEN); ^ drivers/dma/fsl_raid.c: In function 'fsl_re_prep_dma_memcpy': drivers/dma/fsl_raid.c:549:4: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'size_t' [-Wformat=] len, FSL_RE_MAX_DATA_LEN); ^ Signed-off-by: Vinod Koul <vinod.koul@intel.com>
* dmaengine: fsl_raid: kill the tasklets upon exitVinod Koul2016-07-161-0/+2
| | | | | | | | drivers should ensure that tasklets are killed, so that they can't be run after driver remove is executed Signed-off-by: Vinod Koul <vinod.koul@intel.com> Cc: Xuelin Shi <xuelin.shi@freescale.com>
* dmaengine: fsl-edma: explicitly freeup irqVinod Koul2016-07-161-0/+12
| | | | | | | | | | | | dmaengine device should explicitly call devm_free_irq() when using devm_request_irq(). The irq is still ON when devices remove is executed and irq should be quiesced before remove is completed. Signed-off-by: Vinod Koul <vinod.koul@intel.com> Cc: Jingchang Lu <b35083@freescale.com> Cc: Peter Griffin <peter.griffin@linaro.org>
* dmaengine: edma: kill the tasklets upon exitVinod Koul2016-07-161-0/+13
| | | | | | | | | | drivers should ensure that tasklets are killed, so that they can't be executed after driver remove is executed, so ensure they are killed. This driver used vchan tasklets, so those need to be killed. Signed-off-by: Vinod Koul <vinod.koul@intel.com> Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
* dmaengine: edma: explicitly freeup irqVinod Koul2016-07-161-0/+8
| | | | | | | | | | | dmaengine device should explicitly call devm_free_irq() when using devm_request_irq(). The irq is still ON when devices remove is executed and irq should be quiesced before remove is completed. Signed-off-by: Vinod Koul <vinod.koul@intel.com> Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
* dmaengine: coh901318: statify symbolsVinod Koul2016-07-161-3/+3
| | | | | | | | | | | Sparse complains: drivers/dma/coh901318.c:269:30: warning: symbol 'chan_config' was not declared. Should it be static? drivers/dma/coh901318.c:2806:12: warning: symbol 'coh901318_init' was not declared. Should it be static? drivers/dma/coh901318.c:2812:13: warning: symbol 'coh901318_exit' was not declared. Should it be static? Signed-off-by: Vinod Koul <vinod.koul@intel.com> Acked-by: Linus Walleij <linus.walleij@linaro.org>
* dmaengine: coh901318: kill the tasklets upon exitVinod Koul2016-07-161-0/+18
| | | | | | | | drivers should ensure that tasklets are killed, so that they can't be run after driver remove is executed. Signed-off-by: Vinod Koul <vinod.koul@intel.com> Acked-by: Linus Walleij <linus.walleij@linaro.org>
* dmaengine: coh901318: explicitly freeup irqVinod Koul2016-07-161-0/+5
| | | | | | | | | | | dmaengine device should explicitly call devm_free_irq() when using devm_request_irq(). The irq is still ON when devices remove is executed and irq should be quiesced before remove is completed. Signed-off-by: Vinod Koul <vinod.koul@intel.com> Acked-by: Linus Walleij <linus.walleij@linaro.org>
* dmaengine: dmatest: Add support for scatter-gather DMA modeKedareswara rao Appana2016-07-161-2/+41
| | | | | | | | This patch updates the dmatest client to Support scatter-gather dma mode. Signed-off-by: Kedareswara rao Appana <appanad@xilinx.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
* Merge branch 'topic/xilinx' into for-linusVinod Koul2016-07-167-188/+1695
|\
| * dmaengine: zynqmp: avoid cast warningArnd Bergmann2016-07-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The newly added zynqmp_dma driver produces a warning on 32-bit architectures when dma_addr_t is 64-bit wide: drivers/dma/xilinx/zynqmp_dma.c: In function 'zynqmp_dma_config_sg_ll_desc': drivers/dma/xilinx/zynqmp_dma.c:321:9: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast] ((dma_addr_t)sdesc - (dma_addr_t)chan->desc_pool_v); ^ drivers/dma/xilinx/zynqmp_dma.c:321:29: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast] ((dma_addr_t)sdesc - (dma_addr_t)chan->desc_pool_v); This changes the cast to the more appropriate uintptr_t. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
| * dmaengine: xilinx: Fix race condition in axi dma cyclic dma modeKedareswara rao Appana2016-07-121-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | In cyclic DMA mode need to link the tail bd segment with the head bd segment to process bd's in cyclic. Current driver is doing this only for tx channel needs to update the same for rx channel case also. This patch fixes the same. Signed-off-by: Kedareswara rao Appana <appanad@xilinx.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
| * dmaengine: Add Xilinx zynqmp dma engine driver supportKedareswara rao Appana2016-07-083-0/+1153
| | | | | | | | | | | | | | | | | | Added the driver for zynqmp dma engine used in Zynq UltraScale+ MPSoC. This dma controller supports memory to memory and I/O to I/O buffer transfers. Signed-off-by: Kedareswara rao Appana <appanad@xilinx.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
| * Documentation: DT: dma: Add Xilinx zynqmp dma device tree binding documentationKedareswara rao Appana2016-07-081-0/+27
| | | | | | | | | | | | | | | | | | | | Device-tree binding documentation for Xilinx zynqmp dma engine used in Zynq UltraScale+ MPSoC. Acked-by: Rob Herring <robh@kernel.org> Signed-off-by: Punnaiah Choudary Kalluri <punnaia@xilinx.com> Signed-off-by: Kedareswara rao Appana <appanad@xilinx.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
| * dmaengine: xilinx: Use different channel names for each dmaKedareswara rao Appana2016-07-082-3/+11
| | | | | | | | | | | | | | | | | | | | | | | | Current driver assumes that child node channel name is either "xlnx,axi-vdma-mm2s-channel" or "xlnx,axi-vdma-s2mm-channel" which is confusing the users of AXI DMA and CDMA. This patch fixes this issue by using different channel names for the AXI DMA and AXI CDMA child nodes. Signed-off-by: Kedareswara rao Appana <appanad@xilinx.com> Acked-by: Rob Herring <robh@kernel.org> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
| * dmaengine: xilinx: Rename driver and configKedareswara rao Appana2016-07-084-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | In the existing vdma driver support for AXI DMA and CDMA got added so the driver is no longer VDMA specific. This patch renames the driver and DT binding doc to xilinx_dma and updates the Kconfig description for all the DMAS. Signed-off-by: Kedareswara rao Appana <appanad@xilinx.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
| * Documentation: DT: dma: Delete binding doc for AXI DMAKedareswara rao Appana2016-07-081-65/+0
| | | | | | | | | | | | | | | | | | | | The AXI DMA support is added to the existing AXI VDMA driver. Device tree binding information also updated in the VDMA binding doc. Acked-by: Rob Herring <robh@kernel.org> Signed-off-by: Kedareswara rao Appana <appanad@xilinx.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
| * dmaengine: vdma: Add support for mulit-channel dma modeKedareswara rao Appana2016-07-081-23/+190
| | | | | | | | | | | | | | | | | | | | | | This patch adds support for AXI DMA multi-channel dma mode Multichannel mode enables DMA to connect to multiple masters and slaves on the streaming side. In Multichannel mode AXI DMA supports 2D transfers. Signed-off-by: Kedareswara rao Appana <appanad@xilinx.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
| * Documentation: DT: vdma: Update binding doc for multi-channel dma modeKedareswara rao Appana2016-07-081-0/+4
| | | | | | | | | | | | | | | | | | This patch updates the device-tree binding doc for AXI DMA multi channel dma mode. Acked-by: Rob Herring <robh@kernel.org> Signed-off-by: Kedareswara rao Appana <appanad@xilinx.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
| * dmaengine: vdma: Add 64 bit addressing support for the axi cdmaKedareswara rao Appana2016-06-211-12/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The AXI CDMA is a soft ip, which can be programmed to support 32 bit addressing or greater than 32 bit addressing. When the AXI CDMA ip is configured for 32 bit address space in simple dma mode the source/destination buffer address is specified by a single register(18h for Source buffer address and 20h for Destination buffer address). When configured in SG mode the current descriptor and tail descriptor are specified by a Single register(08h for curdesc 10h for tail desc). When the AXI CDMA core is configured for an address space greater than 32 then each buffer address or descriptor address is specified by a combination of two registers. The first register specifies the LSB 32 bits of address, while the next register specifies the MSB 32 bits of address. For example, 08h will specify the LSB 32 bits while 0Ch will specify the MSB 32 bits of the first start address. So we need to program two registers at a time. This patch adds the 64 bit addressing support to the axicdma IP in the driver. Signed-off-by: Kedareswara rao Appana <appanad@xilinx.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
| * dmaengine: vdma: Add 64 bit addressing support for the axi dmaKedareswara rao Appana2016-06-211-16/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The AXI DMA is a soft ip, which can be programmed to support 32 bit addressing or greater than 32 bit addressing. When the AXI DMA ip is configured for 32 bit address space in simple dma mode the buffer address is specified by a single register (18h for MM2S channel and 48h for S2MM channel). When configured in SG mode The current descriptor and tail descriptor are specified by a single Register(08h for curdesc 10h for tail desc for MM2S channel and 38h for Curdesc and 40h for tail desc for S2MM). When the AXI DMA core is configured for an address space greater than 32 then each buffer address or descriptor address is specified by a combination of two registers. The first register specifies the LSB 32 bits of address, while the next register specifies the MSB 32 bits of address. For example, 48h will specify the LSB 32 bits while 4Ch will specify the MSB 32 bits of the first start address. So we need to program two registers at a time. This patch adds the 64 bit addressing support for the axidma IP in the driver. Signed-off-by: Kedareswara rao Appana <appanad@xilinx.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
| * dmaengine: xilinx-vdma: add some sanity checksArnd Bergmann2016-06-131-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The newly added xilinx_dma_prep_dma_cyclic function sometimes causes a gcc warning about the use of the segment function in case we never run into the inner loop of the function: dma/xilinx/xilinx_vdma.c: In function 'xilinx_dma_prep_dma_cyclic': dma/xilinx/xilinx_vdma.c:1808:23: error: 'segment' may be used uninitialized in this function [-Werror=maybe-uninitialized] segment->hw.control |= XILINX_DMA_BD_SOP; This can only happen if the period len is zero (which would cause other problems earlier), or if the buffer is shorter than a period. Neither of them should ever happen, but by adding an explicit check for these two cases, we can abort in a more controlled way, and the compiler is able to see that we never use uninitialized data. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
| * dmaengine: vdma: Fix compilation warning in cyclic dma modeKedareswara rao Appana2016-06-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes the below compilation warining. drivers/dma/xilinx/xilinx_vdma.c: In function 'xilinx_dma_prep_dma_cyclic': drivers/dma/xilinx/xilinx_vdma.c:1808:23: warning: 'segment' may be used uninitialized in this function [-Wmaybe-uninitialized] segment->hw.control |= XILINX_DMA_BD_SOP; The start of packet (SOP) should be set to the first segment in the desc chain not for the last segment of the desc chain. Signed-off-by: Kedareswara rao Appana <appanad@xilinx.com> Reported-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
| * dmaengine: vdma: Use dma_pool_zallocKedareswara rao Appana2016-06-071-4/+2
| | | | | | | | | | | | | | | | dma_pool_zalloc combines dma_pool_alloc and memset 0 this patch updates the driver to use dma_pool_zalloc. Signed-off-by: Kedareswara rao Appana <appanad@xilinx.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
| * dmaengine: vdma: Add support for cyclic dma modeKedareswara rao Appana2016-06-071-5/+173
| | | | | | | | | | | | | | | | | | | | This patch adds support for AXI DMA cyclic dma mode. In cyclic mode, DMA fetches and processes the same BDs without interruption. The DMA continues to fetch and process until it is stopped or reset. Signed-off-by: Kedareswara rao Appana <appanad@xilinx.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
* | Merge branch 'topic/ti' into for-linusVinod Koul2016-07-161-1/+1
|\ \
| * | dmaengine: ti-dma-crossbar: make omap_dmaxbar_init staticBen Dooks2016-06-281-1/+1
| |/ | | | | | | | | | | | | | | | | | | The omap_dmaxbar_init() function is not exported or declared outside the driver, so make it static to fix the following sparse warning: drivers/dma/ti-dma-crossbar.c:455:5: warning: symbol 'omap_dmaxbar_init' was not declared. Should it be static? Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
* | Merge branch 'topic/tegra' into for-linusVinod Koul2016-07-161-7/+5
|\ \
| * | dmaengine: tegra: Remove some whitespace funkinessThierry Reding2016-06-141-7/+5
| |/ | | | | | | | | | | | | | | | | There are some places where whitespace is used in very funky ways. Fix the most serious ones to make the code easier on the eye. Signed-off-by: Thierry Reding <treding@nvidia.com> Acked-by: Jon Hunter <jonathanh@nvidia.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
* | Merge branch 'topic/st' into for-linusVinod Koul2016-07-161-1/+1
|\ \
| * | dmaengine: ste_dma40_ll: make d40_width_to_bits staticBen Dooks2016-06-081-1/+1
| |/ | | | | | | | | | | | | | | | | | | Fix warning due to d40_width_to_bits() not being used outside this file. Fixes: drivers/dma/ste_dma40_ll.c:13:4: warning: symbol 'd40_width_to_bits' was not declared. Should it be static? Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> Signed-off-by: Vinod Koul <vinod.koul@intel.com>