- uint32_t irq_ch = (status & dmac_ch_enabled) & 0xFF;
- //kprintf(" %08lx %08lx\n", status, irq_ch);
- if (irq_ch)
- for(int i = 0; i < 8; i++)
- {
- if (BV(i) & irq_ch)
- if(dmac[i].handler)
- dmac[i].handler();
- }
-/*
- irq_ch = (status & (dmac_ch_enabled << DMAC_EBCIDR_CBTC0)) >> DMAC_EBCIDR_CBTC0;
- //kprintf("c %08lx %08lx\n", status, irq_ch);
+ uint32_t irq_ch = (status & (((dmac_ch_enabled |
+ (dmac_ch_enabled << DMAC_EBCIDR_ERR0) >> DMAC_EBCIDR_ERR0) |
+ (dmac_ch_enabled << DMAC_EBCIDR_CBTC0) >> DMAC_EBCIDR_CBTC0) & 0xFF));