From 10047d2e3d2aec5d489de8ca9eba59b47f581d5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Fri, 13 Feb 2009 20:21:18 +0000 Subject: [PATCH] added codec reset git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29189 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../kernel/drivers/audio/ac97/geode/geode_controller.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/add-ons/kernel/drivers/audio/ac97/geode/geode_controller.cpp b/src/add-ons/kernel/drivers/audio/ac97/geode/geode_controller.cpp index a260468252..0cf5b7b212 100644 --- a/src/add-ons/kernel/drivers/audio/ac97/geode/geode_controller.cpp +++ b/src/add-ons/kernel/drivers/audio/ac97/geode/geode_controller.cpp @@ -92,7 +92,7 @@ geode_codec_write(geode_controller *controller, uint8 regno, uint16 value) (value & ACC_CODEC_CNTL_CMD_DATA_MASK)); if (geode_codec_wait(controller) != B_OK) { - dprintf("codec busy (2)\n"); + dprintf("codec busy (4)\n"); } } @@ -154,6 +154,13 @@ geode_interrupt_handler(geode_controller* controller) static status_t reset_controller(geode_controller* controller) { + controller->Write32(ACC_CODEC_CNTL, ACC_CODEC_CNTL_LNK_WRM_RST + | ACC_CODEC_CNTL_CMD_NEW); + + if (geode_codec_wait(controller) != B_OK) { + dprintf("codec reset busy (1)\n"); + } + // stop streams // stop DMA