static void gpio_irq_handler(unsigned int irq, struct irq_desc *desc) { int irqoff; BUG_ON(irq < IRQ_DOVE_GPIO_0_7 || irq > IRQ_DOVE_HIGH_GPIO); irqoff = irq <= IRQ_DOVE_GPIO_16_23 ? irq - IRQ_DOVE_GPIO_0_7 : 3 + irq - IRQ_DOVE_GPIO_24_31; orion_gpio_irq_handler(irqoff << 3); if (irq == IRQ_DOVE_HIGH_GPIO) { orion_gpio_irq_handler(40); orion_gpio_irq_handler(48); orion_gpio_irq_handler(56); } }
static void gpio_irq_handler(unsigned int irq, struct irq_desc *desc) { BUG_ON(irq < IRQ_KIRKWOOD_GPIO_LOW_0_7); BUG_ON(irq > IRQ_KIRKWOOD_GPIO_HIGH_16_23); orion_gpio_irq_handler((irq - IRQ_KIRKWOOD_GPIO_LOW_0_7) << 3); }
static void gpio_irq_handler(unsigned int irq, struct irq_desc *desc) { BUG_ON(irq < IRQ_MV78XX0_GPIO_0_7 || irq > IRQ_MV78XX0_GPIO_24_31); orion_gpio_irq_handler((irq - IRQ_MV78XX0_GPIO_0_7) << 3); }