static inline void fimc_irq_out(struct fimc_control *ctrl) { u32 wakeup = 1; #ifdef VIEW_FUNCTION_CALL printk("[FIMC_DEV] %s(%d)\n", __func__, __LINE__); #endif /* Interrupt pendding clear */ fimc_hwset_clear_irq(ctrl); if (ctrl->out->fbuf.base) wakeup = fimc_irq_out_dma(ctrl); else if (ctrl->status != FIMC_READY_OFF) wakeup = fimc_irq_out_fimd(ctrl); if (wakeup == 1) wake_up_interruptible(&ctrl->wq); }
static inline void fimc_irq_out(struct fimc_control *ctrl) { u32 wakeup = 1; /* Interrupt pendding clear */ fimc_hwset_clear_irq(ctrl); switch (ctrl->out->overlay.mode) { case FIMC_OVERLAY_NONE: wakeup = fimc_irq_out_none(ctrl); break; case FIMC_OVERLAY_DMA_AUTO: case FIMC_OVERLAY_DMA_MANUAL: wakeup = fimc_irq_out_dma(ctrl); break; case FIMC_OVERLAY_FIFO: if (ctrl->status != FIMC_READY_OFF) wakeup = fimc_irq_out_fimd(ctrl); break; } if (wakeup == 1) wake_up(&ctrl->wq); }