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()
138 struct g2d_ctx *ctx = vb2_get_drv_priv(vb->vb2_queue); in g2d_buf_queue() local
139 v4l2_m2m_buf_queue(ctx->fh.m2m_ctx, vbuf); in g2d_buf_queue()
151 struct g2d_ctx *ctx = priv; in queue_init() local
156 src_vq->drv_priv = ctx; in queue_init()
161 src_vq->lock = &ctx->dev->mutex; in queue_init()
169 dst_vq->drv_priv = ctx; in queue_init()
174 dst_vq->lock = &ctx->dev->mutex; in queue_init()
181 struct g2d_ctx *ctx = container_of(ctrl->handler, struct g2d_ctx, in g2d_s_ctrl() local
185 spin_lock_irqsave(&ctx->dev->ctrl_lock, flags); in g2d_s_ctrl()
189 ctx->rop = ROP4_INVERT; in g2d_s_ctrl()
191 ctx->rop = ROP4_COPY; in g2d_s_ctrl()
195 ctx->flip = ctx->ctrl_hflip->val | (ctx->ctrl_vflip->val << 1); in g2d_s_ctrl()
199 spin_unlock_irqrestore(&ctx->dev->ctrl_lock, flags); in g2d_s_ctrl()
207 static int g2d_setup_ctrls(struct g2d_ctx *ctx) in g2d_setup_ctrls() argument
209 struct g2d_dev *dev = ctx->dev; in g2d_setup_ctrls()
211 v4l2_ctrl_handler_init(&ctx->ctrl_handler, 3); in g2d_setup_ctrls()
213 ctx->ctrl_hflip = v4l2_ctrl_new_std(&ctx->ctrl_handler, &g2d_ctrl_ops, in g2d_setup_ctrls()
216 ctx->ctrl_vflip = v4l2_ctrl_new_std(&ctx->ctrl_handler, &g2d_ctrl_ops, in g2d_setup_ctrls()
220 &ctx->ctrl_handler, in g2d_setup_ctrls()
227 if (ctx->ctrl_handler.error) { in g2d_setup_ctrls()
228 int err = ctx->ctrl_handler.error; in g2d_setup_ctrls()
230 v4l2_ctrl_handler_free(&ctx->ctrl_handler); in g2d_setup_ctrls()
234 v4l2_ctrl_cluster(2, &ctx->ctrl_hflip); in g2d_setup_ctrls()
242 struct g2d_ctx *ctx = NULL; in g2d_open() local
245 ctx = kzalloc(sizeof(*ctx), GFP_KERNEL); in g2d_open()
246 if (!ctx) in g2d_open()
248 ctx->dev = dev; in g2d_open()
250 ctx->in = def_frame; in g2d_open()
251 ctx->out = def_frame; in g2d_open()
254 kfree(ctx); in g2d_open()
257 ctx->fh.m2m_ctx = v4l2_m2m_ctx_init(dev->m2m_dev, ctx, &queue_init); in g2d_open()
258 if (IS_ERR(ctx->fh.m2m_ctx)) { in g2d_open()
259 ret = PTR_ERR(ctx->fh.m2m_ctx); in g2d_open()
261 kfree(ctx); in g2d_open()
264 v4l2_fh_init(&ctx->fh, video_devdata(file)); in g2d_open()
265 file->private_data = &ctx->fh; in g2d_open()
266 v4l2_fh_add(&ctx->fh); in g2d_open()
268 g2d_setup_ctrls(ctx); in g2d_open()
271 v4l2_ctrl_handler_setup(&ctx->ctrl_handler); in g2d_open()
273 ctx->fh.ctrl_handler = &ctx->ctrl_handler; in g2d_open()
283 struct g2d_ctx *ctx = fh2ctx(file->private_data); in g2d_release() local
285 v4l2_ctrl_handler_free(&ctx->ctrl_handler); in g2d_release()
286 v4l2_fh_del(&ctx->fh); in g2d_release()
287 v4l2_fh_exit(&ctx->fh); in g2d_release()
288 kfree(ctx); in g2d_release()
318 struct g2d_ctx *ctx = prv; in vidioc_g_fmt() local
322 vq = v4l2_m2m_get_vq(ctx->fh.m2m_ctx, f->type); in vidioc_g_fmt()
325 frm = get_frame(ctx, f->type); in vidioc_g_fmt()
370 struct g2d_ctx *ctx = prv; in vidioc_s_fmt() local
371 struct g2d_dev *dev = ctx->dev; in vidioc_s_fmt()
382 vq = v4l2_m2m_get_vq(ctx->fh.m2m_ctx, f->type); in vidioc_s_fmt()
387 frm = get_frame(ctx, f->type); in vidioc_s_fmt()
411 struct g2d_ctx *ctx = priv; in vidioc_cropcap() local
414 f = get_frame(ctx, cr->type); in vidioc_cropcap()
428 struct g2d_ctx *ctx = prv; in vidioc_g_crop() local
431 f = get_frame(ctx, cr->type); in vidioc_g_crop()
444 struct g2d_ctx *ctx = prv; in vidioc_try_crop() local
445 struct g2d_dev *dev = ctx->dev; in vidioc_try_crop()
448 f = get_frame(ctx, cr->type); in vidioc_try_crop()
463 struct g2d_ctx *ctx = prv; in vidioc_s_crop() local
470 f = get_frame(ctx, cr->type); in vidioc_s_crop()
485 struct g2d_ctx *ctx = prv; in job_abort() local
486 struct g2d_dev *dev = ctx->dev; in job_abort()
498 struct g2d_ctx *ctx = prv; in device_run() local
499 struct g2d_dev *dev = ctx->dev; in device_run()
504 dev->curr = ctx; in device_run()
506 src = v4l2_m2m_next_src_buf(ctx->fh.m2m_ctx); in device_run()
507 dst = v4l2_m2m_next_dst_buf(ctx->fh.m2m_ctx); in device_run()
514 g2d_set_src_size(dev, &ctx->in); in device_run()
517 g2d_set_dst_size(dev, &ctx->out); in device_run()
520 g2d_set_rop4(dev, ctx->rop); in device_run()
521 g2d_set_flip(dev, ctx->flip); in device_run()
523 if (ctx->in.c_width != ctx->out.c_width || in device_run()
524 ctx->in.c_height != ctx->out.c_height) { in device_run()
528 g2d_set_v41_stretch(dev, &ctx->in, &ctx->out); in device_run()
540 struct g2d_ctx *ctx = dev->curr; in g2d_isr() local
546 BUG_ON(ctx == NULL); in g2d_isr()
548 src = v4l2_m2m_src_buf_remove(ctx->fh.m2m_ctx); in g2d_isr()
549 dst = v4l2_m2m_dst_buf_remove(ctx->fh.m2m_ctx); in g2d_isr()
562 v4l2_m2m_job_finish(dev->m2m_dev, ctx->fh.m2m_ctx); in g2d_isr()