static void fimg2d_request_bitblt(struct fimg2d_context *ctx) { if (!atomic_read(&info->active)) { atomic_set(&info->active, 1); fimg2d_debug("dispatch ctx %p to kernel thread\n", ctx); queue_work(info->work_q, &fimg2d_work); } fimg2d_context_wait(ctx); }
static int fimg2d_request_bitblt(struct fimg2d_control *ctrl, struct fimg2d_context *ctx) { #ifdef BLIT_WORKQUE unsigned long flags; g2d_spin_lock(&ctrl->bltlock, flags); fimg2d_debug("dispatch ctx %p to kernel thread\n", ctx); queue_work(ctrl->work_q, &fimg2d_work); g2d_spin_unlock(&ctrl->bltlock, flags); return fimg2d_context_wait(ctx); #else return fimg2d_do_bitblt(ctrl); #endif }