Commit c6619b72 authored by Kuninori Morimoto's avatar Kuninori Morimoto Committed by Mark Brown

ASoC: soc-core: merge soc_remove_component() and soc_cleanup_component()

having both soc_remove_component() and soc_cleanup_component() is
very confusable. Let's merge these.
Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87o8xphkwt.wl-kuninori.morimoto.gx@renesas.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent da704f26
...@@ -1201,8 +1201,16 @@ static void soc_set_name_prefix(struct snd_soc_card *card, ...@@ -1201,8 +1201,16 @@ static void soc_set_name_prefix(struct snd_soc_card *card,
soc_set_of_name_prefix(component); soc_set_of_name_prefix(component);
} }
static void soc_cleanup_component(struct snd_soc_component *component) static void soc_remove_component(struct snd_soc_component *component,
int probed)
{ {
if (!component->card)
return;
if (probed)
snd_soc_component_remove(component);
/* For framework level robustness */ /* For framework level robustness */
snd_soc_component_set_jack(component, NULL, NULL); snd_soc_component_set_jack(component, NULL, NULL);
...@@ -1213,22 +1221,13 @@ static void soc_cleanup_component(struct snd_soc_component *component) ...@@ -1213,22 +1221,13 @@ static void soc_cleanup_component(struct snd_soc_component *component)
snd_soc_component_module_put_when_remove(component); snd_soc_component_module_put_when_remove(component);
} }
static void soc_remove_component(struct snd_soc_component *component)
{
if (!component->card)
return;
snd_soc_component_remove(component);
soc_cleanup_component(component);
}
static int soc_probe_component(struct snd_soc_card *card, static int soc_probe_component(struct snd_soc_card *card,
struct snd_soc_component *component) struct snd_soc_component *component)
{ {
struct snd_soc_dapm_context *dapm = struct snd_soc_dapm_context *dapm =
snd_soc_component_get_dapm(component); snd_soc_component_get_dapm(component);
struct snd_soc_dai *dai; struct snd_soc_dai *dai;
int probed = 0;
int ret; int ret;
if (!strcmp(component->name, "snd-soc-dummy")) if (!strcmp(component->name, "snd-soc-dummy"))
...@@ -1284,6 +1283,7 @@ static int soc_probe_component(struct snd_soc_card *card, ...@@ -1284,6 +1283,7 @@ static int soc_probe_component(struct snd_soc_card *card,
dapm->bias_level != SND_SOC_BIAS_OFF, dapm->bias_level != SND_SOC_BIAS_OFF,
"codec %s can not start from non-off bias with idle_bias_off==1\n", "codec %s can not start from non-off bias with idle_bias_off==1\n",
component->name); component->name);
probed = 1;
/* machine specific init */ /* machine specific init */
if (component->init) { if (component->init) {
...@@ -1312,7 +1312,7 @@ static int soc_probe_component(struct snd_soc_card *card, ...@@ -1312,7 +1312,7 @@ static int soc_probe_component(struct snd_soc_card *card,
err_probe: err_probe:
if (ret < 0) if (ret < 0)
soc_cleanup_component(component); soc_remove_component(component, probed);
return ret; return ret;
} }
...@@ -1414,7 +1414,7 @@ static void soc_remove_link_components(struct snd_soc_card *card) ...@@ -1414,7 +1414,7 @@ static void soc_remove_link_components(struct snd_soc_card *card)
if (component->driver->remove_order != order) if (component->driver->remove_order != order)
continue; continue;
soc_remove_component(component); soc_remove_component(component, 1);
} }
} }
} }
...@@ -1608,7 +1608,7 @@ static void soc_remove_aux_devices(struct snd_soc_card *card) ...@@ -1608,7 +1608,7 @@ static void soc_remove_aux_devices(struct snd_soc_card *card)
for_each_comp_order(order) { for_each_comp_order(order) {
for_each_card_auxs_safe(card, comp, _comp) { for_each_card_auxs_safe(card, comp, _comp) {
if (comp->driver->remove_order == order) if (comp->driver->remove_order == order)
soc_remove_component(comp); soc_remove_component(comp, 1);
} }
} }
} }
......
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