Merge branch 'topic/component' of git://git.kernel.org/pub/scm/linux/kernel/git/broon...
authorMark Brown <broonie@kernel.org>
Thu, 10 Aug 2017 15:56:10 +0000 (16:56 +0100)
committerMark Brown <broonie@kernel.org>
Thu, 10 Aug 2017 15:56:10 +0000 (16:56 +0100)
include/sound/soc.h
sound/soc/soc-core.c

index 82e07815178784d7b88cfdc3629c58ae96ad0c33..538e9880e010eecf55a0024c3a7d18b8a2a2ca64 100644 (file)
@@ -469,10 +469,10 @@ int snd_soc_register_codec(struct device *dev,
                struct snd_soc_dai_driver *dai_drv, int num_dai);
 void snd_soc_unregister_codec(struct device *dev);
 int snd_soc_register_component(struct device *dev,
-                        const struct snd_soc_component_driver *cmpnt_drv,
+                        const struct snd_soc_component_driver *component_driver,
                         struct snd_soc_dai_driver *dai_drv, int num_dai);
 int devm_snd_soc_register_component(struct device *dev,
-                        const struct snd_soc_component_driver *cmpnt_drv,
+                        const struct snd_soc_component_driver *component_driver,
                         struct snd_soc_dai_driver *dai_drv, int num_dai);
 void snd_soc_unregister_component(struct device *dev);
 int snd_soc_cache_init(struct snd_soc_codec *codec);
index bbbe003fc0af174ce0408d58bff32cf10df60ed9..b1860b14b0757ac4327e0864b66c02b7250687b4 100644 (file)
@@ -3326,40 +3326,40 @@ static void snd_soc_component_del_unlocked(struct snd_soc_component *component)
 }
 
 int snd_soc_register_component(struct device *dev,
-                              const struct snd_soc_component_driver *cmpnt_drv,
+                              const struct snd_soc_component_driver *component_driver,
                               struct snd_soc_dai_driver *dai_drv,
                               int num_dai)
 {
-       struct snd_soc_component *cmpnt;
+       struct snd_soc_component *component;
        int ret;
 
-       cmpnt = kzalloc(sizeof(*cmpnt), GFP_KERNEL);
-       if (!cmpnt) {
+       component = kzalloc(sizeof(*component), GFP_KERNEL);
+       if (!component) {
                dev_err(dev, "ASoC: Failed to allocate memory\n");
                return -ENOMEM;
        }
 
-       ret = snd_soc_component_initialize(cmpnt, cmpnt_drv, dev);
+       ret = snd_soc_component_initialize(component, component_driver, dev);
        if (ret)
                goto err_free;
 
-       cmpnt->ignore_pmdown_time = true;
-       cmpnt->registered_as_component = true;
+       component->ignore_pmdown_time = true;
+       component->registered_as_component = true;
 
-       ret = snd_soc_register_dais(cmpnt, dai_drv, num_dai, true);
+       ret = snd_soc_register_dais(component, dai_drv, num_dai, true);
        if (ret < 0) {
                dev_err(dev, "ASoC: Failed to register DAIs: %d\n", ret);
                goto err_cleanup;
        }
 
-       snd_soc_component_add(cmpnt);
+       snd_soc_component_add(component);
 
        return 0;
 
 err_cleanup:
-       snd_soc_component_cleanup(cmpnt);
+       snd_soc_component_cleanup(component);
 err_free:
-       kfree(cmpnt);
+       kfree(component);
        return ret;
 }
 EXPORT_SYMBOL_GPL(snd_soc_register_component);
@@ -3371,22 +3371,26 @@ EXPORT_SYMBOL_GPL(snd_soc_register_component);
  */
 void snd_soc_unregister_component(struct device *dev)
 {
-       struct snd_soc_component *cmpnt;
+       struct snd_soc_component *component;
+       int found = 0;
 
        mutex_lock(&client_mutex);
-       list_for_each_entry(cmpnt, &component_list, list) {
-               if (dev == cmpnt->dev && cmpnt->registered_as_component)
-                       goto found;
+       list_for_each_entry(component, &component_list, list) {
+               if (dev != component->dev ||
+                   !component->registered_as_component)
+                       continue;
+
+               snd_soc_tplg_component_remove(component, SND_SOC_TPLG_INDEX_ALL);
+               snd_soc_component_del_unlocked(component);
+               found = 1;
+               break;
        }
        mutex_unlock(&client_mutex);
-       return;
 
-found:
-       snd_soc_tplg_component_remove(cmpnt, SND_SOC_TPLG_INDEX_ALL);
-       snd_soc_component_del_unlocked(cmpnt);
-       mutex_unlock(&client_mutex);
-       snd_soc_component_cleanup(cmpnt);
-       kfree(cmpnt);
+       if (found) {
+               snd_soc_component_cleanup(component);
+               kfree(component);
+       }
 }
 EXPORT_SYMBOL_GPL(snd_soc_unregister_component);