NVIDIA: SAUCE: ASoC: Fix pll clock issue

Issue:
 Using 'rt5640-codec-sysclk-bclk1' compatible throws below error
 while running any of the rt5640 usecase,
   rt5640 3-001c: Unsupported clock setting 48000 for DAI 0
   rt5640 3-001c: ASoC: error at snd_soc_dai_hw_params on rt5640-aif1: -22

Fix:
  aud_mclk was used uninitialized that was leading to above error.
  Initialized aud_mclk as srate * 256.

Fixes: 9225307cecaa("NVIDIA: SAUCE: ASoC: tegra: support few external codecs")

http://nvbugs/5197062

Signed-off-by: Sheetal <sheetal@nvidia.com>
Reviewed-by: Mohan kumar <mkumard@nvidia.com>
Reviewed-by: Sameer Pujar <spujar@nvidia.com>
Signed-off-by: Kartik Rajput <kkartik@nvidia.com>
Acked-by: Noah Wager <noah.wager@canonical.com>
Acked-by: Jacob Martin <jacob.martin@canonical.com>
Signed-off-by: Noah Wager <noah.wager@canonical.com>
This commit is contained in:
Sheetal
2025-05-13 08:57:20 +00:00
committed by Noah Wager
parent 690b54bf48
commit 3eca03b144
+7 -1
View File
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: GPL-2.0-only
// SPDX-FileCopyrightText: Copyright (c) 2021-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
// SPDX-FileCopyrightText: Copyright (c) 2021-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
//
// tegra_codecs.c - External audio codec setup
@@ -281,6 +281,9 @@ int tegra_codecs_runtime_setup(struct snd_soc_pcm_runtime *rtd,
vrtd = find_rtd(rtd, "rt565x-codec-sysclk-bclk1");
if (vrtd) {
props = simple_priv_to_props(simple, vrtd->num);
aud_mclk = props->mclk_fs * srate;
err = set_pll_sysclk(vrtd, RT5659_PLL1_S_BCLK1, RT5659_SCLK_S_PLL1,
srate, channels, width, aud_mclk);
if (err < 0)
@@ -290,6 +293,9 @@ int tegra_codecs_runtime_setup(struct snd_soc_pcm_runtime *rtd,
vrtd = find_rtd(rtd, "rt5640-codec-sysclk-bclk1");
if (vrtd) {
props = simple_priv_to_props(simple, vrtd->num);
aud_mclk = props->mclk_fs * srate;
err = set_pll_sysclk(vrtd, RT5640_PLL1_S_BCLK1, RT5640_SCLK_S_PLL1,
srate, channels, width, aud_mclk);
if (err < 0)