diff options
author | Takashi Iwai <tiwai@suse.de> | 2019-04-13 10:09:40 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2019-04-13 10:09:46 +0200 |
commit | 99fff44fe339b21c6a4ddd6c1239e587dd439cd3 (patch) | |
tree | 132e59f06c467786f21b9b67a5a031936850b384 /sound/soc/soc-core.c | |
parent | 6b580f523172f2c738b661069a57c23c74a75f88 (diff) | |
parent | 183ab39eb0ea9879bb68422a83e65f750f3192f0 (diff) | |
download | linux-99fff44fe339b21c6a4ddd6c1239e587dd439cd3.tar.gz linux-99fff44fe339b21c6a4ddd6c1239e587dd439cd3.tar.bz2 linux-99fff44fe339b21c6a4ddd6c1239e587dd439cd3.zip |
Merge branch 'for-linus' into for-next
Back-merge the 5.1 devel branch for the further HD-audio development.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/soc/soc-core.c')
-rw-r--r-- | sound/soc/soc-core.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index 93d316d5bf8e..46e3ab0fced4 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c @@ -947,7 +947,7 @@ static void soc_cleanup_component(struct snd_soc_component *component) snd_soc_dapm_free(snd_soc_component_get_dapm(component)); soc_cleanup_component_debugfs(component); component->card = NULL; - if (!component->driver->ignore_module_refcount) + if (!component->driver->module_get_upon_open) module_put(component->dev->driver->owner); } @@ -1381,7 +1381,7 @@ static int soc_probe_component(struct snd_soc_card *card, return 0; } - if (!component->driver->ignore_module_refcount && + if (!component->driver->module_get_upon_open && !try_module_get(component->dev->driver->owner)) return -ENODEV; @@ -2797,6 +2797,7 @@ int snd_soc_register_card(struct snd_soc_card *card) ret = soc_init_dai_link(card, link); if (ret) { + soc_cleanup_platform(card); dev_err(card->dev, "ASoC: failed to init link %s\n", link->name); mutex_unlock(&client_mutex); @@ -2819,6 +2820,7 @@ int snd_soc_register_card(struct snd_soc_card *card) card->instantiated = 0; mutex_init(&card->mutex); mutex_init(&card->dapm_mutex); + spin_lock_init(&card->dpcm_lock); return snd_soc_bind_card(card); } |