* handles correctly failures during setup

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33277 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Jérôme Duval 2009-09-24 22:39:59 +00:00
parent 65c7c7c383
commit b5929aa12e

View File

@ -707,15 +707,23 @@ auich_setup(auich_dev * card)
}
if (current_settings.use_thread) {
int_thread_id = spawn_kernel_thread(auich_int_thread, "auich interrupt poller", B_REAL_TIME_PRIORITY, card);
int_thread_id = spawn_kernel_thread(auich_int_thread,
"auich interrupt poller", B_REAL_TIME_PRIORITY, card);
resume_thread(int_thread_id);
} else {
PRINT(("installing interrupt : %lx\n", card->config.irq));
install_io_interrupt_handler(card->config.irq, auich_int, card, 0);
err = install_io_interrupt_handler(card->config.irq, auich_int,
card, 0);
if (err != B_OK) {
PRINT(("failed to install interrupt\n"));
ac97_detach(card->config.ac97);
unmap_io_memory(&card->config);
return err;
}
}
if ((err = auich_init(card)))
return (err);
if ((err = auich_init(card)) != B_OK)
return err;
PRINT(("init_driver done\n"));