diff options
| author | Peter Ujfalusi <peter.ujfalusi@linux.intel.com> | 2026-10-07 11:49:32 +0300 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2026-10-07 13:16:48 +0200 |
| commit | c6cf521a0db34ae4b84dab4a66ae08da6c201cf0 (patch) | |
| tree | 4e8fbe8f3a9d242b57a3fa1f38a884cd4197443f /tools/lib/python/kdoc/python_version.py | |
| parent | 84aede82dd4e628d863d5eb597f3b164f1c1f2d9 (diff) | |
ASoC: soc-compress: Provide a runtime for the compressed FE substream
When a compressed stream is used on the FE side of a DPCM link, the
BE is still running as 'normal' PCM.
DPCM lends the runtime of the FE to every BE it opens and
dpcm_be_reparent() re-points it at another FE when the lending one
disconnects. The internal PCM created for a compressed FE by
snd_soc_new_compress() is never opened via the PCM API, so its
substream has no runtime and the BEs of a compressed FE were left
with a NULL one.
BE DAI and codec drivers can look at substream->runtime, they add
their constraints to it in startup(), for example cs42l43, cs42l42,
hdac_hdmi.
The other users of compressed DPCM do not hit this as their BEs are
DSP internal ports, driven by code which takes everything from the
hw_params it is passed and never looks at substream->runtime. The
BEs here end at generic CODEC drivers which are shared with the non
DPCM case and cannot be expected to know about the FE type.
Allocate a runtime for the compressed FE substream while the stream
is open, initialize its constraints as snd_pcm_open() does and fill
it in from the BE parameters once the mandatory machine level
be_hw_params_fixup() has run, so that the compressed FE lends a valid
and populated runtime just like a PCM FE does.
This also allows a BE to be shared between a compressed and a PCM
FE, which is needed to play a notification over PCM to an endpoint
which a compressed stream is already using.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Liam Girdwood <liam.r.girdwood@intel.com>
Link: https://patch.msgid.link/20261007084955.1256-6-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'tools/lib/python/kdoc/python_version.py')
0 files changed, 0 insertions, 0 deletions
