ASoC: rockchip-i2s: add dma data to snd_soc_dai
authorJianqun <jay.xu@rock-chips.com>
Sat, 13 Sep 2014 00:41:38 +0000 (08:41 +0800)
committerMark Brown <broonie@kernel.org>
Sat, 13 Sep 2014 16:38:16 +0000 (09:38 -0700)
Add playback/capture dma data to snd_soc_dai.
Test on RK3288 with max98090.

Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/rockchip/rockchip_i2s.c

index dd423c611d9653de4a8c0bacf73a71a8da2d3511..c8172dda8c7d0b7148e97a1f8e326e292c49d62f 100644 (file)
@@ -243,16 +243,6 @@ static int rockchip_i2s_hw_params(struct snd_pcm_substream *substream,
        regmap_update_bits(i2s->regmap, I2S_TXCR, I2S_TXCR_VDW_MASK, val);
        regmap_update_bits(i2s->regmap, I2S_RXCR, I2S_RXCR_VDW_MASK, val);
 
-       if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
-               dai->playback_dma_data = &i2s->playback_dma_data;
-               regmap_update_bits(i2s->regmap, I2S_DMACR, I2S_DMACR_TDL_MASK,
-                                  I2S_DMACR_TDL(1) | I2S_DMACR_TDE_ENABLE);
-       } else {
-               dai->capture_dma_data = &i2s->capture_dma_data;
-               regmap_update_bits(i2s->regmap, I2S_DMACR, I2S_DMACR_RDL_MASK,
-                                  I2S_DMACR_RDL(1) | I2S_DMACR_RDE_ENABLE);
-       }
-
        return 0;
 }
 
@@ -300,6 +290,16 @@ static int rockchip_i2s_set_sysclk(struct snd_soc_dai *cpu_dai, int clk_id,
        return ret;
 }
 
+static int rockchip_i2s_dai_probe(struct snd_soc_dai *dai)
+{
+       struct rk_i2s_dev *i2s = snd_soc_dai_get_drvdata(dai);
+
+       dai->capture_dma_data = &i2s->capture_dma_data;
+       dai->playback_dma_data = &i2s->playback_dma_data;
+
+       return 0;
+}
+
 static const struct snd_soc_dai_ops rockchip_i2s_dai_ops = {
        .hw_params = rockchip_i2s_hw_params,
        .set_sysclk = rockchip_i2s_set_sysclk,
@@ -308,7 +308,9 @@ static const struct snd_soc_dai_ops rockchip_i2s_dai_ops = {
 };
 
 static struct snd_soc_dai_driver rockchip_i2s_dai = {
+       .probe = rockchip_i2s_dai_probe,
        .playback = {
+               .stream_name = "Playback",
                .channels_min = 2,
                .channels_max = 8,
                .rates = SNDRV_PCM_RATE_8000_192000,
@@ -318,6 +320,7 @@ static struct snd_soc_dai_driver rockchip_i2s_dai = {
                            SNDRV_PCM_FMTBIT_S24_LE),
        },
        .capture = {
+               .stream_name = "Capture",
                .channels_min = 2,
                .channels_max = 2,
                .rates = SNDRV_PCM_RATE_8000_192000,
This page took 0.025445 seconds and 5 git commands to generate.