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>
This commit is contained in:
Родитель
d16f172622
Коммит
feef1d952e
|
@ -158,6 +158,7 @@ fail:
|
|||
|
||||
static int __exit audio_unbind(struct usb_composite_dev *cdev)
|
||||
{
|
||||
gaudio_cleanup();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -792,7 +792,7 @@ int __init audio_bind_config(struct usb_configuration *c)
|
|||
return status;
|
||||
|
||||
add_fail:
|
||||
gaudio_cleanup(&audio->card);
|
||||
gaudio_cleanup();
|
||||
setup_fail:
|
||||
kfree(audio);
|
||||
return status;
|
||||
|
|
|
@ -288,6 +288,7 @@ static int gaudio_close_snd_dev(struct gaudio *gau)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct gaudio *the_card;
|
||||
/**
|
||||
* gaudio_setup - setup ALSA interface and preparing for USB transfer
|
||||
*
|
||||
|
@ -303,6 +304,9 @@ int __init gaudio_setup(struct gaudio *card)
|
|||
if (ret)
|
||||
ERROR(card, "we need at least one control device\n");
|
||||
|
||||
if (!the_card)
|
||||
the_card = card;
|
||||
|
||||
return ret;
|
||||
|
||||
}
|
||||
|
@ -312,9 +316,11 @@ int __init gaudio_setup(struct gaudio *card)
|
|||
*
|
||||
* This is called to free all resources allocated by @gaudio_setup().
|
||||
*/
|
||||
void gaudio_cleanup(struct gaudio *card)
|
||||
void gaudio_cleanup(void)
|
||||
{
|
||||
if (card)
|
||||
gaudio_close_snd_dev(card);
|
||||
if (the_card) {
|
||||
gaudio_close_snd_dev(the_card);
|
||||
the_card = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -51,6 +51,6 @@ struct gaudio {
|
|||
};
|
||||
|
||||
int gaudio_setup(struct gaudio *card);
|
||||
void gaudio_cleanup(struct gaudio *card);
|
||||
void gaudio_cleanup(void);
|
||||
|
||||
#endif /* __U_AUDIO_H */
|
||||
|
|
Загрузка…
Ссылка в новой задаче