]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
ASoC: Intel: Skylake: add HDA BE DAIs
authorRakesh Ughreja <rakesh.a.ughreja@intel.com>
Wed, 22 Aug 2018 20:25:01 +0000 (15:25 -0500)
committerMark Brown <broonie@kernel.org>
Tue, 28 Aug 2018 19:18:11 +0000 (20:18 +0100)
Add support for HDA BE DAIs in SKL platform driver.

Signed-off-by: Rakesh Ughreja <rakesh.a.ughreja@intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/skylake/skl-pcm.c

index 823e39103edd30bedefaf50ff84cd60004eb9fbb..00b7a91b18c9a5f8dc9d37fa5d19c23d97dfc6cf 100644 (file)
@@ -32,6 +32,7 @@
 #define HDA_MONO 1
 #define HDA_STEREO 2
 #define HDA_QUAD 4
+#define HDA_MAX 8
 
 static const struct snd_pcm_hardware azx_pcm_hw = {
        .info =                 (SNDRV_PCM_INFO_MMAP |
@@ -569,7 +570,10 @@ static int skl_link_hw_params(struct snd_pcm_substream *substream,
        stream_tag = hdac_stream(link_dev)->stream_tag;
 
        /* set the stream tag in the codec dai dma params  */
-       snd_soc_dai_set_tdm_slot(codec_dai, stream_tag, 0, 0, 0);
+       if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
+               snd_soc_dai_set_tdm_slot(codec_dai, stream_tag, 0, 0, 0);
+       else
+               snd_soc_dai_set_tdm_slot(codec_dai, 0, stream_tag, 0, 0);
 
        p_params.s_fmt = snd_pcm_format_width(params_format(params));
        p_params.ch = params_channels(params);
@@ -995,21 +999,63 @@ static struct snd_soc_dai_driver skl_platform_dai[] = {
        },
 },
 {
-       .name = "HD-Codec Pin",
+       .name = "Analog CPU DAI",
        .ops = &skl_link_dai_ops,
        .playback = {
-               .stream_name = "HD-Codec Tx",
-               .channels_min = HDA_STEREO,
-               .channels_max = HDA_STEREO,
-               .rates = SNDRV_PCM_RATE_48000,
-               .formats = SNDRV_PCM_FMTBIT_S16_LE,
+               .stream_name = "Analog CPU Playback",
+               .channels_min = HDA_MONO,
+               .channels_max = HDA_MAX,
+               .rates = SNDRV_PCM_RATE_8000_192000,
+               .formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE |
+                       SNDRV_PCM_FMTBIT_S32_LE,
        },
        .capture = {
-               .stream_name = "HD-Codec Rx",
-               .channels_min = HDA_STEREO,
-               .channels_max = HDA_STEREO,
-               .rates = SNDRV_PCM_RATE_48000,
-               .formats = SNDRV_PCM_FMTBIT_S16_LE,
+               .stream_name = "Analog CPU Capture",
+               .channels_min = HDA_MONO,
+               .channels_max = HDA_MAX,
+               .rates = SNDRV_PCM_RATE_8000_192000,
+               .formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE |
+                       SNDRV_PCM_FMTBIT_S32_LE,
+       },
+},
+{
+       .name = "Alt Analog CPU DAI",
+       .ops = &skl_link_dai_ops,
+       .playback = {
+               .stream_name = "Alt Analog CPU Playback",
+               .channels_min = HDA_MONO,
+               .channels_max = HDA_MAX,
+               .rates = SNDRV_PCM_RATE_8000_192000,
+               .formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE |
+                       SNDRV_PCM_FMTBIT_S32_LE,
+       },
+       .capture = {
+               .stream_name = "Alt Analog CPU Capture",
+               .channels_min = HDA_MONO,
+               .channels_max = HDA_MAX,
+               .rates = SNDRV_PCM_RATE_8000_192000,
+               .formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE |
+                       SNDRV_PCM_FMTBIT_S32_LE,
+       },
+},
+{
+       .name = "Digital CPU DAI",
+       .ops = &skl_link_dai_ops,
+       .playback = {
+               .stream_name = "Digital CPU Playback",
+               .channels_min = HDA_MONO,
+               .channels_max = HDA_MAX,
+               .rates = SNDRV_PCM_RATE_8000_192000,
+               .formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE |
+                       SNDRV_PCM_FMTBIT_S32_LE,
+       },
+       .capture = {
+               .stream_name = "Digital CPU Capture",
+               .channels_min = HDA_MONO,
+               .channels_max = HDA_MAX,
+               .rates = SNDRV_PCM_RATE_8000_192000,
+               .formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE |
+                       SNDRV_PCM_FMTBIT_S32_LE,
        },
 },
 };