diff options
author | Andreas Kling <awesomekling@gmail.com> | 2019-07-13 20:43:38 +0200 |
---|---|---|
committer | Andreas Kling <awesomekling@gmail.com> | 2019-07-13 20:43:38 +0200 |
commit | 02c3c737f66fd9f737d46df560abd46d6fd3e6cd (patch) | |
tree | ff3e7507f1642438517d10995ee3f80eb5f38e0b /Kernel | |
parent | eec96667357719ec11275ba21d701b851f24d29d (diff) | |
download | serenity-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.cpp | 6 |
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() |