summaryrefslogtreecommitdiffstats
path: root/loopback/loopback.c
diff options
context:
space:
mode:
Diffstat (limited to 'loopback/loopback.c')
-rw-r--r--loopback/loopback.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/loopback/loopback.c b/loopback/loopback.c
index de0f38a..49c188d 100644
--- a/loopback/loopback.c
+++ b/loopback/loopback.c
@@ -1080,6 +1080,14 @@ static int loopbackap_configure(struct snd_card *card,
return 0;
}
+static int loopbackap_unconfigure(void)
+{
+ mutex_destroy(&loopback->cable_lock);
+ kfree(loopback);
+
+ return 0;
+}
+
/*******************************************************************************
* Loopback Audio Path AVIRT registration
******************************************************************************/
@@ -1091,6 +1099,7 @@ static struct snd_avirt_audiopath loopbackap_module = {
.pcm_playback_ops = &loopbackap_pcm_ops,
.pcm_capture_ops = &loopbackap_pcm_ops,
.configure = loopbackap_configure,
+ .unconfigure = loopbackap_unconfigure,
};
static int __init alsa_card_loopback_init(void)
@@ -1108,6 +1117,8 @@ static int __init alsa_card_loopback_init(void)
static void __exit alsa_card_loopback_exit(void)
{
+ mutex_destroy(&loopback->cable_lock);
+ kfree(loopback);
snd_avirt_audiopath_deregister(&loopbackap_module);
}