libaudiodriver: handle interrupt only once
Apparently, qemu's sb16 doesn't reset the interrupt register of the mixer and the driver ends up in an endless loop when playing a "multi-fragment" sample. Change-Id: I47633b99a0d79ba201aec785da69fb3950e026bf
This commit is contained in:
parent
b026d9f946
commit
842c4eda7f
1 changed files with 7 additions and 10 deletions
|
@ -607,8 +607,6 @@ static void msg_hardware(void) {
|
|||
|
||||
u32_t i;
|
||||
|
||||
/* while we have an interrupt */
|
||||
while ( drv_int_sum()) {
|
||||
/* loop over all sub devices */
|
||||
for ( i = 0; i < drv.NrOfSubDevices; i++) {
|
||||
/* if interrupt from sub device and Dma transfer
|
||||
|
@ -618,7 +616,6 @@ static void msg_hardware(void) {
|
|||
if (sub_dev[i].DmaMode == DEV_READ_S) handle_int_read(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* As IRQ_REENABLE is not on in sys_irqsetpolicy, we must
|
||||
* re-enable out interrupt after every interrupt.
|
||||
|
|
Loading…
Reference in a new issue