Lines Matching refs:ctx
91 static struct g2d_frame *get_frame(struct g2d_ctx *ctx, in get_frame() argument
96 return &ctx->in; in get_frame()
98 return &ctx->out; in get_frame()
108 struct g2d_ctx *ctx = vb2_get_drv_priv(vq); in g2d_queue_setup() local
109 struct g2d_frame *f = get_frame(ctx, vq->type); in g2d_queue_setup()
116 alloc_ctxs[0] = ctx->dev->alloc_ctx; in g2d_queue_setup()
126 struct g2d_ctx *ctx = vb2_get_drv_priv(vb->vb2_queue); in g2d_buf_prepare() local
127 struct g2d_frame *f = get_frame(ctx, vb->vb2_queue->type); in g2d_buf_prepare()
137 struct g2d_ctx *ctx = vb2_get_drv_priv(vb->vb2_queue); in g2d_buf_queue() local
138 v4l2_m2m_buf_queue(ctx->fh.m2m_ctx, vb); in g2d_buf_queue()
150 struct g2d_ctx *ctx = priv; in queue_init() local
155 src_vq->drv_priv = ctx; in queue_init()
160 src_vq->lock = &ctx->dev->mutex; in queue_init()
168 dst_vq->drv_priv = ctx; in queue_init()
173 dst_vq->lock = &ctx->dev->mutex; in queue_init()
180 struct g2d_ctx *ctx = container_of(ctrl->handler, struct g2d_ctx, in g2d_s_ctrl() local
184 spin_lock_irqsave(&ctx->dev->ctrl_lock, flags); in g2d_s_ctrl()
188 ctx->rop = ROP4_INVERT; in g2d_s_ctrl()
190 ctx->rop = ROP4_COPY; in g2d_s_ctrl()
194 ctx->flip = ctx->ctrl_hflip->val | (ctx->ctrl_vflip->val << 1); in g2d_s_ctrl()
198 spin_unlock_irqrestore(&ctx->dev->ctrl_lock, flags); in g2d_s_ctrl()
206 static int g2d_setup_ctrls(struct g2d_ctx *ctx) in g2d_setup_ctrls() argument
208 struct g2d_dev *dev = ctx->dev; in g2d_setup_ctrls()
210 v4l2_ctrl_handler_init(&ctx->ctrl_handler, 3); in g2d_setup_ctrls()
212 ctx->ctrl_hflip = v4l2_ctrl_new_std(&ctx->ctrl_handler, &g2d_ctrl_ops, in g2d_setup_ctrls()
215 ctx->ctrl_vflip = v4l2_ctrl_new_std(&ctx->ctrl_handler, &g2d_ctrl_ops, in g2d_setup_ctrls()
219 &ctx->ctrl_handler, in g2d_setup_ctrls()
226 if (ctx->ctrl_handler.error) { in g2d_setup_ctrls()
227 int err = ctx->ctrl_handler.error; in g2d_setup_ctrls()
229 v4l2_ctrl_handler_free(&ctx->ctrl_handler); in g2d_setup_ctrls()
233 v4l2_ctrl_cluster(2, &ctx->ctrl_hflip); in g2d_setup_ctrls()
241 struct g2d_ctx *ctx = NULL; in g2d_open() local
244 ctx = kzalloc(sizeof(*ctx), GFP_KERNEL); in g2d_open()
245 if (!ctx) in g2d_open()
247 ctx->dev = dev; in g2d_open()
249 ctx->in = def_frame; in g2d_open()
250 ctx->out = def_frame; in g2d_open()
253 kfree(ctx); in g2d_open()
256 ctx->fh.m2m_ctx = v4l2_m2m_ctx_init(dev->m2m_dev, ctx, &queue_init); in g2d_open()
257 if (IS_ERR(ctx->fh.m2m_ctx)) { in g2d_open()
258 ret = PTR_ERR(ctx->fh.m2m_ctx); in g2d_open()
260 kfree(ctx); in g2d_open()
263 v4l2_fh_init(&ctx->fh, video_devdata(file)); in g2d_open()
264 file->private_data = &ctx->fh; in g2d_open()
265 v4l2_fh_add(&ctx->fh); in g2d_open()
267 g2d_setup_ctrls(ctx); in g2d_open()
270 v4l2_ctrl_handler_setup(&ctx->ctrl_handler); in g2d_open()
272 ctx->fh.ctrl_handler = &ctx->ctrl_handler; in g2d_open()
282 struct g2d_ctx *ctx = fh2ctx(file->private_data); in g2d_release() local
284 v4l2_ctrl_handler_free(&ctx->ctrl_handler); in g2d_release()
285 v4l2_fh_del(&ctx->fh); in g2d_release()
286 v4l2_fh_exit(&ctx->fh); in g2d_release()
287 kfree(ctx); in g2d_release()
317 struct g2d_ctx *ctx = prv; in vidioc_g_fmt() local
321 vq = v4l2_m2m_get_vq(ctx->fh.m2m_ctx, f->type); in vidioc_g_fmt()
324 frm = get_frame(ctx, f->type); in vidioc_g_fmt()
369 struct g2d_ctx *ctx = prv; in vidioc_s_fmt() local
370 struct g2d_dev *dev = ctx->dev; in vidioc_s_fmt()
381 vq = v4l2_m2m_get_vq(ctx->fh.m2m_ctx, f->type); in vidioc_s_fmt()
386 frm = get_frame(ctx, f->type); in vidioc_s_fmt()
410 struct g2d_ctx *ctx = priv; in vidioc_cropcap() local
413 f = get_frame(ctx, cr->type); in vidioc_cropcap()
427 struct g2d_ctx *ctx = prv; in vidioc_g_crop() local
430 f = get_frame(ctx, cr->type); in vidioc_g_crop()
443 struct g2d_ctx *ctx = prv; in vidioc_try_crop() local
444 struct g2d_dev *dev = ctx->dev; in vidioc_try_crop()
447 f = get_frame(ctx, cr->type); in vidioc_try_crop()
462 struct g2d_ctx *ctx = prv; in vidioc_s_crop() local
469 f = get_frame(ctx, cr->type); in vidioc_s_crop()
484 struct g2d_ctx *ctx = prv; in job_abort() local
485 struct g2d_dev *dev = ctx->dev; in job_abort()
497 struct g2d_ctx *ctx = prv; in device_run() local
498 struct g2d_dev *dev = ctx->dev; in device_run()
503 dev->curr = ctx; in device_run()
505 src = v4l2_m2m_next_src_buf(ctx->fh.m2m_ctx); in device_run()
506 dst = v4l2_m2m_next_dst_buf(ctx->fh.m2m_ctx); in device_run()
513 g2d_set_src_size(dev, &ctx->in); in device_run()
516 g2d_set_dst_size(dev, &ctx->out); in device_run()
519 g2d_set_rop4(dev, ctx->rop); in device_run()
520 g2d_set_flip(dev, ctx->flip); in device_run()
522 if (ctx->in.c_width != ctx->out.c_width || in device_run()
523 ctx->in.c_height != ctx->out.c_height) { in device_run()
527 g2d_set_v41_stretch(dev, &ctx->in, &ctx->out); in device_run()
539 struct g2d_ctx *ctx = dev->curr; in g2d_isr() local
545 BUG_ON(ctx == NULL); in g2d_isr()
547 src = v4l2_m2m_src_buf_remove(ctx->fh.m2m_ctx); in g2d_isr()
548 dst = v4l2_m2m_dst_buf_remove(ctx->fh.m2m_ctx); in g2d_isr()
561 v4l2_m2m_job_finish(dev->m2m_dev, ctx->fh.m2m_ctx); in g2d_isr()