mirror of
https://github.com/torvalds/linux.git
synced 2026-05-26 08:02:27 +02:00
ASoC: fsl_sai: allow to set mclk rate with zero clk_id
If clk_id is zero, it means FSL_SAI_CLK_BUS in fsl_sai_set_dai_sysclk(), as the clk[FSL_SAI_CLK_BUS]'s rate can't be changed, there is no rate changed for mclk. But with audio-graph-card, the clk_id is always zero, in order to allow to set mclk rate with zero clk_id, update the condition to be if clk_id is zero, then set the FSL_SAI_CLK_MAST1's rate. This would not change the original function for master mode. Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com> Link: https://patch.msgid.link/20250328085744.1893434-2-shengjiu.wang@nxp.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
0af2f6be1b
commit
78b3bcfd56
|
|
@ -238,22 +238,22 @@ static int fsl_sai_set_dai_sysclk(struct snd_soc_dai *cpu_dai,
|
|||
if (dir == SND_SOC_CLOCK_IN)
|
||||
return 0;
|
||||
|
||||
if (freq > 0 && clk_id != FSL_SAI_CLK_BUS) {
|
||||
if (clk_id < 0 || clk_id >= FSL_SAI_MCLK_MAX) {
|
||||
dev_err(cpu_dai->dev, "Unknown clock id: %d\n", clk_id);
|
||||
return -EINVAL;
|
||||
}
|
||||
if (clk_id < 0 || clk_id >= FSL_SAI_MCLK_MAX) {
|
||||
dev_err(cpu_dai->dev, "Unknown clock id: %d\n", clk_id);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (IS_ERR_OR_NULL(sai->mclk_clk[clk_id])) {
|
||||
dev_err(cpu_dai->dev, "Unassigned clock: %d\n", clk_id);
|
||||
return -EINVAL;
|
||||
}
|
||||
if (IS_ERR_OR_NULL(sai->mclk_clk[clk_id])) {
|
||||
dev_err(cpu_dai->dev, "Unassigned clock: %d\n", clk_id);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (sai->mclk_streams == 0) {
|
||||
ret = fsl_sai_set_mclk_rate(cpu_dai, clk_id, freq);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
}
|
||||
if (sai->mclk_streams == 0 && freq > 0) {
|
||||
ret = fsl_sai_set_mclk_rate(cpu_dai,
|
||||
clk_id ? clk_id : FSL_SAI_CLK_MAST1,
|
||||
freq);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = fsl_sai_set_dai_sysclk_tr(cpu_dai, clk_id, freq, true);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user