|
|
@@ -42,6 +42,9 @@ int qcom_snd_parse_of(struct snd_soc_card *card)
|
|
|
link = card->dai_link;
|
|
|
for_each_child_of_node(dev->of_node, np) {
|
|
|
cpu = of_get_child_by_name(np, "cpu");
|
|
|
+ platform = of_get_child_by_name(np, "platform");
|
|
|
+ codec = of_get_child_by_name(np, "codec");
|
|
|
+
|
|
|
if (!cpu) {
|
|
|
dev_err(dev, "Can't find cpu DT node\n");
|
|
|
ret = -EINVAL;
|
|
|
@@ -63,8 +66,6 @@ int qcom_snd_parse_of(struct snd_soc_card *card)
|
|
|
goto err;
|
|
|
}
|
|
|
|
|
|
- platform = of_get_child_by_name(np, "platform");
|
|
|
- codec = of_get_child_by_name(np, "codec");
|
|
|
if (codec && platform) {
|
|
|
link->platform_of_node = of_parse_phandle(platform,
|
|
|
"sound-dai",
|
|
|
@@ -100,10 +101,15 @@ int qcom_snd_parse_of(struct snd_soc_card *card)
|
|
|
link->dpcm_capture = 1;
|
|
|
link->stream_name = link->name;
|
|
|
link++;
|
|
|
+
|
|
|
+ of_node_put(cpu);
|
|
|
+ of_node_put(codec);
|
|
|
+ of_node_put(platform);
|
|
|
}
|
|
|
|
|
|
return 0;
|
|
|
err:
|
|
|
+ of_node_put(np);
|
|
|
of_node_put(cpu);
|
|
|
of_node_put(codec);
|
|
|
of_node_put(platform);
|