mirror of
https://github.com/torvalds/linux.git
synced 2024-12-02 17:11:33 +00:00
ASoC: SOF: Intel: hda-dai: add support for dspless mode beyond HDAudio
For SoundWire/ALH, we need to have a dai configured, but we don't want to send a DMA_TLV to firmware. Add additional code branches. Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com> Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> Link: https://msgid.link/r/20240213101247.28887-16-peter.ujfalusi@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
0afce89ff8
commit
2065610b5d
@ -83,6 +83,11 @@ hda_dai_get_ops(struct snd_pcm_substream *substream, struct snd_soc_dai *cpu_dai
|
|||||||
|
|
||||||
sdev = widget_to_sdev(w);
|
sdev = widget_to_sdev(w);
|
||||||
|
|
||||||
|
if (!swidget) {
|
||||||
|
dev_err(sdev->dev, "%s: swidget is NULL\n", __func__);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
if (sdev->dspless_mode_selected)
|
if (sdev->dspless_mode_selected)
|
||||||
return hda_select_dai_widget_ops(sdev, swidget);
|
return hda_select_dai_widget_ops(sdev, swidget);
|
||||||
|
|
||||||
@ -364,8 +369,11 @@ static int non_hda_dai_hw_params(struct snd_pcm_substream *substream,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* get stream_id */
|
|
||||||
sdev = widget_to_sdev(w);
|
sdev = widget_to_sdev(w);
|
||||||
|
if (sdev->dspless_mode_selected)
|
||||||
|
goto skip_tlv;
|
||||||
|
|
||||||
|
/* get stream_id */
|
||||||
hext_stream = ops->get_hext_stream(sdev, cpu_dai, substream);
|
hext_stream = ops->get_hext_stream(sdev, cpu_dai, substream);
|
||||||
|
|
||||||
if (!hext_stream) {
|
if (!hext_stream) {
|
||||||
@ -398,6 +406,7 @@ static int non_hda_dai_hw_params(struct snd_pcm_substream *substream,
|
|||||||
dma_config->dma_stream_channel_map.device_count = 0; /* mapping not used */
|
dma_config->dma_stream_channel_map.device_count = 0; /* mapping not used */
|
||||||
dma_config->dma_priv_config_size = 0;
|
dma_config->dma_priv_config_size = 0;
|
||||||
|
|
||||||
|
skip_tlv:
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user