diff options
-rw-r--r-- | sound/soc/soc-core.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index 1b94119cfb0d..e6b95b7e2737 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c @@ -780,22 +780,18 @@ static int snd_soc_is_matching_component( } static struct snd_soc_component *soc_find_component( - const struct device_node *of_node, const char *name) + struct device_node *of_node, const char *name) { struct snd_soc_component *component; - struct device_node *component_of_node; + struct snd_soc_dai_link_component dlc; lockdep_assert_held(&client_mutex); for_each_component(component) { - if (of_node) { - component_of_node = soc_component_to_node(component); - - if (component_of_node == of_node) - return component; - } else if (name && strcmp(component->name, name) == 0) { + dlc.name = name; + dlc.of_node = of_node; + if (snd_soc_is_matching_component(&dlc, component)) return component; - } } return NULL; |