mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 12:47:35 +00:00
parent
689ad0752c
commit
497180a650
1 changed files with 4 additions and 2 deletions
|
@ -69,9 +69,12 @@ bool AC97::handle_irq(RegisterState const&)
|
||||||
bool is_completion_interrupt = (pcm_out_status & AudioStatusRegisterFlag::BufferCompletionInterruptStatus) > 0;
|
bool is_completion_interrupt = (pcm_out_status & AudioStatusRegisterFlag::BufferCompletionInterruptStatus) > 0;
|
||||||
bool is_fifo_error = (pcm_out_status & AudioStatusRegisterFlag::FIFOError) > 0;
|
bool is_fifo_error = (pcm_out_status & AudioStatusRegisterFlag::FIFOError) > 0;
|
||||||
|
|
||||||
VERIFY(is_completion_interrupt);
|
|
||||||
VERIFY(!is_fifo_error);
|
VERIFY(!is_fifo_error);
|
||||||
|
|
||||||
|
// If there is no buffer completion, we're not going to do anything
|
||||||
|
if (!is_completion_interrupt)
|
||||||
|
return false;
|
||||||
|
|
||||||
// On interrupt, we need to reset PCM interrupt flags by setting their bits
|
// On interrupt, we need to reset PCM interrupt flags by setting their bits
|
||||||
pcm_out_status = AudioStatusRegisterFlag::LastValidBufferCompletionInterrupt
|
pcm_out_status = AudioStatusRegisterFlag::LastValidBufferCompletionInterrupt
|
||||||
| AudioStatusRegisterFlag::BufferCompletionInterruptStatus
|
| AudioStatusRegisterFlag::BufferCompletionInterruptStatus
|
||||||
|
@ -84,7 +87,6 @@ bool AC97::handle_irq(RegisterState const&)
|
||||||
} else {
|
} else {
|
||||||
m_irq_queue.wake_all();
|
m_irq_queue.wake_all();
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue