Commit 06859fca authored by Charles Keepax's avatar Charles Keepax Committed by Mark Brown

ASoC: core: If a platform doesn't have an of_node use parent's node

Support was added to allow location of both CPU and CODEC components
of a DAI link from their parent's of_node if they did not have an
of_node themselves in this commit:

commit 3e0aa8d8 ("ASoC: core: If component doesn't have of_node
                      use parent's node instead")

However this leaves platforms as something of a special case as the
major DAI component that doesn't do this. Since this is useful for MFD
devices which often utilise a single device tree entry for the whole
device, add support for looking up platforms from the parent's of_node
as well.
Signed-off-by: default avatarCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 1001354c
...@@ -993,6 +993,7 @@ static int soc_bind_dai_link(struct snd_soc_card *card, ...@@ -993,6 +993,7 @@ static int soc_bind_dai_link(struct snd_soc_card *card,
struct snd_soc_dai_link_component cpu_dai_component; struct snd_soc_dai_link_component cpu_dai_component;
struct snd_soc_dai **codec_dais; struct snd_soc_dai **codec_dais;
struct snd_soc_platform *platform; struct snd_soc_platform *platform;
struct device_node *platform_of_node;
const char *platform_name; const char *platform_name;
int i; int i;
...@@ -1042,9 +1043,12 @@ static int soc_bind_dai_link(struct snd_soc_card *card, ...@@ -1042,9 +1043,12 @@ static int soc_bind_dai_link(struct snd_soc_card *card,
/* find one from the set of registered platforms */ /* find one from the set of registered platforms */
list_for_each_entry(platform, &platform_list, list) { list_for_each_entry(platform, &platform_list, list) {
platform_of_node = platform->dev->of_node;
if (!platform_of_node && platform->dev->parent->of_node)
platform_of_node = platform->dev->parent->of_node;
if (dai_link->platform_of_node) { if (dai_link->platform_of_node) {
if (platform->dev->of_node != if (platform_of_node != dai_link->platform_of_node)
dai_link->platform_of_node)
continue; continue;
} else { } else {
if (strcmp(platform->component.name, platform_name)) if (strcmp(platform->component.name, platform_name))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment