mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-03 17:40:04 +00:00
ASoC: soc-pcm: restore mixer functionality
Recent changes in soc-pcm completely broke basic support for mixers on
Intel systems: the filters on BE states prevent the connection of a
second mixer input while the back-end is already active.
Rather than reverting the changes, which would be problematic for
Tegra systems, this patch suggests an additional filter which will
only apply to Tegra systems. This is a temporary solution which will
have to be revisited - additional issues have been reported with DPCM.
Fixes: 0c25db3f76
('ASoC: soc-pcm: Don't reconnect an already active BE')
Suggested-by: Sameer Pujar <spujar@nvidia.com>
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>
Link: https://lore.kernel.org/r/20211004212141.193136-1-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
06096537b7
commit
9609cfcda0
1 changed files with 7 additions and 1 deletions
|
@ -1395,7 +1395,13 @@ static int dpcm_add_paths(struct snd_soc_pcm_runtime *fe, int stream,
|
||||||
if (!fe->dpcm[stream].runtime && !fe->fe_compr)
|
if (!fe->dpcm[stream].runtime && !fe->fe_compr)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if ((be->dpcm[stream].state != SND_SOC_DPCM_STATE_NEW) &&
|
/*
|
||||||
|
* Filter for systems with 'component_chaining' enabled.
|
||||||
|
* This helps to avoid unnecessary re-configuration of an
|
||||||
|
* already active BE on such systems.
|
||||||
|
*/
|
||||||
|
if (fe->card->component_chaining &&
|
||||||
|
(be->dpcm[stream].state != SND_SOC_DPCM_STATE_NEW) &&
|
||||||
(be->dpcm[stream].state != SND_SOC_DPCM_STATE_CLOSE))
|
(be->dpcm[stream].state != SND_SOC_DPCM_STATE_CLOSE))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue