ASoC: Intel: sof_cs42l42: always set dpcm_capture for amplifiers
authorPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Thu, 19 Jan 2023 16:34:57 +0000 (18:34 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 22 Feb 2023 11:59:41 +0000 (12:59 +0100)
[ Upstream commit e0a52220344ab7defe25b9cdd58fe1dc1122e67c ]

The amplifier may provide hardware support for I/V feedback, or
alternatively the firmware may generate an echo reference attached to
the SSP and dailink used for the amplifier.

To avoid any issues with invalid/NULL substreams in the latter case,
always unconditionally set dpcm_capture.

Link: https://github.com/thesofproject/linux/issues/4083
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@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: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20230119163459.2235843-3-kai.vehmanen@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
sound/soc/intel/boards/sof_cs42l42.c

index e38bd2831e6ac77a6e7486ea47889113e0246223..e9d190cb13b0ad5a912d3691c71490a319b02d32 100644 (file)
@@ -336,6 +336,9 @@ static int create_spk_amp_dai_links(struct device *dev,
        links[*id].platforms = platform_component;
        links[*id].num_platforms = ARRAY_SIZE(platform_component);
        links[*id].dpcm_playback = 1;
+       /* firmware-generated echo reference */
+       links[*id].dpcm_capture = 1;
+
        links[*id].no_pcm = 1;
        links[*id].cpus = &cpus[*id];
        links[*id].num_cpus = 1;