summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--include/sound/soc.h3
-rw-r--r--sound/soc/soc-core.c4
-rw-r--r--sound/soc/soc-utils.c6
3 files changed, 9 insertions, 4 deletions
diff --git a/include/sound/soc.h b/include/sound/soc.h
index cb6b18b6eece..6ce3e573fb40 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -888,6 +888,9 @@ static inline void snd_soc_initialize_card_lists(struct snd_soc_card *card)
 	INIT_LIST_HEAD(&card->dapm_list);
 }
 
+int snd_soc_util_init(void);
+void snd_soc_util_exit(void);
+
 #include <sound/soc-dai.h>
 
 #ifdef CONFIG_DEBUG_FS
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 16be3e5cf9e7..a823654ef367 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -3868,12 +3868,16 @@ static int __init snd_soc_init(void)
 		pr_warn("ASoC: Failed to create platform list debugfs file\n");
 #endif
 
+	snd_soc_util_init();
+
 	return platform_driver_register(&soc_driver);
 }
 module_init(snd_soc_init);
 
 static void __exit snd_soc_exit(void)
 {
+	snd_soc_util_exit();
+
 #ifdef CONFIG_DEBUG_FS
 	debugfs_remove_recursive(snd_soc_debugfs_root);
 #endif
diff --git a/sound/soc/soc-utils.c b/sound/soc/soc-utils.c
index 286579140882..ec921ec99c26 100644
--- a/sound/soc/soc-utils.c
+++ b/sound/soc/soc-utils.c
@@ -82,7 +82,7 @@ static struct platform_driver soc_dummy_driver = {
 
 static struct platform_device *soc_dummy_dev;
 
-static int __init snd_soc_util_init(void)
+int __init snd_soc_util_init(void)
 {
 	int ret;
 
@@ -102,11 +102,9 @@ static int __init snd_soc_util_init(void)
 
 	return ret;
 }
-module_init(snd_soc_util_init);
 
-static void __exit snd_soc_util_exit(void)
+void __exit snd_soc_util_exit(void)
 {
 	platform_device_unregister(soc_dummy_dev);
 	platform_driver_unregister(&soc_dummy_driver);
 }
-module_exit(snd_soc_util_exit);