Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: S5PC100: Modify platform data for pl330 driver

With the 'struct dma_pl330_peri' removed, the platfrom data for dma
driver can be simplified to a simple list of peripheral request ids.

Cc: Jassi Brar <jassisinghbrar@gmail.com>
Acked-by: Boojin Kim <boojin.kim@samsung.com>
Signed-off-by: Thomas Abraham <thomas.abraham@linaro.org>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>

authored by

Thomas Abraham and committed by
Kukjin Kim
7c4cab7f dc732f50

+69 -178
+69 -178
arch/arm/mach-s5pc100/dma.c
··· 35 35 36 36 static u64 dma_dmamask = DMA_BIT_MASK(32); 37 37 38 - struct dma_pl330_peri pdma0_peri[30] = { 39 - { 40 - .peri_id = (u8)DMACH_UART0_RX, 41 - .rqtype = DEVTOMEM, 42 - }, { 43 - .peri_id = (u8)DMACH_UART0_TX, 44 - .rqtype = MEMTODEV, 45 - }, { 46 - .peri_id = (u8)DMACH_UART1_RX, 47 - .rqtype = DEVTOMEM, 48 - }, { 49 - .peri_id = (u8)DMACH_UART1_TX, 50 - .rqtype = MEMTODEV, 51 - }, { 52 - .peri_id = (u8)DMACH_UART2_RX, 53 - .rqtype = DEVTOMEM, 54 - }, { 55 - .peri_id = (u8)DMACH_UART2_TX, 56 - .rqtype = MEMTODEV, 57 - }, { 58 - .peri_id = (u8)DMACH_UART3_RX, 59 - .rqtype = DEVTOMEM, 60 - }, { 61 - .peri_id = (u8)DMACH_UART3_TX, 62 - .rqtype = MEMTODEV, 63 - }, { 64 - .peri_id = DMACH_IRDA, 65 - }, { 66 - .peri_id = (u8)DMACH_I2S0_RX, 67 - .rqtype = DEVTOMEM, 68 - }, { 69 - .peri_id = (u8)DMACH_I2S0_TX, 70 - .rqtype = MEMTODEV, 71 - }, { 72 - .peri_id = (u8)DMACH_I2S0S_TX, 73 - .rqtype = MEMTODEV, 74 - }, { 75 - .peri_id = (u8)DMACH_I2S1_RX, 76 - .rqtype = DEVTOMEM, 77 - }, { 78 - .peri_id = (u8)DMACH_I2S1_TX, 79 - .rqtype = MEMTODEV, 80 - }, { 81 - .peri_id = (u8)DMACH_I2S2_RX, 82 - .rqtype = DEVTOMEM, 83 - }, { 84 - .peri_id = (u8)DMACH_I2S2_TX, 85 - .rqtype = MEMTODEV, 86 - }, { 87 - .peri_id = (u8)DMACH_SPI0_RX, 88 - .rqtype = DEVTOMEM, 89 - }, { 90 - .peri_id = (u8)DMACH_SPI0_TX, 91 - .rqtype = MEMTODEV, 92 - }, { 93 - .peri_id = (u8)DMACH_SPI1_RX, 94 - .rqtype = DEVTOMEM, 95 - }, { 96 - .peri_id = (u8)DMACH_SPI1_TX, 97 - .rqtype = MEMTODEV, 98 - }, { 99 - .peri_id = (u8)DMACH_SPI2_RX, 100 - .rqtype = DEVTOMEM, 101 - }, { 102 - .peri_id = (u8)DMACH_SPI2_TX, 103 - .rqtype = MEMTODEV, 104 - }, { 105 - .peri_id = (u8)DMACH_AC97_MICIN, 106 - .rqtype = DEVTOMEM, 107 - }, { 108 - .peri_id = (u8)DMACH_AC97_PCMIN, 109 - .rqtype = DEVTOMEM, 110 - }, { 111 - .peri_id = (u8)DMACH_AC97_PCMOUT, 112 - .rqtype = MEMTODEV, 113 - }, { 114 - .peri_id = (u8)DMACH_EXTERNAL, 115 - }, { 116 - .peri_id = (u8)DMACH_PWM, 117 - }, { 118 - .peri_id = (u8)DMACH_SPDIF, 119 - .rqtype = MEMTODEV, 120 - }, { 121 - .peri_id = (u8)DMACH_HSI_RX, 122 - .rqtype = DEVTOMEM, 123 - }, { 124 - .peri_id = (u8)DMACH_HSI_TX, 125 - .rqtype = MEMTODEV, 126 - }, 38 + u8 pdma0_peri[] = { 39 + DMACH_UART0_RX, 40 + DMACH_UART0_TX, 41 + DMACH_UART1_RX, 42 + DMACH_UART1_TX, 43 + DMACH_UART2_RX, 44 + DMACH_UART2_TX, 45 + DMACH_UART3_RX, 46 + DMACH_UART3_TX, 47 + DMACH_IRDA, 48 + DMACH_I2S0_RX, 49 + DMACH_I2S0_TX, 50 + DMACH_I2S0S_TX, 51 + DMACH_I2S1_RX, 52 + DMACH_I2S1_TX, 53 + DMACH_I2S2_RX, 54 + DMACH_I2S2_TX, 55 + DMACH_SPI0_RX, 56 + DMACH_SPI0_TX, 57 + DMACH_SPI1_RX, 58 + DMACH_SPI1_TX, 59 + DMACH_SPI2_RX, 60 + DMACH_SPI2_TX, 61 + DMACH_AC97_MICIN, 62 + DMACH_AC97_PCMIN, 63 + DMACH_AC97_PCMOUT, 64 + DMACH_EXTERNAL, 65 + DMACH_PWM, 66 + DMACH_SPDIF, 67 + DMACH_HSI_RX, 68 + DMACH_HSI_TX, 127 69 }; 128 70 129 71 struct dma_pl330_platdata s5pc100_pdma0_pdata = { 130 72 .nr_valid_peri = ARRAY_SIZE(pdma0_peri), 131 - .peri = pdma0_peri, 73 + .peri_id = pdma0_peri, 132 74 }; 133 75 134 76 struct amba_device s5pc100_device_pdma0 = { ··· 89 147 .periphid = 0x00041330, 90 148 }; 91 149 92 - struct dma_pl330_peri pdma1_peri[30] = { 93 - { 94 - .peri_id = (u8)DMACH_UART0_RX, 95 - .rqtype = DEVTOMEM, 96 - }, { 97 - .peri_id = (u8)DMACH_UART0_TX, 98 - .rqtype = MEMTODEV, 99 - }, { 100 - .peri_id = (u8)DMACH_UART1_RX, 101 - .rqtype = DEVTOMEM, 102 - }, { 103 - .peri_id = (u8)DMACH_UART1_TX, 104 - .rqtype = MEMTODEV, 105 - }, { 106 - .peri_id = (u8)DMACH_UART2_RX, 107 - .rqtype = DEVTOMEM, 108 - }, { 109 - .peri_id = (u8)DMACH_UART2_TX, 110 - .rqtype = MEMTODEV, 111 - }, { 112 - .peri_id = (u8)DMACH_UART3_RX, 113 - .rqtype = DEVTOMEM, 114 - }, { 115 - .peri_id = (u8)DMACH_UART3_TX, 116 - .rqtype = MEMTODEV, 117 - }, { 118 - .peri_id = DMACH_IRDA, 119 - }, { 120 - .peri_id = (u8)DMACH_I2S0_RX, 121 - .rqtype = DEVTOMEM, 122 - }, { 123 - .peri_id = (u8)DMACH_I2S0_TX, 124 - .rqtype = MEMTODEV, 125 - }, { 126 - .peri_id = (u8)DMACH_I2S0S_TX, 127 - .rqtype = MEMTODEV, 128 - }, { 129 - .peri_id = (u8)DMACH_I2S1_RX, 130 - .rqtype = DEVTOMEM, 131 - }, { 132 - .peri_id = (u8)DMACH_I2S1_TX, 133 - .rqtype = MEMTODEV, 134 - }, { 135 - .peri_id = (u8)DMACH_I2S2_RX, 136 - .rqtype = DEVTOMEM, 137 - }, { 138 - .peri_id = (u8)DMACH_I2S2_TX, 139 - .rqtype = MEMTODEV, 140 - }, { 141 - .peri_id = (u8)DMACH_SPI0_RX, 142 - .rqtype = DEVTOMEM, 143 - }, { 144 - .peri_id = (u8)DMACH_SPI0_TX, 145 - .rqtype = MEMTODEV, 146 - }, { 147 - .peri_id = (u8)DMACH_SPI1_RX, 148 - .rqtype = DEVTOMEM, 149 - }, { 150 - .peri_id = (u8)DMACH_SPI1_TX, 151 - .rqtype = MEMTODEV, 152 - }, { 153 - .peri_id = (u8)DMACH_SPI2_RX, 154 - .rqtype = DEVTOMEM, 155 - }, { 156 - .peri_id = (u8)DMACH_SPI2_TX, 157 - .rqtype = MEMTODEV, 158 - }, { 159 - .peri_id = (u8)DMACH_PCM0_RX, 160 - .rqtype = DEVTOMEM, 161 - }, { 162 - .peri_id = (u8)DMACH_PCM1_TX, 163 - .rqtype = MEMTODEV, 164 - }, { 165 - .peri_id = (u8)DMACH_PCM1_RX, 166 - .rqtype = DEVTOMEM, 167 - }, { 168 - .peri_id = (u8)DMACH_PCM1_TX, 169 - .rqtype = MEMTODEV, 170 - }, { 171 - .peri_id = (u8)DMACH_MSM_REQ0, 172 - }, { 173 - .peri_id = (u8)DMACH_MSM_REQ1, 174 - }, { 175 - .peri_id = (u8)DMACH_MSM_REQ2, 176 - }, { 177 - .peri_id = (u8)DMACH_MSM_REQ3, 178 - }, 150 + u8 pdma1_peri[] = { 151 + DMACH_UART0_RX, 152 + DMACH_UART0_TX, 153 + DMACH_UART1_RX, 154 + DMACH_UART1_TX, 155 + DMACH_UART2_RX, 156 + DMACH_UART2_TX, 157 + DMACH_UART3_RX, 158 + DMACH_UART3_TX, 159 + DMACH_IRDA, 160 + DMACH_I2S0_RX, 161 + DMACH_I2S0_TX, 162 + DMACH_I2S0S_TX, 163 + DMACH_I2S1_RX, 164 + DMACH_I2S1_TX, 165 + DMACH_I2S2_RX, 166 + DMACH_I2S2_TX, 167 + DMACH_SPI0_RX, 168 + DMACH_SPI0_TX, 169 + DMACH_SPI1_RX, 170 + DMACH_SPI1_TX, 171 + DMACH_SPI2_RX, 172 + DMACH_SPI2_TX, 173 + DMACH_PCM0_RX, 174 + DMACH_PCM0_TX, 175 + DMACH_PCM1_RX, 176 + DMACH_PCM1_TX, 177 + DMACH_MSM_REQ0, 178 + DMACH_MSM_REQ1, 179 + DMACH_MSM_REQ2, 180 + DMACH_MSM_REQ3, 179 181 }; 180 182 181 183 struct dma_pl330_platdata s5pc100_pdma1_pdata = { 182 184 .nr_valid_peri = ARRAY_SIZE(pdma1_peri), 183 - .peri = pdma1_peri, 185 + .peri_id = pdma1_peri, 184 186 }; 185 187 186 188 struct amba_device s5pc100_device_pdma1 = { ··· 145 259 146 260 static int __init s5pc100_dma_init(void) 147 261 { 262 + dma_cap_set(DMA_SLAVE, s5pc100_pdma0_pdata.cap_mask); 263 + dma_cap_set(DMA_CYCLIC, s5pc100_pdma0_pdata.cap_mask); 148 264 amba_device_register(&s5pc100_device_pdma0, &iomem_resource); 265 + 266 + dma_cap_set(DMA_SLAVE, s5pc100_pdma1_pdata.cap_mask); 267 + dma_cap_set(DMA_CYCLIC, s5pc100_pdma1_pdata.cap_mask); 149 268 amba_device_register(&s5pc100_device_pdma1, &iomem_resource); 150 269 151 270 return 0;