summaryrefslogtreecommitdiff
path: root/arch/arm/plat-samsung/include/plat/dma-ops.h
diff options
context:
space:
mode:
authorBoojin Kim <boojin.kim@samsung.com>2012-06-19 04:26:53 (GMT)
committerKukjin Kim <kgene.kim@samsung.com>2012-06-19 23:07:35 (GMT)
commitfbb20e81bd26e41667d8d0929fd08ed60b24d9ec (patch)
treeac4c11ddc5d99377018c5bc6b4c05fe5c7281afd /arch/arm/plat-samsung/include/plat/dma-ops.h
parent485802a6c524e62b5924849dd727ddbb1497cc71 (diff)
downloadlinux-fsl-qoriq-fbb20e81bd26e41667d8d0929fd08ed60b24d9ec.tar.xz
ARM: SAMSUNG: Add config() function in DMA common operations
This patch adds config() that configures DMA transmit option. This function was originally included in request(). But, Some DMA client driver requires to change the configuration after request(). So, This patch picks up it from request(). Signed-off-by: Boojin Kim <boojin.kim@samsung.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Diffstat (limited to 'arch/arm/plat-samsung/include/plat/dma-ops.h')
-rw-r--r--arch/arm/plat-samsung/include/plat/dma-ops.h20
1 files changed, 12 insertions, 8 deletions
diff --git a/arch/arm/plat-samsung/include/plat/dma-ops.h b/arch/arm/plat-samsung/include/plat/dma-ops.h
index 71a6827..f5144cd 100644
--- a/arch/arm/plat-samsung/include/plat/dma-ops.h
+++ b/arch/arm/plat-samsung/include/plat/dma-ops.h
@@ -16,7 +16,13 @@
#include <linux/dmaengine.h>
#include <mach/dma.h>
-struct samsung_dma_prep_info {
+struct samsung_dma_req {
+ enum dma_transaction_type cap;
+ struct property *dt_dmach_prop;
+ struct s3c2410_dma_client *client;
+};
+
+struct samsung_dma_prep {
enum dma_transaction_type cap;
enum dma_transfer_direction direction;
dma_addr_t buf;
@@ -26,19 +32,17 @@ struct samsung_dma_prep_info {
void *fp_param;
};
-struct samsung_dma_info {
- enum dma_transaction_type cap;
+struct samsung_dma_config {
enum dma_transfer_direction direction;
enum dma_slave_buswidth width;
dma_addr_t fifo;
- struct s3c2410_dma_client *client;
- struct property *dt_dmach_prop;
};
struct samsung_dma_ops {
- unsigned (*request)(enum dma_ch ch, struct samsung_dma_info *info);
- int (*release)(unsigned ch, struct s3c2410_dma_client *client);
- int (*prepare)(unsigned ch, struct samsung_dma_prep_info *info);
+ unsigned (*request)(enum dma_ch ch, struct samsung_dma_req *param);
+ int (*release)(unsigned ch, void *param);
+ int (*config)(unsigned ch, struct samsung_dma_config *param);
+ int (*prepare)(unsigned ch, struct samsung_dma_prep *param);
int (*trigger)(unsigned ch);
int (*started)(unsigned ch);
int (*flush)(unsigned ch);