summaryrefslogtreecommitdiff
path: root/Kernel
diff options
context:
space:
mode:
authorAndreas Kling <awesomekling@gmail.com>2019-07-13 20:43:38 +0200
committerAndreas Kling <awesomekling@gmail.com>2019-07-13 20:43:38 +0200
commit02c3c737f66fd9f737d46df560abd46d6fd3e6cd (patch)
treeff3e7507f1642438517d10995ee3f80eb5f38e0b /Kernel
parenteec96667357719ec11275ba21d701b851f24d29d (diff)
downloadserenity-02c3c737f66fd9f737d46df560abd46d6fd3e6cd.zip
SB16: IRQ handler should send 0xd5 to pause 16-bit playback.
We were sending 0xd0 to pause 8-bit playback. Not sure if this actually makes any difference but it seems like the correct thing to do. Also update 'm_interrupted' *after* handling things.
Diffstat (limited to 'Kernel')
-rw-r--r--Kernel/Devices/SB16.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/Kernel/Devices/SB16.cpp b/Kernel/Devices/SB16.cpp
index 141f01ade3..a5d602b47a 100644
--- a/Kernel/Devices/SB16.cpp
+++ b/Kernel/Devices/SB16.cpp
@@ -66,14 +66,14 @@ SB16& SB16::the()
void SB16::handle_irq()
{
- m_interrupted = true;
-
// Stop sound output ready for the next block.
- dsp_write(0xd0);
+ dsp_write(0xd5);
IO::in8(DSP_STATUS); // 8 bit interrupt
if (m_major_version >= 4)
IO::in8(DSP_R_ACK); // 16 bit interrupt
+
+ m_interrupted = true;
}
void SB16::initialize()