summaryrefslogtreecommitdiffstats
path: root/drivers/dma/s3c24xx-dma.c
Commit message (Collapse)AuthorAgeFilesLines
* dmaengine: s3c24xx: remove unused ‘cdata’Vinod Koul2016-12-121-5/+0
| | | | | | | | | | | | | | In s3c24xx_dma_get_phy(), variable ‘cdata’ is initialized but never used, which leads to warning with W=1. Removing this make pdata unused. drivers/dma/s3c24xx-dma.c: In function ‘s3c24xx_dma_get_phy’: drivers/dma/s3c24xx-dma.c:293:30: warning: variable ‘cdata’ set but not used [-Wunused-but-set-variable] struct s3c24xx_dma_channel *cdata; So remove both of them. Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
* Merge branch 'topic/compile_test' into for-linusVinod Koul2016-10-031-3/+3
|\
| * dmaengine: s3c24xx: fix pointer cast warningsVinod Koul2016-09-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | On some systems, pointer can be large than unsigned int, triggering warning pointer-to-int-cast on conversion. drivers/dma/s3c24xx-dma.c: In function 's3c24xx_dma_filter': drivers/dma/s3c24xx-dma.c:1421:24: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] Use a long value for type conversion. Suggested-by: Arnd Bergmann <arnd@arndb.de> Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
| * dmaengine: s3c24xx: use correct print specifiers for size_tVinod Koul2016-09-261-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | This driver warns: drivers/dma/s3c24xx-dma.c: In function 's3c24xx_dma_prep_memcpy': drivers/dma/s3c24xx-dma.c:826:2: warning: format '%d' expects argument of type 'int', but argument 4 has type 'size_t' [-Wformat=] drivers/dma/s3c24xx-dma.c:830:3: warning: format '%d' expects argument of type 'int', but argument 3 has type 'size_t' [-Wformat=] We should use %zu to print 'size_t' values. Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
* | dmaengine: s3c24xx: Add dma_slave_map for s3c2440 devicesSam Van Den Berge2016-09-261-0/+3
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | This patch updates the s3c24xx dma driver to be able to pass a dma_slave_map array via the platform data. This is needed to be able to use the new, simpler dmaengine API [1]. I used the virtual DMA channels as a parameter for the dma_filter function. By doing that, I could reuse the existing filter function in drivers/dma/s3c24xx-dma.c. I have tested this on my mini2440 board with the audio driver. According to my observations, dma_request_slave_channel in the function dmaengine_pcm_new in the file sound/soc/soc-generic-dmaengine-pcm.c now returns a valid DMA channel whereas before no DMA channel was returned at that point. Entries for DMACH_XD0, DMACH_XD1 and DMACH_TIMER are missing because I don't realy know which driver to use for these. [1] http://lists.infradead.org/pipermail/linux-arm-kernel/2015-December/393635.html Signed-off-by: Sam Van Den Berge <sam.van.den.berge@telenet.be> Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Acked-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Krzysztof Kozlowski <krzk@kernel.org> Signed-off-by: Vinod Koul <vinod.koul@intel.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: Remove site specific OOM error messages on kzallocPeter Griffin2016-06-211-4/+1
| | | | | | | | | | If kzalloc() fails it will issue it's own error message including a dump_stack(). So remove the site specific error messages. Signed-off-by: Peter Griffin <peter.griffin@linaro.org> Acked-by: Jon Hunter <jonathanh@nvidia.com> Acked-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
* dmaengine: s3c24xx: Simplify code in s3c24xx_dma_tx_status()Peter Griffin2016-06-211-5/+1
| | | | | | | Doing so saves a few lines of code in the driver. Signed-off-by: Peter Griffin <peter.griffin@linaro.org> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
* dmaengine: s3c24xx: Constify platform_device_idKrzysztof Kozlowski2015-05-041-1/+1
| | | | | | | | The platform_device_id is not modified by the driver and core uses it as const. Signed-off-by: Krzysztof Kozlowski <k.kozlowski.k@gmail.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
* dmaengine: s3c24xx: remove device_alloc_chan_resources handlerVinod Koul2015-03-181-9/+0
| | | | | | | Now that device_alloc_chan_resources handler in not mandatory, remove dummy implementations Signed-off-by: Vinod Koul <vinod.koul@intel.com>
* dmaengine: s3c24xx: Fix spelling mistake in dev_err mistakeColin Ian King2015-03-021-2/+2
| | | | | | | | Fix spelling mistake, "aquire" -> "acquire" and missing newline (as spotted by Joe Perches. Signed-off-by: Colin Ian King <colin.king@canonical.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
* dmaengine: s3c24xx: missing unlock on an error pathDan Carpenter2015-02-041-3/+5
| | | | | | | | | We should unlock here before returning -EINVAL. Fixes: 39ad46009654 ('dmaengine: s3c24xx: Split device_control') Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
* dmaengine: s3c24xx: Fix typoMaxime Ripard2015-01-181-1/+1
| | | | | | | A typo has been introduced in the spin_unlock_irqrestore function. Fix it. Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
* dmaengine: s3c24xx: Split device_controlMaxime Ripard2014-12-221-39/+36
| | | | | | | | | Split the device_control callback of the Samsung S3C24xxx DMA driver to make use of the newly introduced callbacks, that will eventually be used to retrieve slave capabilities. Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
* dmaengine: Remove .owner field for driverKiran Padwal2014-11-061-1/+0
| | | | | | | | | | | | | | | | There is no need to init .owner field. Based on the patch from Peter Griffin <peter.griffin@linaro.org> "mmc: remove .owner field for drivers using module_platform_driver" This patch removes the superflous .owner field for drivers which use the module_platform_driver API, as this is overriden in platform_driver_register anyway." Signed-off-by: Kiran Padwal <kiran.padwal@smartplayin.com> [for nvidia] Acked-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
* dmaengine: Remove the context argument to the prep_dma_cyclic operationLaurent Pinchart2014-08-041-2/+1
| | | | | | | The argument is always set to NULL and never used. Remove it. Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
* dmaengine: s3c24xx-dma: Add cyclic transfer supportVasily Khoruzhick2014-06-011-1/+111
| | | | | | | | | | Many audio interface drivers require support of cyclic transfers to work correctly, for example Samsung ASoC DMA driver. This patch adds support for cyclic transfers to the s3c24xx-dma driver Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com> Reviewed-by: Heiko Stuebner <heiko@sntech.de> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
* dmaengine: s3c24xx-dma: Process whole SG chainVasily Khoruzhick2014-06-011-1/+0
| | | | | | | | Due to redundant 'break' in loop driver processed only first chunk. Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com> Reviewed-by: Heiko Stuebner <heiko@sntech.de> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
* dmaengine: s3c24xx-dma: make phy->irq signed for error handlingDan Carpenter2014-03-111-1/+1
| | | | | | | | | | | | | There is a bug in s3c24xx_dma_probe() where we do: phy->irq = platform_get_irq(pdev, i); if (phy->irq < 0) { The problem is that "phy->irq" is unsigned so the error handling doesn't work. I have changed it to signed. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
* dma: fix build breakage in s3c24xx-dmaDan Williams2013-12-041-30/+1
| | | | | | | | This driver missed the dma unmap conversion. Replace s3c24xx_dma_unmap_buffers with dma_descriptor_unmap. Signed-off-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
* dmaengine: s3c24xx-dma: use DMA_COMPLETE for dma completion statusSachin Kamat2013-11-281-1/+1
| | | | | | | | | | | | | Use the recently introduced DMA_COMPLETE instead of DMA_SUCCESS. Without this patch we get the following build error: drivers/dma/s3c24xx-dma.c: In function ‘s3c24xx_dma_tx_status’: drivers/dma/s3c24xx-dma.c:798:13: error: ‘DMA_SUCCESS’ undeclared (first use in this function) Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Acked-by: Heiko Stuebner <heiko@sntech.de> Acked-by: Kukjin Kim <kgene@kernel.org> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
* dmaengine: s3c24xx-dma: add support for the s3c2410 type of controllerHeiko Stuebner2013-10-211-0/+10
| | | | | | | | | | The earliest variants of the dma controller did not contain support for controlling clocks. Signed-off-by: Heiko Stuebner <heiko@sntech.de> Reviewed-by: Tomasz Figa <t.figa@samsung.com> Acked-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* dmaengine: add driver for Samsung s3c24xx SoCsHeiko Stuebner2013-10-081-0/+1340
This adds a new driver to support the s3c24xx dma using the dmaengine and makes the old one in mach-s3c24xx obsolete in the long run. Conceptually the s3c24xx-dma feels like a distant relative of the pl08x with numerous virtual channels being mapped to a lot less physical ones. The driver therefore borrows a lot from the amba-pl08x driver in this regard. Functionality-wise the driver gains a memcpy ability in addition to the slave_sg one. The driver supports both the method for requesting the peripheral used by SoCs before the S3C2443 and the different method for S3C2443 and later. On earlier SoCs the hardware channels usable for specific peripherals is constrainted while on later SoCs all channels can be used for any peripheral. Tested on a s3c2416-based board, memcpy using the dmatest module and slave_sg partially using the spi-s3c64xx driver. Signed-off-by: Heiko Stuebner <heiko@sntech.de> Acked-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>