static void i8237A_resume(void) { unsigned long flags; int i; flags = claim_dma_lock(); dma_outb(0, DMA1_RESET_REG); dma_outb(0, DMA2_RESET_REG); for (i = 0; i < 8; i++) { set_dma_addr(i, 0x000000); set_dma_count(i, 1); } enable_dma(4); release_dma_lock(flags); }
void init_IRQ(void) { wrent(entInt, 0); dma_outb(0, DMA1_RESET_REG); dma_outb(0, DMA2_RESET_REG); dma_outb(0, DMA1_CLR_MASK_REG); dma_outb(0, DMA2_CLR_MASK_REG); #if NR_IRQS == 48 *(unsigned int *)GRU_INT_MASK = ~(irq_mask >> 16); mb();/* invert */ enable_irq(16 + 31); /* enable (E)ISA PIC cascade */ #elif NR_IRQS == 33 outl(irq_mask >> 16, 0x804); enable_irq(16 + 4); /* enable SIO cascade */ #elif defined(CONFIG_ALPHA_MIKASA) outw(~(irq_mask >> 16), 0x536); /* note invert */ #elif NR_IRQS == 32 outb(irq_mask >> 16, 0x26); outb(irq_mask >> 24, 0x27); enable_irq(16 + 5); /* enable SIO cascade */ #endif enable_irq(2); /* enable cascade */ }