1.1 --- a/pkg/devices/lib/dma/src/jz4780.cc Fri Nov 10 22:30:03 2023 +0100
1.2 +++ b/pkg/devices/lib/dma/src/jz4780.cc Fri Nov 10 22:30:39 2023 +0100
1.3 @@ -393,7 +393,10 @@
1.4 bool
1.5 Dma_jz4780_channel::wait_for_irq()
1.6 {
1.7 - return !l4_error(l4_irq_receive(_irq, L4_IPC_NEVER)) && _chip->have_interrupt(_channel);
1.8 + if (l4_is_valid_cap(_irq))
1.9 + return !l4_error(l4_irq_receive(_irq, L4_IPC_NEVER)) && _chip->have_interrupt(_channel);
1.10 + else
1.11 + return true;
1.12 }
1.13
1.14 // Wait up to the given timeout (in microseconds) for an interrupt request,
1.15 @@ -402,7 +405,10 @@
1.16 bool
1.17 Dma_jz4780_channel::wait_for_irq(unsigned int timeout)
1.18 {
1.19 - return !l4_error(l4_irq_receive(_irq, l4_timeout(L4_IPC_TIMEOUT_NEVER, l4util_micros2l4to(timeout)))) && _chip->have_interrupt(_channel);
1.20 + if (l4_is_valid_cap(_irq))
1.21 + return !l4_error(l4_irq_receive(_irq, l4_timeout(L4_IPC_TIMEOUT_NEVER, l4util_micros2l4to(timeout)))) && _chip->have_interrupt(_channel);
1.22 + else
1.23 + return true;
1.24 }
1.25
1.26 // Acknowledge an interrupt condition.