diff options
-rw-r--r-- | sound/usb/usx2y/usbusx2y.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/sound/usb/usx2y/usbusx2y.c b/sound/usb/usx2y/usbusx2y.c index b06a267e5dac..89ee8b732013 100644 --- a/sound/usb/usx2y/usbusx2y.c +++ b/sound/usb/usx2y/usbusx2y.c | |||
@@ -1,6 +1,11 @@ | |||
1 | /* | 1 | /* |
2 | * usbusy2y.c - ALSA USB US-428 Driver | 2 | * usbusy2y.c - ALSA USB US-428 Driver |
3 | * | 3 | * |
4 | 2005-04-14 Karsten Wiese | ||
5 | Version 0.8.7.2: | ||
6 | Call snd_card_free() instead of snd_card_free_in_thread() to prevent oops with dead keyboard symptom. | ||
7 | Tested ok with kernel 2.6.12-rc2. | ||
8 | |||
4 | 2004-12-14 Karsten Wiese | 9 | 2004-12-14 Karsten Wiese |
5 | Version 0.8.7.1: | 10 | Version 0.8.7.1: |
6 | snd_pcm_open for rawusb pcm-devices now returns -EBUSY if called without rawusb's hwdep device being open. | 11 | snd_pcm_open for rawusb pcm-devices now returns -EBUSY if called without rawusb's hwdep device being open. |
@@ -143,7 +148,7 @@ | |||
143 | 148 | ||
144 | 149 | ||
145 | MODULE_AUTHOR("Karsten Wiese <annabellesgarden@yahoo.de>"); | 150 | MODULE_AUTHOR("Karsten Wiese <annabellesgarden@yahoo.de>"); |
146 | MODULE_DESCRIPTION("TASCAM "NAME_ALLCAPS" Version 0.8.7.1"); | 151 | MODULE_DESCRIPTION("TASCAM "NAME_ALLCAPS" Version 0.8.7.2"); |
147 | MODULE_LICENSE("GPL"); | 152 | MODULE_LICENSE("GPL"); |
148 | MODULE_SUPPORTED_DEVICE("{{TASCAM(0x1604), "NAME_ALLCAPS"(0x8001)(0x8005)(0x8007) }}"); | 153 | MODULE_SUPPORTED_DEVICE("{{TASCAM(0x1604), "NAME_ALLCAPS"(0x8001)(0x8005)(0x8007) }}"); |
149 | 154 | ||
@@ -430,8 +435,6 @@ static void usX2Y_usb_disconnect(struct usb_device* device, void* ptr) | |||
430 | if (ptr) { | 435 | if (ptr) { |
431 | usX2Ydev_t* usX2Y = usX2Y((snd_card_t*)ptr); | 436 | usX2Ydev_t* usX2Y = usX2Y((snd_card_t*)ptr); |
432 | struct list_head* p; | 437 | struct list_head* p; |
433 | if (usX2Y->chip_status == USX2Y_STAT_CHIP_HUP) // on 2.6.1 kernel snd_usbmidi_disconnect() | ||
434 | return; // calls us back. better leave :-) . | ||
435 | usX2Y->chip.shutdown = 1; | 438 | usX2Y->chip.shutdown = 1; |
436 | usX2Y->chip_status = USX2Y_STAT_CHIP_HUP; | 439 | usX2Y->chip_status = USX2Y_STAT_CHIP_HUP; |
437 | usX2Y_unlinkSeq(&usX2Y->AS04); | 440 | usX2Y_unlinkSeq(&usX2Y->AS04); |
@@ -443,7 +446,7 @@ static void usX2Y_usb_disconnect(struct usb_device* device, void* ptr) | |||
443 | } | 446 | } |
444 | if (usX2Y->us428ctls_sharedmem) | 447 | if (usX2Y->us428ctls_sharedmem) |
445 | wake_up(&usX2Y->us428ctls_wait_queue_head); | 448 | wake_up(&usX2Y->us428ctls_wait_queue_head); |
446 | snd_card_free_in_thread((snd_card_t*)ptr); | 449 | snd_card_free((snd_card_t*)ptr); |
447 | } | 450 | } |
448 | } | 451 | } |
449 | 452 | ||