summaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-s3c64xx/dma.c
Commit message (Collapse)AuthorAgeFilesLines
* ARM: S3C64XX: DMA: Free node for non-circular queuesJassi Brar2009-11-091-0/+6
| | | | | | | | We need to free the buff and lli nodes if the buffer queue is not CIRCULAR. Signed-off-by: Jassi Brar <jassi.brar@samsung.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* ARM: S3C64XX: DMA: Callback with correct buffer pointerJassi Brar2009-11-091-1/+28
| | | | | | | | | buffdone callback should be called per buffer request with pointer to the latest serviced request. 'next' should point to the one next to currently active. Signed-off-by: Jassi Brar <jassi.brar@samsung.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* ARM: S3C64XX: DMA: Make src and dst transfer size sameJassi Brar2009-11-091-4/+2
| | | | | | | | | Some devices don't seem to work if the source and desitnation transfer widths are not same. For example, SPI dma xfers, with 8bits/word, don't work without this patch. Signed-off-by: Jassi Brar <jassi.brar@samsung.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* ARM: S3C64XX: DMA: Unify callback functions for success/failureJassi Brar2009-11-091-21/+13
| | | | | | | | Replace s3c64xx_dma_tcirq and s3c64xx_dma_errirq with the common s3c64xx_dma_buffdone. Signed-off-by: Jassi Brar <jassi.brar@samsung.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* ARM: S3C64XX: DMA: Protect buffer pointers while manipulationJassi Brar2009-11-091-0/+5
| | | | | | | | | Ensure the DMA buffer points are not updated from another source during the process of enquing a buffer. Signed-off-by: Jassi Brar <jassi.brar@samsung.com> [ben-linux@fluff.org: Updated patch comment] Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* ARM: S3C64XX: DMA: Debugged alloc's with GFP_KERNEL flag in Intr context.Jassi2009-09-161-2/+2
| | | | | | | | | | | | | s3c2410_dma_enqueue makes call to kzalloc and dma_pool_alloc with GFP_KERNEL flag set, this can be an issue for drivers, like I2S, which call s3c2410_dma_enqueue from dma-bufferdone callback. Change the flag GFP_KERNEL to GFP_ATOMIC to avoid any problems. Signed-Off-by: Jassi <jassi.brar@samsung.com> [ben-linux@fluff.org: Minor description edit and re-wrap] Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* ARM: S3C64XX: DMA: 'size' argument of dma_pool_createJassi2009-09-161-1/+1
| | | | | | | | | Provide actual minimum(struct pl080s_lli) size of block to dma_pool_create call, instead of hardcoded 32 bytes. Signed-Off-by: Jassi <jassi.brar@samsung.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* [ARM] S3C64XX: Lower severity of DMA loggingMark Brown2009-05-181-1/+1
| | | | | | | The message was missing a severity macro so pick pr_debug(). Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* [ARM] S3C64XX: DMA supportBen Dooks2009-05-181-0/+722
Add support for the DMA blocks in the S3C64XX series of CPUS, which are based on the ARM PL080 PrimeCell system. Unfortunately, these DMA controllers diverge from the PL080 design by adding another DMA controller register and configuration for OneNAND. Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>