diff options
author | Mark Brown <broonie@linaro.org> | 2014-07-17 16:45:40 -0400 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2014-07-17 16:45:40 -0400 |
commit | d1c46ef85831ec6b23801a62600bcfdccfac6759 (patch) | |
tree | 685ef3938af8d0b75fce382b6f32dbc8d3ca36d4 | |
parent | 1b6c03df8d82f95d15e5ef224edc873a0df1a440 (diff) | |
parent | c08c3b088053cec1465051258844e7934d3e3e37 (diff) |
Merge remote-tracking branch 'asoc/fix/rcar' into asoc-linus
-rw-r--r-- | sound/soc/sh/rcar/core.c | 4 | ||||
-rw-r--r-- | sound/soc/sh/rcar/gen.c | 33 |
2 files changed, 24 insertions, 13 deletions
diff --git a/sound/soc/sh/rcar/core.c b/sound/soc/sh/rcar/core.c index 4e86265f625c..ed76901f8202 100644 --- a/sound/soc/sh/rcar/core.c +++ b/sound/soc/sh/rcar/core.c | |||
@@ -297,7 +297,6 @@ static void rsnd_dma_of_name(struct rsnd_dma *dma, | |||
297 | for (i = 1; i < MOD_MAX; i++) { | 297 | for (i = 1; i < MOD_MAX; i++) { |
298 | if (!src) { | 298 | if (!src) { |
299 | mod[i] = ssi; | 299 | mod[i] = ssi; |
300 | break; | ||
301 | } else if (!dvc) { | 300 | } else if (!dvc) { |
302 | mod[i] = src; | 301 | mod[i] = src; |
303 | src = NULL; | 302 | src = NULL; |
@@ -308,6 +307,9 @@ static void rsnd_dma_of_name(struct rsnd_dma *dma, | |||
308 | 307 | ||
309 | if (mod[i] == this) | 308 | if (mod[i] == this) |
310 | index = i; | 309 | index = i; |
310 | |||
311 | if (mod[i] == ssi) | ||
312 | break; | ||
311 | } | 313 | } |
312 | 314 | ||
313 | if (is_play) { | 315 | if (is_play) { |
diff --git a/sound/soc/sh/rcar/gen.c b/sound/soc/sh/rcar/gen.c index 1dd2b7d38c2c..0280a11c0899 100644 --- a/sound/soc/sh/rcar/gen.c +++ b/sound/soc/sh/rcar/gen.c | |||
@@ -184,7 +184,7 @@ static int rsnd_gen_regmap_init(struct rsnd_priv *priv, | |||
184 | #define RDMA_CMD_O_N(addr, i) (addr ##_reg - 0x004f8000 + (0x400 * i)) | 184 | #define RDMA_CMD_O_N(addr, i) (addr ##_reg - 0x004f8000 + (0x400 * i)) |
185 | #define RDMA_CMD_O_P(addr, i) (addr ##_reg - 0x001f8000 + (0x400 * i)) | 185 | #define RDMA_CMD_O_P(addr, i) (addr ##_reg - 0x001f8000 + (0x400 * i)) |
186 | 186 | ||
187 | void rsnd_gen_dma_addr(struct rsnd_priv *priv, | 187 | static void rsnd_gen2_dma_addr(struct rsnd_priv *priv, |
188 | struct rsnd_dma *dma, | 188 | struct rsnd_dma *dma, |
189 | struct dma_slave_config *cfg, | 189 | struct dma_slave_config *cfg, |
190 | int is_play, int slave_id) | 190 | int is_play, int slave_id) |
@@ -226,17 +226,6 @@ void rsnd_gen_dma_addr(struct rsnd_priv *priv, | |||
226 | } | 226 | } |
227 | }; | 227 | }; |
228 | 228 | ||
229 | cfg->slave_id = slave_id; | ||
230 | cfg->src_addr = 0; | ||
231 | cfg->dst_addr = 0; | ||
232 | cfg->direction = is_play ? DMA_MEM_TO_DEV : DMA_DEV_TO_MEM; | ||
233 | |||
234 | /* | ||
235 | * gen1 uses default DMA addr | ||
236 | */ | ||
237 | if (rsnd_is_gen1(priv)) | ||
238 | return; | ||
239 | |||
240 | /* it shouldn't happen */ | 229 | /* it shouldn't happen */ |
241 | if (use_dvc & !use_src) { | 230 | if (use_dvc & !use_src) { |
242 | dev_err(dev, "DVC is selected without SRC\n"); | 231 | dev_err(dev, "DVC is selected without SRC\n"); |
@@ -250,6 +239,26 @@ void rsnd_gen_dma_addr(struct rsnd_priv *priv, | |||
250 | id, cfg->src_addr, cfg->dst_addr); | 239 | id, cfg->src_addr, cfg->dst_addr); |
251 | } | 240 | } |
252 | 241 | ||
242 | void rsnd_gen_dma_addr(struct rsnd_priv *priv, | ||
243 | struct rsnd_dma *dma, | ||
244 | struct dma_slave_config *cfg, | ||
245 | int is_play, int slave_id) | ||
246 | { | ||
247 | cfg->slave_id = slave_id; | ||
248 | cfg->src_addr = 0; | ||
249 | cfg->dst_addr = 0; | ||
250 | cfg->direction = is_play ? DMA_MEM_TO_DEV : DMA_DEV_TO_MEM; | ||
251 | |||
252 | /* | ||
253 | * gen1 uses default DMA addr | ||
254 | */ | ||
255 | if (rsnd_is_gen1(priv)) | ||
256 | return; | ||
257 | |||
258 | rsnd_gen2_dma_addr(priv, dma, cfg, is_play, slave_id); | ||
259 | } | ||
260 | |||
261 | |||
253 | /* | 262 | /* |
254 | * Gen2 | 263 | * Gen2 |
255 | */ | 264 | */ |