SoC: soc-core: export function to find components

Drivers may need to use the ASoC core function to
find out whether a particular component is already
registered with ALSA core or not.
Export the function so that drivers can use it outside
of the file.

Change-Id: I13e4a053de085974b0b53c392a9453e46f1aa66d
Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
Signed-off-by: Meng Wang <mengw@codeaurora.org>
This commit is contained in:
Meng Wang 2019-11-20 18:56:29 +08:00
commit b3f1c1d899
2 changed files with 39 additions and 0 deletions

View file

@ -1336,6 +1336,11 @@ int snd_soc_register_dai(struct snd_soc_component *component,
struct snd_soc_dai *snd_soc_find_dai(
const struct snd_soc_dai_link_component *dlc);
#ifdef CONFIG_AUDIO_QGKI
struct snd_soc_component *soc_find_component(
const struct snd_soc_dai_link_component *dlc);
#endif
#include <sound/soc-dai.h>
static inline

View file

@ -763,6 +763,39 @@ static int snd_soc_is_matching_component(
return 1;
}
#ifdef CONFIG_AUDIO_QGKI
/**
* soc_find_component: find a component from component_list in ASoC core
*
* @dlc: dlc of the component to query.
*
* function to find out if a component is already registered with ASoC core.
*
* Returns component handle for success, else NULL error.
*/
struct snd_soc_component *soc_find_component(
const struct snd_soc_dai_link_component *dlc)
{
struct snd_soc_component *component;
lockdep_assert_held(&client_mutex);
/*
* NOTE
*
* It returns *1st* found component, but some driver
* has few components by same of_node/name
* ex)
* CPU component and generic DMAEngine component
*/
for_each_component(component)
if (snd_soc_is_matching_component(dlc, component))
return component;
return NULL;
}
EXPORT_SYMBOL(soc_find_component);
#else
static struct snd_soc_component *soc_find_component(
const struct snd_soc_dai_link_component *dlc)
{
@ -784,6 +817,7 @@ static struct snd_soc_component *soc_find_component(
return NULL;
}
#endif
/**
* snd_soc_find_dai - Find a registered DAI