Commit 2ce0d008 authored by Ranjani Sridharan's avatar Ranjani Sridharan Committed by Mark Brown

ASoC: SOF: Intel: hda: Remove link assignment limitation

The limitation to assign a link DMA channel for a BE iff the
corresponding host DMA channel is assigned to a connected FE is only
applicable if the PROCEN_FMT_QUIRK is set. So, remove it for platforms
that do not enable the quirk.

Complements: a792bfc1 ("ASoC: SOF: Intel: hda-stream: limit PROCEN workaround")
Signed-off-by: default avatarRanjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: default avatarRander Wang <rander.wang@intel.com>
Reviewed-by: default avatarKai Vehmanen <kai.vehmanen@linux.intel.com>
Reviewed-by: default avatarPeter Ujfalusi <peter.ujfalusi@linux.intel.com>
Signed-off-by: default avatarPeter Ujfalusi <peter.ujfalusi@linux.intel.com>
Link: https://lore.kernel.org/r/20220128130017.28508-1-peter.ujfalusi@linux.intel.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent acfa1e2c
...@@ -59,6 +59,8 @@ static struct hdac_ext_stream * ...@@ -59,6 +59,8 @@ static struct hdac_ext_stream *
{ {
struct snd_soc_pcm_runtime *rtd = asoc_substream_to_rtd(substream); struct snd_soc_pcm_runtime *rtd = asoc_substream_to_rtd(substream);
struct sof_intel_hda_stream *hda_stream; struct sof_intel_hda_stream *hda_stream;
const struct sof_intel_dsp_desc *chip;
struct snd_sof_dev *sdev;
struct hdac_ext_stream *res = NULL; struct hdac_ext_stream *res = NULL;
struct hdac_stream *stream = NULL; struct hdac_stream *stream = NULL;
...@@ -77,9 +79,20 @@ static struct hdac_ext_stream * ...@@ -77,9 +79,20 @@ static struct hdac_ext_stream *
continue; continue;
hda_stream = hstream_to_sof_hda_stream(hstream); hda_stream = hstream_to_sof_hda_stream(hstream);
sdev = hda_stream->sdev;
chip = get_chip_info(sdev->pdata);
/* check if link is available */ /* check if link is available */
if (!hstream->link_locked) { if (!hstream->link_locked) {
/*
* choose the first available link for platforms that do not have the
* PROCEN_FMT_QUIRK set.
*/
if (!(chip->quirks & SOF_INTEL_PROCEN_FMT_QUIRK)) {
res = hstream;
break;
}
if (stream->opened) { if (stream->opened) {
/* /*
* check if the stream tag matches the stream * check if the stream tag matches the stream
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment