static void enable_gpio_irq(unsigned int irq) { unsigned int intc_irq; if (irq < (IRQ_GPIO_0 + 32)) { intc_irq = IRQ_GPIO0; } else if (irq < (IRQ_GPIO_0 + 64)) { intc_irq = IRQ_GPIO1; } else if (irq < (IRQ_GPIO_0 + 96)) { intc_irq = IRQ_GPIO2; } else if (irq < (IRQ_GPIO_0 + 128)) { intc_irq = IRQ_GPIO3; } else if (irq < (IRQ_GPIO_0 + 160)) { intc_irq = IRQ_GPIO4; } else { intc_irq = IRQ_GPIO5; } enable_intc_irq(intc_irq); __gpio_unmask_irq(irq - IRQ_GPIO_0); }
static unsigned int startup_intc_irq(unsigned int irq) { enable_intc_irq(irq); return 0; }
static void end_intc_irq(unsigned int irq) { if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS))) { enable_intc_irq(irq); } }