diff options
author | Linus Walleij <linus.walleij@stericsson.com> | 2010-02-14 13:41:35 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2010-02-14 18:11:03 -0500 |
commit | d40956665dc0c2fe2608268c2e7cff561ddcce11 (patch) | |
tree | 821517f56c8787fcc8818ac2fd17214ebc7649e8 /arch/arm/mach-u300 | |
parent | 59778fb6c402d48b1efa154e0e79d5e94726365e (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.c | 22 |
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, |