Skip to content

Commit 5725bce

Browse files
morimotobroonie
authored andcommitted
ASoC: simple-card-utils: Unify clock direction by clk_direction
Original sample-card assumes SND_SOC_CLOCK_IN is used for snd_soc_dai_set_sysclk(), but someday, Codec uses SND_SOC_CLOCK_IN and CPU uses SND_SOC_CLOCK_OUT at hw_params(), and dai->clk_direction is used at simple_init_dai(). There is no uniformity today. Let's use dai->clk_direction for all cases. Fortunately, almost all DAI doesn't care about "dir" (= SND_SOC_CLOCK_IN/OUT) in .set_sysclk callback function (which is called in snd_soc_dai_set_sysclk()), so this patch has no effect in such DAIs. But this patch might breaks some existing Sound Card. Use "system-clock-direction-out" property if it needs to use SND_SOC_CLOCK_OUT Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://patch.msgid.link/87y10lu0gx.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
1 parent 301c26a commit 5725bce

1 file changed

Lines changed: 6 additions & 6 deletions

File tree

sound/soc/generic/simple-card-utils.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -365,17 +365,15 @@ void simple_util_shutdown(struct snd_pcm_substream *substream)
365365
struct snd_soc_dai *cpu_dai = snd_soc_rtd_to_cpu(rtd, i);
366366

367367
if (props->mclk_fs && !dai->clk_fixed && !snd_soc_dai_active(cpu_dai))
368-
snd_soc_dai_set_sysclk(cpu_dai,
369-
0, 0, SND_SOC_CLOCK_OUT);
368+
snd_soc_dai_set_sysclk(cpu_dai, 0, 0, dai->clk_direction);
370369

371370
simple_clk_disable(dai);
372371
}
373372
for_each_prop_dai_codec(props, i, dai) {
374373
struct snd_soc_dai *codec_dai = snd_soc_rtd_to_codec(rtd, i);
375374

376375
if (props->mclk_fs && !dai->clk_fixed && !snd_soc_dai_active(codec_dai))
377-
snd_soc_dai_set_sysclk(codec_dai,
378-
0, 0, SND_SOC_CLOCK_IN);
376+
snd_soc_dai_set_sysclk(codec_dai, 0, 0, dai->clk_direction);
379377

380378
simple_clk_disable(dai);
381379
}
@@ -483,13 +481,15 @@ int simple_util_hw_params(struct snd_pcm_substream *substream,
483481
}
484482

485483
for_each_rtd_codec_dais(rtd, i, sdai) {
486-
ret = snd_soc_dai_set_sysclk(sdai, 0, mclk, SND_SOC_CLOCK_IN);
484+
pdai = simple_props_to_dai_codec(props, i);
485+
ret = snd_soc_dai_set_sysclk(sdai, 0, mclk, pdai->clk_direction);
487486
if (ret && ret != -ENOTSUPP)
488487
return ret;
489488
}
490489

491490
for_each_rtd_cpu_dais(rtd, i, sdai) {
492-
ret = snd_soc_dai_set_sysclk(sdai, 0, mclk, SND_SOC_CLOCK_OUT);
491+
pdai = simple_props_to_dai_cpu(props, i);
492+
ret = snd_soc_dai_set_sysclk(sdai, 0, mclk, pdai->clk_direction);
493493
if (ret && ret != -ENOTSUPP)
494494
return ret;
495495
}

0 commit comments

Comments
 (0)