/*! * zasevb_gpio_int_hndlr() - gpio interrupt handler * @param irq * @param dev_id * @param regs * @return interrupt handler status * This disables the gpio interrup and schedules the isp1301 bottom half handler. * */ static irqreturn_t zasevb_gpio_int_hndlr (int irq, void *dev_id, struct pt_regs *regs) { disable_irq(irq); zasevb_int_disabled = TRUE; TRACE_MSG0(REMOVE_TCD, "ZASEVB GPIO INTERRUPT: SCHEDULE WORK"); isp1301_bh_wakeup(REMOVE_tcd_instance->otg, FALSE); return IRQ_HANDLED; }
/*! * zasevb_gpio_int_hndlr() - gpio interrupt handler * @param irq * @param dev_id * @param regs * @return interrupt handler status * This disables the gpio interrup and schedules the isp1301 bottom half handler. * */ static irqreturn_t zasevb_gpio_int_hndlr (int irq, void *dev_id, struct pt_regs *regs) { gpio_config_int_en(ZGPIO_PORT, ZGPIO_PIN, FALSE); TRACE_MSG0(TCD, "ZASEVB GPIO INTERRUPT: SCHEDULE WORK"); isp1301_bh_wakeup(FALSE); return IRQ_HANDLED; }