aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-u300
diff options
context:
space:
mode:
authorLinus Walleij <linus.walleij@stericsson.com>2010-02-14 13:41:35 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2010-02-14 18:11:03 -0500
commitd40956665dc0c2fe2608268c2e7cff561ddcce11 (patch)
tree821517f56c8787fcc8818ac2fd17214ebc7649e8 /arch/arm/mach-u300
parent59778fb6c402d48b1efa154e0e79d5e94726365e (diff)
ARM: 5935/1: [U300] Fix the DMA configuration
This fixes a few bugs in the DMA configuration for the COH 901 318 DMA engine used in U300. It also removes the directional parameter for each channel: separate DMA engine patches (submitted to the DMA engine maintainer) switches that mechanism over to using dynamic configuration of this, to handle bidirectional DMA channels. Cc: Dan Williams <dan.j.williams@intel.com> Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-u300')
-rw-r--r--arch/arm/mach-u300/core.c22
1 files changed, 4 insertions, 18 deletions
diff --git a/arch/arm/mach-u300/core.c b/arch/arm/mach-u300/core.c
index 6869052fe096..01b50313914c 100644
--- a/arch/arm/mach-u300/core.c
+++ b/arch/arm/mach-u300/core.c
@@ -475,7 +475,6 @@ const struct coh_dma_channel chan_config[U300_DMA_CHANNELS] = {
475 .priority_high = 0, 475 .priority_high = 0,
476 .dev_addr = U300_MSL_BASE + 1 * 0x40 + 0x20, 476 .dev_addr = U300_MSL_BASE + 1 * 0x40 + 0x20,
477 .param.config = COH901318_CX_CFG_CH_DISABLE | 477 .param.config = COH901318_CX_CFG_CH_DISABLE |
478 COH901318_CX_CFG_RM_MEMORY_TO_PRIMARY |
479 COH901318_CX_CFG_LCR_DISABLE | 478 COH901318_CX_CFG_LCR_DISABLE |
480 COH901318_CX_CFG_TC_IRQ_ENABLE | 479 COH901318_CX_CFG_TC_IRQ_ENABLE |
481 COH901318_CX_CFG_BE_IRQ_ENABLE, 480 COH901318_CX_CFG_BE_IRQ_ENABLE,
@@ -528,7 +527,6 @@ const struct coh_dma_channel chan_config[U300_DMA_CHANNELS] = {
528 .priority_high = 0, 527 .priority_high = 0,
529 .dev_addr = U300_MSL_BASE + 2 * 0x40 + 0x20, 528 .dev_addr = U300_MSL_BASE + 2 * 0x40 + 0x20,
530 .param.config = COH901318_CX_CFG_CH_DISABLE | 529 .param.config = COH901318_CX_CFG_CH_DISABLE |
531 COH901318_CX_CFG_RM_MEMORY_TO_PRIMARY |
532 COH901318_CX_CFG_LCR_DISABLE | 530 COH901318_CX_CFG_LCR_DISABLE |
533 COH901318_CX_CFG_TC_IRQ_ENABLE | 531 COH901318_CX_CFG_TC_IRQ_ENABLE |
534 COH901318_CX_CFG_BE_IRQ_ENABLE, 532 COH901318_CX_CFG_BE_IRQ_ENABLE,
@@ -582,7 +580,6 @@ const struct coh_dma_channel chan_config[U300_DMA_CHANNELS] = {
582 .priority_high = 0, 580 .priority_high = 0,
583 .dev_addr = U300_MSL_BASE + 3 * 0x40 + 0x20, 581 .dev_addr = U300_MSL_BASE + 3 * 0x40 + 0x20,
584 .param.config = COH901318_CX_CFG_CH_DISABLE | 582 .param.config = COH901318_CX_CFG_CH_DISABLE |
585 COH901318_CX_CFG_RM_MEMORY_TO_PRIMARY |
586 COH901318_CX_CFG_LCR_DISABLE | 583 COH901318_CX_CFG_LCR_DISABLE |
587 COH901318_CX_CFG_TC_IRQ_ENABLE | 584 COH901318_CX_CFG_TC_IRQ_ENABLE |
588 COH901318_CX_CFG_BE_IRQ_ENABLE, 585 COH901318_CX_CFG_BE_IRQ_ENABLE,
@@ -635,7 +632,6 @@ const struct coh_dma_channel chan_config[U300_DMA_CHANNELS] = {
635 .priority_high = 0, 632 .priority_high = 0,
636 .dev_addr = U300_MSL_BASE + 4 * 0x40 + 0x20, 633 .dev_addr = U300_MSL_BASE + 4 * 0x40 + 0x20,
637 .param.config = COH901318_CX_CFG_CH_DISABLE | 634 .param.config = COH901318_CX_CFG_CH_DISABLE |
638 COH901318_CX_CFG_RM_MEMORY_TO_PRIMARY |
639 COH901318_CX_CFG_LCR_DISABLE | 635 COH901318_CX_CFG_LCR_DISABLE |
640 COH901318_CX_CFG_TC_IRQ_ENABLE | 636 COH901318_CX_CFG_TC_IRQ_ENABLE |
641 COH901318_CX_CFG_BE_IRQ_ENABLE, 637 COH901318_CX_CFG_BE_IRQ_ENABLE,
@@ -706,7 +702,6 @@ const struct coh_dma_channel chan_config[U300_DMA_CHANNELS] = {
706 .priority_high = 0, 702 .priority_high = 0,
707 .dev_addr = U300_MSL_BASE + 1 * 0x40 + 0x220, 703 .dev_addr = U300_MSL_BASE + 1 * 0x40 + 0x220,
708 .param.config = COH901318_CX_CFG_CH_DISABLE | 704 .param.config = COH901318_CX_CFG_CH_DISABLE |
709 COH901318_CX_CFG_RM_PRIMARY_TO_MEMORY |
710 COH901318_CX_CFG_LCR_DISABLE | 705 COH901318_CX_CFG_LCR_DISABLE |
711 COH901318_CX_CFG_TC_IRQ_ENABLE | 706 COH901318_CX_CFG_TC_IRQ_ENABLE |
712 COH901318_CX_CFG_BE_IRQ_ENABLE, 707 COH901318_CX_CFG_BE_IRQ_ENABLE,
@@ -746,7 +741,6 @@ const struct coh_dma_channel chan_config[U300_DMA_CHANNELS] = {
746 .priority_high = 0, 741 .priority_high = 0,
747 .dev_addr = U300_MSL_BASE + 2 * 0x40 + 0x220, 742 .dev_addr = U300_MSL_BASE + 2 * 0x40 + 0x220,
748 .param.config = COH901318_CX_CFG_CH_DISABLE | 743 .param.config = COH901318_CX_CFG_CH_DISABLE |
749 COH901318_CX_CFG_RM_PRIMARY_TO_MEMORY |
750 COH901318_CX_CFG_LCR_DISABLE | 744 COH901318_CX_CFG_LCR_DISABLE |
751 COH901318_CX_CFG_TC_IRQ_ENABLE | 745 COH901318_CX_CFG_TC_IRQ_ENABLE |
752 COH901318_CX_CFG_BE_IRQ_ENABLE, 746 COH901318_CX_CFG_BE_IRQ_ENABLE,
@@ -799,7 +793,6 @@ const struct coh_dma_channel chan_config[U300_DMA_CHANNELS] = {
799 .priority_high = 0, 793 .priority_high = 0,
800 .dev_addr = U300_MSL_BASE + 3 * 0x40 + 0x220, 794 .dev_addr = U300_MSL_BASE + 3 * 0x40 + 0x220,
801 .param.config = COH901318_CX_CFG_CH_DISABLE | 795 .param.config = COH901318_CX_CFG_CH_DISABLE |
802 COH901318_CX_CFG_RM_PRIMARY_TO_MEMORY |
803 COH901318_CX_CFG_LCR_DISABLE | 796 COH901318_CX_CFG_LCR_DISABLE |
804 COH901318_CX_CFG_TC_IRQ_ENABLE | 797 COH901318_CX_CFG_TC_IRQ_ENABLE |
805 COH901318_CX_CFG_BE_IRQ_ENABLE, 798 COH901318_CX_CFG_BE_IRQ_ENABLE,
@@ -852,7 +845,6 @@ const struct coh_dma_channel chan_config[U300_DMA_CHANNELS] = {
852 .priority_high = 0, 845 .priority_high = 0,
853 .dev_addr = U300_MSL_BASE + 4 * 0x40 + 0x220, 846 .dev_addr = U300_MSL_BASE + 4 * 0x40 + 0x220,
854 .param.config = COH901318_CX_CFG_CH_DISABLE | 847 .param.config = COH901318_CX_CFG_CH_DISABLE |
855 COH901318_CX_CFG_RM_PRIMARY_TO_MEMORY |
856 COH901318_CX_CFG_LCR_DISABLE | 848 COH901318_CX_CFG_LCR_DISABLE |
857 COH901318_CX_CFG_TC_IRQ_ENABLE | 849 COH901318_CX_CFG_TC_IRQ_ENABLE |
858 COH901318_CX_CFG_BE_IRQ_ENABLE, 850 COH901318_CX_CFG_BE_IRQ_ENABLE,
@@ -905,7 +897,6 @@ const struct coh_dma_channel chan_config[U300_DMA_CHANNELS] = {
905 .priority_high = 0, 897 .priority_high = 0,
906 .dev_addr = U300_MSL_BASE + 5 * 0x40 + 0x220, 898 .dev_addr = U300_MSL_BASE + 5 * 0x40 + 0x220,
907 .param.config = COH901318_CX_CFG_CH_DISABLE | 899 .param.config = COH901318_CX_CFG_CH_DISABLE |
908 COH901318_CX_CFG_RM_PRIMARY_TO_MEMORY |
909 COH901318_CX_CFG_LCR_DISABLE | 900 COH901318_CX_CFG_LCR_DISABLE |
910 COH901318_CX_CFG_TC_IRQ_ENABLE | 901 COH901318_CX_CFG_TC_IRQ_ENABLE |
911 COH901318_CX_CFG_BE_IRQ_ENABLE, 902 COH901318_CX_CFG_BE_IRQ_ENABLE,
@@ -964,7 +955,6 @@ const struct coh_dma_channel chan_config[U300_DMA_CHANNELS] = {
964 .priority_high = 0, 955 .priority_high = 0,
965 .dev_addr = U300_MMCSD_BASE + 0x080, 956 .dev_addr = U300_MMCSD_BASE + 0x080,
966 .param.config = COH901318_CX_CFG_CH_DISABLE | 957 .param.config = COH901318_CX_CFG_CH_DISABLE |
967 COH901318_CX_CFG_RM_PRIMARY_TO_MEMORY |
968 COH901318_CX_CFG_LCR_DISABLE | 958 COH901318_CX_CFG_LCR_DISABLE |
969 COH901318_CX_CFG_TC_IRQ_ENABLE | 959 COH901318_CX_CFG_TC_IRQ_ENABLE |
970 COH901318_CX_CFG_BE_IRQ_ENABLE, 960 COH901318_CX_CFG_BE_IRQ_ENABLE,
@@ -974,8 +964,8 @@ const struct coh_dma_channel chan_config[U300_DMA_CHANNELS] = {
974 COH901318_CX_CTRL_SRC_BUS_SIZE_32_BITS | 964 COH901318_CX_CTRL_SRC_BUS_SIZE_32_BITS |
975 COH901318_CX_CTRL_DST_BUS_SIZE_32_BITS | 965 COH901318_CX_CTRL_DST_BUS_SIZE_32_BITS |
976 COH901318_CX_CTRL_MASTER_MODE_M1RW | 966 COH901318_CX_CTRL_MASTER_MODE_M1RW |
977 COH901318_CX_CTRL_TCP_DISABLE | 967 COH901318_CX_CTRL_TCP_ENABLE |
978 COH901318_CX_CTRL_TC_IRQ_DISABLE | 968 COH901318_CX_CTRL_TC_IRQ_ENABLE |
979 COH901318_CX_CTRL_HSP_ENABLE | 969 COH901318_CX_CTRL_HSP_ENABLE |
980 COH901318_CX_CTRL_HSS_DISABLE | 970 COH901318_CX_CTRL_HSS_DISABLE |
981 COH901318_CX_CTRL_DDMA_LEGACY, 971 COH901318_CX_CTRL_DDMA_LEGACY,
@@ -986,7 +976,7 @@ const struct coh_dma_channel chan_config[U300_DMA_CHANNELS] = {
986 COH901318_CX_CTRL_DST_BUS_SIZE_32_BITS | 976 COH901318_CX_CTRL_DST_BUS_SIZE_32_BITS |
987 COH901318_CX_CTRL_MASTER_MODE_M1RW | 977 COH901318_CX_CTRL_MASTER_MODE_M1RW |
988 COH901318_CX_CTRL_TCP_ENABLE | 978 COH901318_CX_CTRL_TCP_ENABLE |
989 COH901318_CX_CTRL_TC_IRQ_DISABLE | 979 COH901318_CX_CTRL_TC_IRQ_ENABLE |
990 COH901318_CX_CTRL_HSP_ENABLE | 980 COH901318_CX_CTRL_HSP_ENABLE |
991 COH901318_CX_CTRL_HSS_DISABLE | 981 COH901318_CX_CTRL_HSS_DISABLE |
992 COH901318_CX_CTRL_DDMA_LEGACY, 982 COH901318_CX_CTRL_DDMA_LEGACY,
@@ -996,7 +986,7 @@ const struct coh_dma_channel chan_config[U300_DMA_CHANNELS] = {
996 COH901318_CX_CTRL_SRC_BUS_SIZE_32_BITS | 986 COH901318_CX_CTRL_SRC_BUS_SIZE_32_BITS |
997 COH901318_CX_CTRL_DST_BUS_SIZE_32_BITS | 987 COH901318_CX_CTRL_DST_BUS_SIZE_32_BITS |
998 COH901318_CX_CTRL_MASTER_MODE_M1RW | 988 COH901318_CX_CTRL_MASTER_MODE_M1RW |
999 COH901318_CX_CTRL_TCP_ENABLE | 989 COH901318_CX_CTRL_TCP_DISABLE |
1000 COH901318_CX_CTRL_TC_IRQ_ENABLE | 990 COH901318_CX_CTRL_TC_IRQ_ENABLE |
1001 COH901318_CX_CTRL_HSP_ENABLE | 991 COH901318_CX_CTRL_HSP_ENABLE |
1002 COH901318_CX_CTRL_HSS_DISABLE | 992 COH901318_CX_CTRL_HSS_DISABLE |
@@ -1039,7 +1029,6 @@ const struct coh_dma_channel chan_config[U300_DMA_CHANNELS] = {
1039 .priority_high = 1, 1029 .priority_high = 1,
1040 .dev_addr = U300_PCM_I2S0_BASE + 0x14, 1030 .dev_addr = U300_PCM_I2S0_BASE + 0x14,
1041 .param.config = COH901318_CX_CFG_CH_DISABLE | 1031 .param.config = COH901318_CX_CFG_CH_DISABLE |
1042 COH901318_CX_CFG_RM_MEMORY_TO_PRIMARY |
1043 COH901318_CX_CFG_LCR_DISABLE | 1032 COH901318_CX_CFG_LCR_DISABLE |
1044 COH901318_CX_CFG_TC_IRQ_ENABLE | 1033 COH901318_CX_CFG_TC_IRQ_ENABLE |
1045 COH901318_CX_CFG_BE_IRQ_ENABLE, 1034 COH901318_CX_CFG_BE_IRQ_ENABLE,
@@ -1092,7 +1081,6 @@ const struct coh_dma_channel chan_config[U300_DMA_CHANNELS] = {
1092 .priority_high = 1, 1081 .priority_high = 1,
1093 .dev_addr = U300_PCM_I2S0_BASE + 0x10, 1082 .dev_addr = U300_PCM_I2S0_BASE + 0x10,
1094 .param.config = COH901318_CX_CFG_CH_DISABLE | 1083 .param.config = COH901318_CX_CFG_CH_DISABLE |
1095 COH901318_CX_CFG_RM_PRIMARY_TO_MEMORY |
1096 COH901318_CX_CFG_LCR_DISABLE | 1084 COH901318_CX_CFG_LCR_DISABLE |
1097 COH901318_CX_CFG_TC_IRQ_ENABLE | 1085 COH901318_CX_CFG_TC_IRQ_ENABLE |
1098 COH901318_CX_CFG_BE_IRQ_ENABLE, 1086 COH901318_CX_CFG_BE_IRQ_ENABLE,
@@ -1145,7 +1133,6 @@ const struct coh_dma_channel chan_config[U300_DMA_CHANNELS] = {
1145 .priority_high = 1, 1133 .priority_high = 1,
1146 .dev_addr = U300_PCM_I2S1_BASE + 0x14, 1134 .dev_addr = U300_PCM_I2S1_BASE + 0x14,
1147 .param.config = COH901318_CX_CFG_CH_DISABLE | 1135 .param.config = COH901318_CX_CFG_CH_DISABLE |
1148 COH901318_CX_CFG_RM_MEMORY_TO_PRIMARY |
1149 COH901318_CX_CFG_LCR_DISABLE | 1136 COH901318_CX_CFG_LCR_DISABLE |
1150 COH901318_CX_CFG_TC_IRQ_ENABLE | 1137 COH901318_CX_CFG_TC_IRQ_ENABLE |
1151 COH901318_CX_CFG_BE_IRQ_ENABLE, 1138 COH901318_CX_CFG_BE_IRQ_ENABLE,
@@ -1198,7 +1185,6 @@ const struct coh_dma_channel chan_config[U300_DMA_CHANNELS] = {
1198 .priority_high = 1, 1185 .priority_high = 1,
1199 .dev_addr = U300_PCM_I2S1_BASE + 0x10, 1186 .dev_addr = U300_PCM_I2S1_BASE + 0x10,
1200 .param.config = COH901318_CX_CFG_CH_DISABLE | 1187 .param.config = COH901318_CX_CFG_CH_DISABLE |
1201 COH901318_CX_CFG_RM_PRIMARY_TO_MEMORY |
1202 COH901318_CX_CFG_LCR_DISABLE | 1188 COH901318_CX_CFG_LCR_DISABLE |
1203 COH901318_CX_CFG_TC_IRQ_ENABLE | 1189 COH901318_CX_CFG_TC_IRQ_ENABLE |
1204 COH901318_CX_CFG_BE_IRQ_ENABLE, 1190 COH901318_CX_CFG_BE_IRQ_ENABLE,