From 72570e2e148d3c0ef554aea5abfa0b87818f063a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Mon, 25 Jan 2010 21:19:31 +0000 Subject: [PATCH] * spawn the thread after an audio group is created to be safe. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35289 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../kernel/drivers/audio/hda/hda_codec.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/add-ons/kernel/drivers/audio/hda/hda_codec.cpp b/src/add-ons/kernel/drivers/audio/hda/hda_codec.cpp index f8554c822d..70ae02ddc2 100644 --- a/src/add-ons/kernel/drivers/audio/hda/hda_codec.cpp +++ b/src/add-ons/kernel/drivers/audio/hda/hda_codec.cpp @@ -1388,14 +1388,6 @@ hda_codec_new(hda_controller* controller, uint32 codecAddress) } codec->unsol_response_read = 0; codec->unsol_response_write = 0; - codec->unsol_response_thread = spawn_kernel_thread( - (status_t(*)(void*))hda_codec_switch_handler, - "hda_codec_unsol_thread", B_LOW_PRIORITY, codec); - if (codec->unsol_response_thread < B_OK) { - ERROR("hda: Failed to spawn thread\n"); - goto err; - } - resume_thread(codec->unsol_response_thread); struct { uint32 device : 16; @@ -1455,6 +1447,15 @@ hda_codec_new(hda_controller* controller, uint32 codecAddress) } } } + + codec->unsol_response_thread = spawn_kernel_thread( + (status_t(*)(void*))hda_codec_switch_handler, + "hda_codec_unsol_thread", B_LOW_PRIORITY, codec); + if (codec->unsol_response_thread < B_OK) { + ERROR("hda: Failed to spawn thread\n"); + goto err; + } + resume_thread(codec->unsol_response_thread); return codec; err: