struct hdac_ext_bus *ebus = dev_get_drvdata(dai->dev);
        struct hdac_ext_stream *link_dev;
        struct snd_soc_pcm_runtime *rtd = snd_pcm_substream_chip(substream);
-       struct hdac_ext_dma_params *dma_params;
        struct snd_soc_dai *codec_dai = rtd->codec_dai;
        struct skl_pipe_params p_params = {0};
        struct hdac_ext_link *link;
+       int stream_tag;
 
        link_dev = snd_hdac_ext_stream_assign(ebus, substream,
                                        HDAC_EXT_STREAM_TYPE_LINK);
        if (!link)
                return -EINVAL;
 
+       stream_tag = hdac_stream(link_dev)->stream_tag;
+
        /* set the stream tag in the codec dai dma params  */
-       dma_params = snd_soc_dai_get_dma_data(codec_dai, substream);
-       if (dma_params)
-               dma_params->stream_tag =  hdac_stream(link_dev)->stream_tag;
+       snd_soc_dai_set_tdm_slot(codec_dai, stream_tag, 0, 0, 0);
 
        p_params.s_fmt = snd_pcm_format_width(params_format(params));
        p_params.ch = params_channels(params);
        p_params.s_freq = params_rate(params);
        p_params.stream = substream->stream;
-       p_params.link_dma_id = hdac_stream(link_dev)->stream_tag - 1;
+       p_params.link_dma_id = stream_tag - 1;
        p_params.link_index = link->index;
        p_params.format = params_format(params);