diff options
author | Padmavathi Venna <padma.v@samsung.com> | 2014-11-07 01:54:39 -0500 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2014-11-07 05:38:17 -0500 |
commit | b07597367001c2c4f36a97863530f71b84060d3d (patch) | |
tree | b17536d552ae19de1e0f2877c6e479843b419406 /sound/soc/samsung/i2s.c | |
parent | f114040e3ea6e07372334ade75d1ee0775c355e1 (diff) |
ASoC: Samsung: Add quirk for internal DMA
Internal DMA is available only on some of Samsung platforms.
So added a quirk for the same and made it optional.
Signed-off-by: Padmavathi Venna <padma.v@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/samsung/i2s.c')
-rw-r--r-- | sound/soc/samsung/i2s.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/sound/soc/samsung/i2s.c b/sound/soc/samsung/i2s.c index 9d513473b300..38b9a524cc9f 100644 --- a/sound/soc/samsung/i2s.c +++ b/sound/soc/samsung/i2s.c | |||
@@ -987,7 +987,7 @@ static int samsung_i2s_dai_probe(struct snd_soc_dai *dai) | |||
987 | if (i2s->quirks & QUIRK_NEED_RSTCLR) | 987 | if (i2s->quirks & QUIRK_NEED_RSTCLR) |
988 | writel(CON_RSTCLR, i2s->addr + I2SCON); | 988 | writel(CON_RSTCLR, i2s->addr + I2SCON); |
989 | 989 | ||
990 | if (i2s->quirks & QUIRK_SEC_DAI) | 990 | if (i2s->quirks & QUIRK_SUPPORTS_IDMA) |
991 | idma_reg_addr_init(i2s->addr, | 991 | idma_reg_addr_init(i2s->addr, |
992 | i2s->sec_dai->idma_playback.dma_addr); | 992 | i2s->sec_dai->idma_playback.dma_addr); |
993 | 993 | ||
@@ -1199,10 +1199,9 @@ static int samsung_i2s_probe(struct platform_device *pdev) | |||
1199 | quirks = i2s_dai_data->quirks; | 1199 | quirks = i2s_dai_data->quirks; |
1200 | if (of_property_read_u32(np, "samsung,idma-addr", | 1200 | if (of_property_read_u32(np, "samsung,idma-addr", |
1201 | &idma_addr)) { | 1201 | &idma_addr)) { |
1202 | if (quirks & QUIRK_SEC_DAI) { | 1202 | if (quirks & QUIRK_SUPPORTS_IDMA) { |
1203 | dev_err(&pdev->dev, "idma address is not"\ | 1203 | dev_info(&pdev->dev, "idma address is not"\ |
1204 | "specified"); | 1204 | "specified"); |
1205 | return -EINVAL; | ||
1206 | } | 1205 | } |
1207 | } | 1206 | } |
1208 | } | 1207 | } |
@@ -1309,13 +1308,14 @@ static const struct samsung_i2s_dai_data i2sv3_dai_type = { | |||
1309 | 1308 | ||
1310 | static const struct samsung_i2s_dai_data i2sv5_dai_type = { | 1309 | static const struct samsung_i2s_dai_data i2sv5_dai_type = { |
1311 | .dai_type = TYPE_PRI, | 1310 | .dai_type = TYPE_PRI, |
1312 | .quirks = QUIRK_PRI_6CHAN | QUIRK_SEC_DAI | QUIRK_NEED_RSTCLR, | 1311 | .quirks = QUIRK_PRI_6CHAN | QUIRK_SEC_DAI | QUIRK_NEED_RSTCLR | |
1312 | QUIRK_SUPPORTS_IDMA, | ||
1313 | }; | 1313 | }; |
1314 | 1314 | ||
1315 | static const struct samsung_i2s_dai_data i2sv6_dai_type = { | 1315 | static const struct samsung_i2s_dai_data i2sv6_dai_type = { |
1316 | .dai_type = TYPE_PRI, | 1316 | .dai_type = TYPE_PRI, |
1317 | .quirks = QUIRK_PRI_6CHAN | QUIRK_SEC_DAI | QUIRK_NEED_RSTCLR | | 1317 | .quirks = QUIRK_PRI_6CHAN | QUIRK_SEC_DAI | QUIRK_NEED_RSTCLR | |
1318 | QUIRK_SUPPORTS_TDM, | 1318 | QUIRK_SUPPORTS_TDM | QUIRK_SUPPORTS_IDMA, |
1319 | }; | 1319 | }; |
1320 | 1320 | ||
1321 | static const struct samsung_i2s_dai_data samsung_dai_type_pri = { | 1321 | static const struct samsung_i2s_dai_data samsung_dai_type_pri = { |