static void cmx2xx_it8152_irq_demux(unsigned int irq, struct irq_desc *desc) { GEDR(cmx2xx_it8152_irq_gpio) = GPIO_bit(cmx2xx_it8152_irq_gpio); it8152_irq_demux(irq, desc); }
static void cmx270_it8152_irq_demux(unsigned int irq, struct irq_desc *desc) { /* clear our parent irq */ GEDR(GPIO_IT8152_IRQ) = GPIO_bit(GPIO_IT8152_IRQ); it8152_irq_demux(irq, desc); }
static void lubbock_irq_handler(unsigned int irq, struct irq_desc *desc) { unsigned long pending = LUB_IRQ_SET_CLR & lubbock_irq_enabled; do { GEDR(0) = GPIO_bit(0); /* clear our parent irq */ if (likely(pending)) { irq = LUBBOCK_IRQ(0) + __ffs(pending); generic_handle_irq(irq); } pending = LUB_IRQ_SET_CLR & lubbock_irq_enabled; } while (pending); }
static void mainstone_irq_handler(unsigned int irq, struct irq_desc *desc) { unsigned long pending = MST_INTSETCLR & mainstone_irq_enabled; do { GEDR(0) = GPIO_bit(0); /* clear useless edge notification */ if (likely(pending)) { irq = MAINSTONE_IRQ(0) + __ffs(pending); generic_handle_irq(irq); } pending = MST_INTSETCLR & mainstone_irq_enabled; } while (pending); }
static void yf255_irq_handler(unsigned int irq, struct irq_desc *desc) { unsigned long pending = YF255_IRQ_SET_CLR & yf255_irq_enabled; do { GEDR(0) = GPIO_bit(0); /* clear our parent irq */ if (likely(pending)) { irq = YF255_IRQ(0) + __ffs(pending); desc = irq_desc + irq; desc_handle_irq(irq, desc); } pending = YF255_IRQ_SET_CLR & yf255_irq_enabled; } while (pending); }
static void lubbock_irq_handler(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs) { unsigned long pending = LUB_IRQ_SET_CLR & lubbock_irq_enabled; do { GEDR(0) = GPIO_bit(0); /* clear our parent irq */ if (likely(pending)) { irq = LUBBOCK_IRQ(0) + __ffs(pending); desc = irq_desc + irq; desc->handle(irq, desc, regs); } pending = LUB_IRQ_SET_CLR & lubbock_irq_enabled; } while (pending); }
static void mainstone_irq_handler(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs) { unsigned long pending = MST_INTSETCLR & mainstone_irq_enabled; do { GEDR(0) = GPIO_bit(0); /* clear useless edge notification */ if (likely(pending)) { irq = MAINSTONE_IRQ(0) + __ffs(pending); desc = irq_desc + irq; desc->handle(irq, desc, regs); } pending = MST_INTSETCLR & mainstone_irq_enabled; } while (pending); }
static void pcm990_irq_handler(unsigned int irq, struct irq_desc *desc) { unsigned long pending = (~PCM990_INTSETCLR) & pcm990_irq_enabled; do { GEDR(PCM990_CTRL_INT_IRQ_GPIO) = GPIO_bit(PCM990_CTRL_INT_IRQ_GPIO); if (likely(pending)) { irq = PCM027_IRQ(0) + __ffs(pending); desc = irq_desc + irq; desc_handle_irq(irq, desc); } pending = (~PCM990_INTSETCLR) & pcm990_irq_enabled; } while (pending); }
static void lpd270_irq_handler(unsigned int irq, struct irq_desc *desc) { unsigned long pending; pending = __raw_readw(LPD270_INT_STATUS) & lpd270_irq_enabled; do { GEDR(0) = GPIO_bit(0); /* clear useless edge notification */ if (likely(pending)) { irq = LPD270_IRQ(0) + __ffs(pending); desc = irq_desc + irq; desc_handle_irq(irq, desc); pending = __raw_readw(LPD270_INT_STATUS) & lpd270_irq_enabled; } } while (pending); }
static void pxa_ack_muxed_gpio(unsigned int irq) { int gpio = irq - IRQ_GPIO(2) + 2; GEDR(gpio) = GPIO_bit(gpio); }