static inline void fimg2d4x_blit_wait(struct fimg2d_control *info, struct fimg2d_bltcmd *cmd) { if (!wait_event_timeout(info->wait_q, !atomic_read(&info->busy), BLIT_TIMEOUT)) { printk(KERN_ERR "[%s] blit wait timeout\n", __func__); fimg2d_dump_command(cmd); if (!fimg2d4x_blit_done_status(info)) info->err = true; /* device error */ } }
static inline void fimg2d4x_blit_wait(struct fimg2d_control *info, struct fimg2d_bltcmd *cmd) { if (!wait_event_timeout(info->wait_q, !atomic_read(&info->busy), BLIT_TIMEOUT)) { printk(KERN_ERR "[%s] blit wait timeout\n", __func__); fimg2d_dump_command(cmd); if (!fimg2d4x_blit_done_status(info)) printk(KERN_ERR "[%s] G2D operation is not finished", __func__); fimg2d4x_sw_reset(info); } }
static int fimg2d4x_blit_wait(struct fimg2d_control *ctrl, struct fimg2d_bltcmd *cmd) { int ret; ret = wait_event_timeout(ctrl->wait_q, !atomic_read(&ctrl->busy), BLIT_TIMEOUT); if (!ret) { fimg2d4x_disable_irq(ctrl); fimg2d_err("blit wait timeout\n"); if (!fimg2d4x_blit_done_status(ctrl)) fimg2d_err("blit not finished\n"); fimg2d_dump_command(cmd); fimg2d4x_reset(ctrl); return -1; } return 0; }