diff options
author | Cliff Cai <cliff.cai@analog.com> | 2009-12-09 22:28:39 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2009-12-23 14:34:20 -0500 |
commit | feef1d952ee1e9ac074640d7029dbbe8501725c2 (patch) | |
tree | fba4643b1789198955e88345c958fc19a6748246 /drivers/usb/gadget/u_audio.c | |
parent | d16f172622a7941c4fca09724ce16df5348af5fb (diff) |
USB: audio gadget: free alsa devices when unloading
Signed-off-by: Cliff Cai <cliff.cai@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/gadget/u_audio.c')
-rw-r--r-- | drivers/usb/gadget/u_audio.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/usb/gadget/u_audio.c b/drivers/usb/gadget/u_audio.c index 8252595d619d..35e0930f5bbb 100644 --- a/drivers/usb/gadget/u_audio.c +++ b/drivers/usb/gadget/u_audio.c | |||
@@ -288,6 +288,7 @@ static int gaudio_close_snd_dev(struct gaudio *gau) | |||
288 | return 0; | 288 | return 0; |
289 | } | 289 | } |
290 | 290 | ||
291 | static struct gaudio *the_card; | ||
291 | /** | 292 | /** |
292 | * gaudio_setup - setup ALSA interface and preparing for USB transfer | 293 | * gaudio_setup - setup ALSA interface and preparing for USB transfer |
293 | * | 294 | * |
@@ -303,6 +304,9 @@ int __init gaudio_setup(struct gaudio *card) | |||
303 | if (ret) | 304 | if (ret) |
304 | ERROR(card, "we need at least one control device\n"); | 305 | ERROR(card, "we need at least one control device\n"); |
305 | 306 | ||
307 | if (!the_card) | ||
308 | the_card = card; | ||
309 | |||
306 | return ret; | 310 | return ret; |
307 | 311 | ||
308 | } | 312 | } |
@@ -312,9 +316,11 @@ int __init gaudio_setup(struct gaudio *card) | |||
312 | * | 316 | * |
313 | * This is called to free all resources allocated by @gaudio_setup(). | 317 | * This is called to free all resources allocated by @gaudio_setup(). |
314 | */ | 318 | */ |
315 | void gaudio_cleanup(struct gaudio *card) | 319 | void gaudio_cleanup(void) |
316 | { | 320 | { |
317 | if (card) | 321 | if (the_card) { |
318 | gaudio_close_snd_dev(card); | 322 | gaudio_close_snd_dev(the_card); |
323 | the_card = NULL; | ||
324 | } | ||
319 | } | 325 | } |
320 | 326 | ||