Title: [7893] trunk/drivers/usb/gadget: bug[5261]free alsa devices when remove the audio gadget
- Revision
- 7893
- Author
- cliff
- Date
- 2009-11-30 01:12:35 -0500 (Mon, 30 Nov 2009)
Log Message
bug[5261]free alsa devices when remove the audio gadget
Modified Paths
Diff
Modified: trunk/drivers/usb/gadget/audio.c (7892 => 7893)
--- trunk/drivers/usb/gadget/audio.c 2009-11-30 04:05:46 UTC (rev 7892)
+++ trunk/drivers/usb/gadget/audio.c 2009-11-30 06:12:35 UTC (rev 7893)
@@ -273,6 +273,7 @@
static int __exit audio_unbind(struct usb_composite_dev *cdev)
{
+ gaudio_cleanup();
return 0;
}
Modified: trunk/drivers/usb/gadget/f_audio.c (7892 => 7893)
--- trunk/drivers/usb/gadget/f_audio.c 2009-11-30 04:05:46 UTC (rev 7892)
+++ trunk/drivers/usb/gadget/f_audio.c 2009-11-30 06:12:35 UTC (rev 7893)
@@ -700,7 +700,7 @@
return status;
add_fail:
- gaudio_cleanup(&audio->card);
+ gaudio_cleanup();
setup_fail:
kfree(audio);
return status;
Modified: trunk/drivers/usb/gadget/u_audio.c (7892 => 7893)
--- trunk/drivers/usb/gadget/u_audio.c 2009-11-30 04:05:46 UTC (rev 7892)
+++ trunk/drivers/usb/gadget/u_audio.c 2009-11-30 06:12:35 UTC (rev 7893)
@@ -287,6 +287,7 @@
return 0;
}
+static struct gaudio *the_card;
/**
* gaudio_setup - setup ALSA interface and preparing for USB transfer
*
@@ -302,6 +303,9 @@
if (ret)
ERROR(card, "we need at least one control device\n");
+ if (!the_card)
+ the_card = card;
+
return ret;
}
@@ -311,9 +315,11 @@
*
* 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;
+ }
}
Modified: trunk/drivers/usb/gadget/u_audio.h (7892 => 7893)
--- trunk/drivers/usb/gadget/u_audio.h 2009-11-30 04:05:46 UTC (rev 7892)
+++ trunk/drivers/usb/gadget/u_audio.h 2009-11-30 06:12:35 UTC (rev 7893)
@@ -51,6 +51,6 @@
};
int gaudio_setup(struct gaudio *card);
-void gaudio_cleanup(struct gaudio *card);
+void gaudio_cleanup(void);
#endif /* __U_AUDIO_H */
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits