コード例 #1
0
ファイル: g2d_drv.c プロジェクト: wufuyue/TCL_S820
static irqreturn_t g2d_drv_isr(int irq, void *dev_id)
{
    for(;;)
    {
        if (!g2d_drv_get_status()) break;
        G2D_DBG("handle interrupt, status : %d\n", g2d_drv_get_status());
    }
    wake_up_interruptible(&isr_wait_queue);

    return IRQ_HANDLED;
}
コード例 #2
0
void _g2d_command_handler(g2d_command_t *cmd)
{
    G2D_DBG("start to handle command\n");

#ifdef G2D_QUEUE
    if (cmd->ctx.end_of_frame)
    {
        g2d_drv_fb_queue_buffer(cmd->ctx.fb_id);
        up(&cmd->lock);
        return;
    }
#endif

    g2d_drv_power_on();

    g2d_drv_run(&cmd->ctx);

    wait_event_interruptible(isr_wait_queue, !g2d_drv_get_status());

#ifdef G2D_DEBUG
    _g2d_reg_dump();
#endif

    g2d_drv_power_off();

    G2D_DBG("handle command done\n");

#ifdef G2D_QUEUE
    up(&cmd->lock);
#endif
}