diff options
author | Arnd Bergmann <arnd@arndb.de> | 2012-07-10 08:12:05 -0400 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2012-07-10 08:12:05 -0400 |
commit | 31dfec74c0dc49521b2e17543ff9dd9dd0221702 (patch) | |
tree | c97607d7d6db0597dffd2dc96854e706b54a8088 /arch/arm/plat-samsung/include | |
parent | bd0a521e88aa7a06ae7aabaed7ae196ed4ad867a (diff) | |
parent | 3688be49e901551756f4c570a8eb3b98b1e2bbe5 (diff) |
Merge branch 'next/devel-dma-ops' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/dma
From Kukjin Kim <kgene.kim@samsung.com>:
Here is updating DMA common operation for Samsung SoCs.
Since some DMA client driver such as spi needs to change the configuration
after dma_request() so this branch adds dma_config() can configure DMA
transmit option which is included in dma_request() after that.
Note, according to the changes, needs to update spi and ASoC drivers
for Samsung SoCs and only got the ack from Mark Brown not Grant Likely
and as I know, he is busy for moving. But I think, the spi change has
no problem and it is simple.
* 'next/devel-dma-ops' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:
ARM: SAMSUNG: Fix compiler warning in dma-ops.c file
ASoC: follow the updated samsung DMA common operations
spi/s3c64xx: Add the use of DMA config operation
ARM: SAMSUNG: Add config() function in DMA common operations
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch/arm/plat-samsung/include')
-rw-r--r-- | arch/arm/plat-samsung/include/plat/dma-ops.h | 20 |
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 71a6827c7706..f5144cdd3001 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 @@ | |||
16 | #include <linux/dmaengine.h> | 16 | #include <linux/dmaengine.h> |
17 | #include <mach/dma.h> | 17 | #include <mach/dma.h> |
18 | 18 | ||
19 | struct samsung_dma_prep_info { | 19 | struct samsung_dma_req { |
20 | enum dma_transaction_type cap; | ||
21 | struct property *dt_dmach_prop; | ||
22 | struct s3c2410_dma_client *client; | ||
23 | }; | ||
24 | |||
25 | struct samsung_dma_prep { | ||
20 | enum dma_transaction_type cap; | 26 | enum dma_transaction_type cap; |
21 | enum dma_transfer_direction direction; | 27 | enum dma_transfer_direction direction; |
22 | dma_addr_t buf; | 28 | dma_addr_t buf; |
@@ -26,19 +32,17 @@ struct samsung_dma_prep_info { | |||
26 | void *fp_param; | 32 | void *fp_param; |
27 | }; | 33 | }; |
28 | 34 | ||
29 | struct samsung_dma_info { | 35 | struct samsung_dma_config { |
30 | enum dma_transaction_type cap; | ||
31 | enum dma_transfer_direction direction; | 36 | enum dma_transfer_direction direction; |
32 | enum dma_slave_buswidth width; | 37 | enum dma_slave_buswidth width; |
33 | dma_addr_t fifo; | 38 | dma_addr_t fifo; |
34 | struct s3c2410_dma_client *client; | ||
35 | struct property *dt_dmach_prop; | ||
36 | }; | 39 | }; |
37 | 40 | ||
38 | struct samsung_dma_ops { | 41 | struct samsung_dma_ops { |
39 | unsigned (*request)(enum dma_ch ch, struct samsung_dma_info *info); | 42 | unsigned (*request)(enum dma_ch ch, struct samsung_dma_req *param); |
40 | int (*release)(unsigned ch, struct s3c2410_dma_client *client); | 43 | int (*release)(unsigned ch, void *param); |
41 | int (*prepare)(unsigned ch, struct samsung_dma_prep_info *info); | 44 | int (*config)(unsigned ch, struct samsung_dma_config *param); |
45 | int (*prepare)(unsigned ch, struct samsung_dma_prep *param); | ||
42 | int (*trigger)(unsigned ch); | 46 | int (*trigger)(unsigned ch); |
43 | int (*started)(unsigned ch); | 47 | int (*started)(unsigned ch); |
44 | int (*flush)(unsigned ch); | 48 | int (*flush)(unsigned ch); |