Lines Matching refs:vsen

110 	struct vimc_sen_device *vsen =  in vimc_sen_get_fmt()  local
115 vsen->mbus_format; in vimc_sen_get_fmt()
120 static void vimc_sen_tpg_s_format(struct vimc_sen_device *vsen) in vimc_sen_tpg_s_format() argument
123 vimc_pix_map_by_code(vsen->mbus_format.code); in vimc_sen_tpg_s_format()
125 tpg_reset_source(&vsen->tpg, vsen->mbus_format.width, in vimc_sen_tpg_s_format()
126 vsen->mbus_format.height, vsen->mbus_format.field); in vimc_sen_tpg_s_format()
127 tpg_s_bytesperline(&vsen->tpg, 0, vsen->mbus_format.width * vpix->bpp); in vimc_sen_tpg_s_format()
128 tpg_s_buf_height(&vsen->tpg, vsen->mbus_format.height); in vimc_sen_tpg_s_format()
129 tpg_s_fourcc(&vsen->tpg, vpix->pixelformat); in vimc_sen_tpg_s_format()
131 tpg_s_field(&vsen->tpg, vsen->mbus_format.field, false); in vimc_sen_tpg_s_format()
132 tpg_s_colorspace(&vsen->tpg, vsen->mbus_format.colorspace); in vimc_sen_tpg_s_format()
133 tpg_s_ycbcr_enc(&vsen->tpg, vsen->mbus_format.ycbcr_enc); in vimc_sen_tpg_s_format()
134 tpg_s_quantization(&vsen->tpg, vsen->mbus_format.quantization); in vimc_sen_tpg_s_format()
135 tpg_s_xfer_func(&vsen->tpg, vsen->mbus_format.xfer_func); in vimc_sen_tpg_s_format()
163 struct vimc_sen_device *vsen = v4l2_get_subdevdata(sd); in vimc_sen_set_fmt() local
168 if (vsen->frame) in vimc_sen_set_fmt()
171 mf = &vsen->mbus_format; in vimc_sen_set_fmt()
179 dev_dbg(vsen->dev, "%s: format update: " in vimc_sen_set_fmt()
181 "new:%dx%d (0x%x, %d, %d, %d, %d)\n", vsen->sd.name, in vimc_sen_set_fmt()
206 struct vimc_sen_device *vsen = data; in vimc_sen_tpg_thread() local
217 tpg_fill_plane_buffer(&vsen->tpg, 0, 0, vsen->frame); in vimc_sen_tpg_thread()
220 for (i = 0; i < vsen->sd.entity.num_pads; i++) in vimc_sen_tpg_thread()
221 vimc_propagate_frame(&vsen->sd.entity.pads[i], in vimc_sen_tpg_thread()
222 vsen->frame); in vimc_sen_tpg_thread()
233 struct vimc_sen_device *vsen = in vimc_sen_s_stream() local
241 if (vsen->kthread_sen) in vimc_sen_s_stream()
246 vpix = vimc_pix_map_by_code(vsen->mbus_format.code); in vimc_sen_s_stream()
247 frame_size = vsen->mbus_format.width * vpix->bpp * in vimc_sen_s_stream()
248 vsen->mbus_format.height; in vimc_sen_s_stream()
254 vsen->frame = vmalloc(frame_size); in vimc_sen_s_stream()
255 if (!vsen->frame) in vimc_sen_s_stream()
259 vimc_sen_tpg_s_format(vsen); in vimc_sen_s_stream()
262 vsen->kthread_sen = kthread_run(vimc_sen_tpg_thread, vsen, in vimc_sen_s_stream()
263 "%s-sen", vsen->sd.v4l2_dev->name); in vimc_sen_s_stream()
264 if (IS_ERR(vsen->kthread_sen)) { in vimc_sen_s_stream()
265 dev_err(vsen->dev, "%s: kernel_thread() failed\n", in vimc_sen_s_stream()
266 vsen->sd.name); in vimc_sen_s_stream()
267 vfree(vsen->frame); in vimc_sen_s_stream()
268 vsen->frame = NULL; in vimc_sen_s_stream()
269 return PTR_ERR(vsen->kthread_sen); in vimc_sen_s_stream()
272 if (!vsen->kthread_sen) in vimc_sen_s_stream()
276 ret = kthread_stop(vsen->kthread_sen); in vimc_sen_s_stream()
280 vsen->kthread_sen = NULL; in vimc_sen_s_stream()
281 vfree(vsen->frame); in vimc_sen_s_stream()
282 vsen->frame = NULL; in vimc_sen_s_stream()
307 struct vimc_sen_device *vsen = in vimc_sen_s_ctrl() local
312 tpg_s_pattern(&vsen->tpg, ctrl->val); in vimc_sen_s_ctrl()
315 tpg_s_hflip(&vsen->tpg, ctrl->val); in vimc_sen_s_ctrl()
318 tpg_s_vflip(&vsen->tpg, ctrl->val); in vimc_sen_s_ctrl()
334 struct vimc_sen_device *vsen = in vimc_sen_comp_unbind() local
337 vimc_ent_sd_unregister(ved, &vsen->sd); in vimc_sen_comp_unbind()
338 v4l2_ctrl_handler_free(&vsen->hdl); in vimc_sen_comp_unbind()
339 tpg_free(&vsen->tpg); in vimc_sen_comp_unbind()
340 kfree(vsen); in vimc_sen_comp_unbind()
365 struct vimc_sen_device *vsen; in vimc_sen_comp_bind() local
369 vsen = kzalloc(sizeof(*vsen), GFP_KERNEL); in vimc_sen_comp_bind()
370 if (!vsen) in vimc_sen_comp_bind()
373 v4l2_ctrl_handler_init(&vsen->hdl, 4); in vimc_sen_comp_bind()
375 v4l2_ctrl_new_custom(&vsen->hdl, &vimc_sen_ctrl_class, NULL); in vimc_sen_comp_bind()
376 v4l2_ctrl_new_custom(&vsen->hdl, &vimc_sen_ctrl_test_pattern, NULL); in vimc_sen_comp_bind()
377 v4l2_ctrl_new_std(&vsen->hdl, &vimc_sen_ctrl_ops, in vimc_sen_comp_bind()
379 v4l2_ctrl_new_std(&vsen->hdl, &vimc_sen_ctrl_ops, in vimc_sen_comp_bind()
381 vsen->sd.ctrl_handler = &vsen->hdl; in vimc_sen_comp_bind()
382 if (vsen->hdl.error) { in vimc_sen_comp_bind()
383 ret = vsen->hdl.error; in vimc_sen_comp_bind()
388 ret = vimc_ent_sd_register(&vsen->ved, &vsen->sd, v4l2_dev, in vimc_sen_comp_bind()
396 dev_set_drvdata(comp, &vsen->ved); in vimc_sen_comp_bind()
397 vsen->dev = comp; in vimc_sen_comp_bind()
400 vsen->mbus_format = fmt_default; in vimc_sen_comp_bind()
403 tpg_init(&vsen->tpg, vsen->mbus_format.width, in vimc_sen_comp_bind()
404 vsen->mbus_format.height); in vimc_sen_comp_bind()
405 ret = tpg_alloc(&vsen->tpg, VIMC_FRAME_MAX_WIDTH); in vimc_sen_comp_bind()
412 vimc_ent_sd_unregister(&vsen->ved, &vsen->sd); in vimc_sen_comp_bind()
414 v4l2_ctrl_handler_free(&vsen->hdl); in vimc_sen_comp_bind()
416 kfree(vsen); in vimc_sen_comp_bind()