aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-09-10 16:37:36 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2013-09-10 16:37:36 -0400
commitec5b103ecfde929004b691f29183255aeeadecd5 (patch)
tree3b16d0654c074b5b36d06e56110c7218a8685655 /arch
parentd0048f0b91ee35ab940ec6cbdfdd238c55b12a14 (diff)
parent5622ff1a4dd7dcb1c09953d8066a4e7c4c350b2d (diff)
Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma
Pull slave-dmaengine updates from Vinod Koul: "This pull brings: - Andy's DW driver updates - Guennadi's sh driver updates - Pl08x driver fixes from Tomasz & Alban - Improvements to mmp_pdma by Daniel - TI EDMA fixes by Joel - New drivers: - Hisilicon k3dma driver - Renesas rcar dma driver - New API for publishing slave driver capablities - Various fixes across the subsystem by Andy, Jingoo, Sachin etc..." * 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma: (94 commits) dma: edma: Remove limits on number of slots dma: edma: Leave linked to Null slot instead of DUMMY slot dma: edma: Find missed events and issue them ARM: edma: Add function to manually trigger an EDMA channel dma: edma: Write out and handle MAX_NR_SG at a given time dma: edma: Setup parameters to DMA MAX_NR_SG at a time dmaengine: pl330: use dma_set_max_seg_size to set the sg limit dmaengine: dma_slave_caps: remove sg entries dma: replace devm_request_and_ioremap by devm_ioremap_resource dma: ste_dma40: Fix potential null pointer dereference dma: ste_dma40: Remove duplicate const dma: imx-dma: Remove redundant NULL check dma: dmagengine: fix function names in comments dma: add driver for R-Car HPB-DMAC dma: k3dma: use devm_ioremap_resource() instead of devm_request_and_ioremap() dma: imx-sdma: Staticize sdma_driver_data structures pch_dma: Add MODULE_DEVICE_TABLE dmaengine: PL08x: Add cyclic transfer support dmaengine: PL08x: Fix reading the byte count in cctl dmaengine: PL08x: Add support for different maximum transfer size ...
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/common/edma.c17
-rw-r--r--arch/arm/mach-imx/mm-imx25.c17
-rw-r--r--arch/arm/mach-imx/mm-imx5.c14
3 files changed, 17 insertions, 31 deletions
diff --git a/arch/arm/common/edma.c b/arch/arm/common/edma.c
index 39ad030ac0c7..117f955a2a06 100644
--- a/arch/arm/common/edma.c
+++ b/arch/arm/common/edma.c
@@ -1235,6 +1235,23 @@ void edma_resume(unsigned channel)
1235} 1235}
1236EXPORT_SYMBOL(edma_resume); 1236EXPORT_SYMBOL(edma_resume);
1237 1237
1238int edma_trigger_channel(unsigned channel)
1239{
1240 unsigned ctlr;
1241 unsigned int mask;
1242
1243 ctlr = EDMA_CTLR(channel);
1244 channel = EDMA_CHAN_SLOT(channel);
1245 mask = BIT(channel & 0x1f);
1246
1247 edma_shadow0_write_array(ctlr, SH_ESR, (channel >> 5), mask);
1248
1249 pr_debug("EDMA: ESR%d %08x\n", (channel >> 5),
1250 edma_shadow0_read_array(ctlr, SH_ESR, (channel >> 5)));
1251 return 0;
1252}
1253EXPORT_SYMBOL(edma_trigger_channel);
1254
1238/** 1255/**
1239 * edma_start - start dma on a channel 1256 * edma_start - start dma on a channel
1240 * @channel: channel being activated 1257 * @channel: channel being activated
diff --git a/arch/arm/mach-imx/mm-imx25.c b/arch/arm/mach-imx/mm-imx25.c
index e065c117f5a6..5211f62c624e 100644
--- a/arch/arm/mach-imx/mm-imx25.c
+++ b/arch/arm/mach-imx/mm-imx25.c
@@ -61,25 +61,8 @@ void __init mx25_init_irq(void)
61 mxc_init_irq(MX25_IO_ADDRESS(MX25_AVIC_BASE_ADDR)); 61 mxc_init_irq(MX25_IO_ADDRESS(MX25_AVIC_BASE_ADDR));
62} 62}
63 63
64static struct sdma_script_start_addrs imx25_sdma_script __initdata = {
65 .ap_2_ap_addr = 729,
66 .uart_2_mcu_addr = 904,
67 .per_2_app_addr = 1255,
68 .mcu_2_app_addr = 834,
69 .uartsh_2_mcu_addr = 1120,
70 .per_2_shp_addr = 1329,
71 .mcu_2_shp_addr = 1048,
72 .ata_2_mcu_addr = 1560,
73 .mcu_2_ata_addr = 1479,
74 .app_2_per_addr = 1189,
75 .app_2_mcu_addr = 770,
76 .shp_2_per_addr = 1407,
77 .shp_2_mcu_addr = 979,
78};
79
80static struct sdma_platform_data imx25_sdma_pdata __initdata = { 64static struct sdma_platform_data imx25_sdma_pdata __initdata = {
81 .fw_name = "sdma-imx25.bin", 65 .fw_name = "sdma-imx25.bin",
82 .script_addrs = &imx25_sdma_script,
83}; 66};
84 67
85static const struct resource imx25_audmux_res[] __initconst = { 68static const struct resource imx25_audmux_res[] __initconst = {
diff --git a/arch/arm/mach-imx/mm-imx5.c b/arch/arm/mach-imx/mm-imx5.c
index a8229b7f10bf..eb3cce38c70d 100644
--- a/arch/arm/mach-imx/mm-imx5.c
+++ b/arch/arm/mach-imx/mm-imx5.c
@@ -103,22 +103,8 @@ void __init mx53_init_irq(void)
103 tzic_init_irq(MX53_IO_ADDRESS(MX53_TZIC_BASE_ADDR)); 103 tzic_init_irq(MX53_IO_ADDRESS(MX53_TZIC_BASE_ADDR));
104} 104}
105 105
106static struct sdma_script_start_addrs imx51_sdma_script __initdata = {
107 .ap_2_ap_addr = 642,
108 .uart_2_mcu_addr = 817,
109 .mcu_2_app_addr = 747,
110 .mcu_2_shp_addr = 961,
111 .ata_2_mcu_addr = 1473,
112 .mcu_2_ata_addr = 1392,
113 .app_2_per_addr = 1033,
114 .app_2_mcu_addr = 683,
115 .shp_2_per_addr = 1251,
116 .shp_2_mcu_addr = 892,
117};
118
119static struct sdma_platform_data imx51_sdma_pdata __initdata = { 106static struct sdma_platform_data imx51_sdma_pdata __initdata = {
120 .fw_name = "sdma-imx51.bin", 107 .fw_name = "sdma-imx51.bin",
121 .script_addrs = &imx51_sdma_script,
122}; 108};
123 109
124static const struct resource imx51_audmux_res[] __initconst = { 110static const struct resource imx51_audmux_res[] __initconst = {