diff options
author | Mark Brown <broonie@kernel.org> | 2021-02-11 18:36:19 +0300 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2021-02-11 18:36:19 +0300 |
commit | ec9d68508ff65df1dc24cf8100eb40ddd196c2fd (patch) | |
tree | 786fc640c17c4e091ca98aad6e3bae1b79f62012 /sound/soc | |
parent | d207bdea0ca9efde321ff142e9b9f2ef73f9cdf5 (diff) | |
parent | 0be0f142b8323378df6358c36dd15494134f5b94 (diff) | |
download | linux-ec9d68508ff65df1dc24cf8100eb40ddd196c2fd.tar.xz |
Merge series "Use clocks property in a device node" from Sameer Pujar <spujar@nvidia.com>:
It is recommended to not specifiy clocks property in an endpoint subnode.
This series moves clocks to device node.
However after moving the clocks to device node, the audio playback or
capture fails. The specified clock is not actually getting enabled and
hence the failure is seen. There seems to be a bug in simple-card-utils.c
where clock handle is not assigned when parsing clocks from device node.
Fix the same and revert original change which actually added clocks
property in endpoint subnode. Also update Jetson AGX Xavier DT where the
usage is found.
Sameer Pujar (3):
ASoC: simple-card-utils: Fix device module clock
Revert "ASoC: audio-graph-card: Add clocks property to endpoint node"
arm64: tegra: Move clocks from RT5658 endpoint to device node
.../devicetree/bindings/sound/audio-graph-port.yaml | 3 ---
arch/arm64/boot/dts/nvidia/tegra194-p2972-0000.dts | 2 +-
sound/soc/generic/simple-card-utils.c | 13 ++++++-------
3 files changed, 7 insertions(+), 11 deletions(-)
--
2.7.4
Diffstat (limited to 'sound/soc')
-rw-r--r-- | sound/soc/generic/simple-card-utils.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/sound/soc/generic/simple-card-utils.c b/sound/soc/generic/simple-card-utils.c index 6cada4c1e283..ab31045cfc95 100644 --- a/sound/soc/generic/simple-card-utils.c +++ b/sound/soc/generic/simple-card-utils.c @@ -172,16 +172,15 @@ 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)) { - simple_dai->sysclk = clk_get_rate(clk); + if (IS_ERR(clk)) + clk = devm_get_clk_from_child(dev, dlc->of_node, NULL); + if (!IS_ERR(clk)) { simple_dai->clk = clk; - } else if (!of_property_read_u32(node, "system-clock-frequency", &val)) { + simple_dai->sysclk = clk_get_rate(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")) |