402
402
struct skl_module_cfg *mconfig;
403
403
struct hdac_ext_bus *ebus = get_bus_ctx(substream);
404
404
struct hdac_ext_stream *stream = get_hdac_ext_stream(substream);
405
struct snd_soc_dapm_widget *w;
407
408
mconfig = skl_tplg_fe_get_cpr_module(dai, substream->stream);
412
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
413
w = dai->playback_widget;
415
w = dai->capture_widget;
412
418
case SNDRV_PCM_TRIGGER_RESUME:
413
skl_pcm_prepare(substream, dai);
415
* enable DMA Resume enable bit for the stream, set the dpib
416
* & lpib position to resune before starting the DMA
418
snd_hdac_ext_stream_drsm_enable(ebus, true,
419
hdac_stream(stream)->index);
420
snd_hdac_ext_stream_set_dpibr(ebus, stream, stream->dpib);
421
snd_hdac_ext_stream_set_lpib(stream, stream->lpib);
419
if (!w->ignore_suspend) {
420
skl_pcm_prepare(substream, dai);
422
* enable DMA Resume enable bit for the stream, set the
423
* dpib & lpib position to resume before starting the
426
snd_hdac_ext_stream_drsm_enable(ebus, true,
427
hdac_stream(stream)->index);
428
snd_hdac_ext_stream_set_dpibr(ebus, stream,
430
snd_hdac_ext_stream_set_lpib(stream, stream->lpib);
423
433
case SNDRV_PCM_TRIGGER_START:
424
434
case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
773
.ops = &skl_be_ssp_dai_ops,
775
.stream_name = "ssp2 Tx",
776
.channels_min = HDA_STEREO,
777
.channels_max = HDA_STEREO,
778
.rates = SNDRV_PCM_RATE_48000,
779
.formats = SNDRV_PCM_FMTBIT_S16_LE,
782
.stream_name = "ssp2 Rx",
783
.channels_min = HDA_STEREO,
784
.channels_max = HDA_STEREO,
785
.rates = SNDRV_PCM_RATE_48000,
786
.formats = SNDRV_PCM_FMTBIT_S16_LE,
791
.ops = &skl_be_ssp_dai_ops,
793
.stream_name = "ssp3 Tx",
794
.channels_min = HDA_STEREO,
795
.channels_max = HDA_STEREO,
796
.rates = SNDRV_PCM_RATE_48000,
797
.formats = SNDRV_PCM_FMTBIT_S16_LE,
800
.stream_name = "ssp3 Rx",
801
.channels_min = HDA_STEREO,
802
.channels_max = HDA_STEREO,
803
.rates = SNDRV_PCM_RATE_48000,
804
.formats = SNDRV_PCM_FMTBIT_S16_LE,
809
.ops = &skl_be_ssp_dai_ops,
811
.stream_name = "ssp4 Tx",
812
.channels_min = HDA_STEREO,
813
.channels_max = HDA_STEREO,
814
.rates = SNDRV_PCM_RATE_48000,
815
.formats = SNDRV_PCM_FMTBIT_S16_LE,
818
.stream_name = "ssp4 Rx",
819
.channels_min = HDA_STEREO,
820
.channels_max = HDA_STEREO,
821
.rates = SNDRV_PCM_RATE_48000,
822
.formats = SNDRV_PCM_FMTBIT_S16_LE,
827
.ops = &skl_be_ssp_dai_ops,
829
.stream_name = "ssp5 Tx",
830
.channels_min = HDA_STEREO,
831
.channels_max = HDA_STEREO,
832
.rates = SNDRV_PCM_RATE_48000,
833
.formats = SNDRV_PCM_FMTBIT_S16_LE,
836
.stream_name = "ssp5 Rx",
837
.channels_min = HDA_STEREO,
838
.channels_max = HDA_STEREO,
839
.rates = SNDRV_PCM_RATE_48000,
840
.formats = SNDRV_PCM_FMTBIT_S16_LE,
763
844
.name = "iDisp1 Pin",
764
845
.ops = &skl_link_dai_ops,
766
847
.stream_name = "iDisp1 Tx",
767
848
.channels_min = HDA_STEREO,
768
.channels_max = HDA_STEREO,
769
850
.rates = SNDRV_PCM_RATE_8000|SNDRV_PCM_RATE_16000|SNDRV_PCM_RATE_48000,
770
851
.formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S32_LE |
771
852
SNDRV_PCM_FMTBIT_S24_LE,