Message ID | 1615829492-8972-2-git-send-email-spujar@nvidia.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 8ca88d53351cc58d535b2bfc7386835378fb0db2 |
Headers | show |
Series | Do not handle MCLK device clock in simple-card-utils | expand |
Am 2021-03-15 18:31, schrieb Sameer Pujar: > This reverts commit 1e30f642cf29 ("ASoC: simple-card-utils: Fix device > module clock"). The original patch ended up breaking following > platform, > which depends on set_sysclk() to configure internal PLL on wm8904 codec > and expects simple-card-utils to not update the MCLK rate. > - > "arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28-var3-ads2.dts" > > It would be best if codec takes care of setting MCLK clock via DAI > set_sysclk() callback. > > Reported-by: Michael Walle <michael@walle.cc> > Suggested-by: Mark Brown <broonie@kernel.org> > Suggested-by: Michael Walle <michael@walle.cc> > Fixes: 1e30f642cf29 ("ASoC: simple-card-utils: Fix device module > clock") > Signed-off-by: Sameer Pujar <spujar@nvidia.com> Thanks! Tested-by: Michael Walle <michael@walle.cc> -michael
diff --git a/sound/soc/generic/simple-card-utils.c b/sound/soc/generic/simple-card-utils.c index ab31045..6cada4c 100644 --- a/sound/soc/generic/simple-card-utils.c +++ b/sound/soc/generic/simple-card-utils.c @@ -172,15 +172,16 @@ int asoc_simple_parse_clk(struct device *dev, * or device's module clock. */ clk = devm_get_clk_from_child(dev, node, NULL); - if (IS_ERR(clk)) - clk = devm_get_clk_from_child(dev, dlc->of_node, NULL); - if (!IS_ERR(clk)) { - simple_dai->clk = clk; simple_dai->sysclk = clk_get_rate(clk); - } else if (!of_property_read_u32(node, "system-clock-frequency", - &val)) { + + simple_dai->clk = clk; + } else if (!of_property_read_u32(node, "system-clock-frequency", &val)) { simple_dai->sysclk = val; + } else { + clk = devm_get_clk_from_child(dev, dlc->of_node, NULL); + if (!IS_ERR(clk)) + simple_dai->sysclk = clk_get_rate(clk); } if (of_property_read_bool(node, "system-clock-direction-out"))
This reverts commit 1e30f642cf29 ("ASoC: simple-card-utils: Fix device module clock"). The original patch ended up breaking following platform, which depends on set_sysclk() to configure internal PLL on wm8904 codec and expects simple-card-utils to not update the MCLK rate. - "arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28-var3-ads2.dts" It would be best if codec takes care of setting MCLK clock via DAI set_sysclk() callback. Reported-by: Michael Walle <michael@walle.cc> Suggested-by: Mark Brown <broonie@kernel.org> Suggested-by: Michael Walle <michael@walle.cc> Fixes: 1e30f642cf29 ("ASoC: simple-card-utils: Fix device module clock") Signed-off-by: Sameer Pujar <spujar@nvidia.com> --- sound/soc/generic/simple-card-utils.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-)