mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-16 03:11:11 -04:00
ASoC: soc-compress: use function to clear symmetric params
Current soc-compress.c clears symmetric_rate, but it clears rate only,
not clear other symmetric_channels/sample_bits.
static int soc_compr_clean(...)
{
...
if (!snd_soc_dai_active(cpu_dai))
=> cpu_dai->symmetric_rate = 0;
if (!snd_soc_dai_active(codec_dai))
=> codec_dai->symmetric_rate = 0;
...
};
This feature was added when v3.7 kernel [1], and there was only
symmetric_rate, no symmetric_channels/sample_bits in that timing.
symmetric_channels/sample_bits were added in v3.14 [2],
but I guess it didn't notice that soc-compress.c is updating symmetric_xxx.
We are clearing symmetry_xxx by soc_pcm_set_dai_params(), but is soc-pcm.c
local function. Makes it global function and clear symmetry_xxx by it.
[1] commit 1245b7005d ("ASoC: add compress stream support")
[2] commit 3635bf09a8 ("ASoC: soc-pcm: add symmetry for channels and
sample bits")
Fixes: 3635bf09a8 ("ASoC: soc-pcm: add symmetry for channels and sample bits")
Cc: Nicolin Chen <b42378@freescale.com>
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://patch.msgid.link/87ms15e3kv.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
committed by
Mark Brown
parent
0fa3df83d5
commit
07c774dd64
@@ -1412,6 +1412,9 @@ struct snd_soc_dai *snd_soc_find_dai(
|
||||
struct snd_soc_dai *snd_soc_find_dai_with_mutex(
|
||||
const struct snd_soc_dai_link_component *dlc);
|
||||
|
||||
void soc_pcm_set_dai_params(struct snd_soc_dai *dai,
|
||||
struct snd_pcm_hw_params *params);
|
||||
|
||||
#include <sound/soc-dai.h>
|
||||
|
||||
static inline
|
||||
|
||||
@@ -69,10 +69,10 @@ static int soc_compr_clean(struct snd_compr_stream *cstream, int rollback)
|
||||
snd_soc_dai_digital_mute(codec_dai, 1, stream);
|
||||
|
||||
if (!snd_soc_dai_active(cpu_dai))
|
||||
cpu_dai->symmetric_rate = 0;
|
||||
soc_pcm_set_dai_params(cpu_dai, NULL);
|
||||
|
||||
if (!snd_soc_dai_active(codec_dai))
|
||||
codec_dai->symmetric_rate = 0;
|
||||
soc_pcm_set_dai_params(codec_dai, NULL);
|
||||
|
||||
snd_soc_link_compr_shutdown(cstream, rollback);
|
||||
|
||||
|
||||
@@ -423,8 +423,8 @@ void dpcm_dapm_stream_event(struct snd_soc_pcm_runtime *fe, int dir, int event)
|
||||
snd_soc_dapm_stream_event(fe, dir, event);
|
||||
}
|
||||
|
||||
static void soc_pcm_set_dai_params(struct snd_soc_dai *dai,
|
||||
struct snd_pcm_hw_params *params)
|
||||
void soc_pcm_set_dai_params(struct snd_soc_dai *dai,
|
||||
struct snd_pcm_hw_params *params)
|
||||
{
|
||||
if (params) {
|
||||
dai->symmetric_rate = params_rate(params);
|
||||
|
||||
Reference in New Issue
Block a user