Lines Matching refs:vsen
99 struct vimc_sen_device *vsen = in vimc_sen_get_fmt() local
104 vsen->mbus_format; in vimc_sen_get_fmt()
109 static void vimc_sen_tpg_s_format(struct vimc_sen_device *vsen) in vimc_sen_tpg_s_format() argument
112 vimc_pix_map_by_code(vsen->mbus_format.code); in vimc_sen_tpg_s_format()
114 tpg_reset_source(&vsen->tpg, vsen->mbus_format.width, in vimc_sen_tpg_s_format()
115 vsen->mbus_format.height, vsen->mbus_format.field); in vimc_sen_tpg_s_format()
116 tpg_s_bytesperline(&vsen->tpg, 0, vsen->mbus_format.width * vpix->bpp); in vimc_sen_tpg_s_format()
117 tpg_s_buf_height(&vsen->tpg, vsen->mbus_format.height); in vimc_sen_tpg_s_format()
118 tpg_s_fourcc(&vsen->tpg, vpix->pixelformat); in vimc_sen_tpg_s_format()
120 tpg_s_field(&vsen->tpg, vsen->mbus_format.field, false); in vimc_sen_tpg_s_format()
121 tpg_s_colorspace(&vsen->tpg, vsen->mbus_format.colorspace); in vimc_sen_tpg_s_format()
122 tpg_s_ycbcr_enc(&vsen->tpg, vsen->mbus_format.ycbcr_enc); in vimc_sen_tpg_s_format()
123 tpg_s_quantization(&vsen->tpg, vsen->mbus_format.quantization); in vimc_sen_tpg_s_format()
124 tpg_s_xfer_func(&vsen->tpg, vsen->mbus_format.xfer_func); in vimc_sen_tpg_s_format()
152 struct vimc_sen_device *vsen = v4l2_get_subdevdata(sd); in vimc_sen_set_fmt() local
157 if (vsen->frame) in vimc_sen_set_fmt()
160 mf = &vsen->mbus_format; in vimc_sen_set_fmt()
168 dev_dbg(vsen->ved.dev, "%s: format update: " in vimc_sen_set_fmt()
170 "new:%dx%d (0x%x, %d, %d, %d, %d)\n", vsen->sd.name, in vimc_sen_set_fmt()
196 struct vimc_sen_device *vsen = container_of(ved, struct vimc_sen_device, in vimc_sen_process_frame() local
203 tpg_fill_plane_buffer(&vsen->tpg, 0, 0, vsen->frame); in vimc_sen_process_frame()
204 tpg_calc_text_basep(&vsen->tpg, basep, 0, vsen->frame); in vimc_sen_process_frame()
205 switch (vsen->osd_value) { in vimc_sen_process_frame()
207 const char *order = tpg_g_color_order(&vsen->tpg); in vimc_sen_process_frame()
209 tpg_gen_text(&vsen->tpg, basep, line++ * line_height, in vimc_sen_process_frame()
213 vsen->tpg.brightness, in vimc_sen_process_frame()
214 vsen->tpg.contrast, in vimc_sen_process_frame()
215 vsen->tpg.saturation, in vimc_sen_process_frame()
216 vsen->tpg.hue); in vimc_sen_process_frame()
217 tpg_gen_text(&vsen->tpg, basep, line++ * line_height, 16, str); in vimc_sen_process_frame()
219 vsen->mbus_format.width, in vimc_sen_process_frame()
220 vsen->mbus_format.height); in vimc_sen_process_frame()
221 tpg_gen_text(&vsen->tpg, basep, line++ * line_height, 16, str); in vimc_sen_process_frame()
227 ms = div_u64(ktime_get_ns() - vsen->start_stream_ts, 1000000); in vimc_sen_process_frame()
233 tpg_gen_text(&vsen->tpg, basep, line++ * line_height, 16, str); in vimc_sen_process_frame()
241 return vsen->frame; in vimc_sen_process_frame()
246 struct vimc_sen_device *vsen = in vimc_sen_s_stream() local
253 vsen->start_stream_ts = ktime_get_ns(); in vimc_sen_s_stream()
256 vpix = vimc_pix_map_by_code(vsen->mbus_format.code); in vimc_sen_s_stream()
257 frame_size = vsen->mbus_format.width * vpix->bpp * in vimc_sen_s_stream()
258 vsen->mbus_format.height; in vimc_sen_s_stream()
264 vsen->frame = vmalloc(frame_size); in vimc_sen_s_stream()
265 if (!vsen->frame) in vimc_sen_s_stream()
269 vimc_sen_tpg_s_format(vsen); in vimc_sen_s_stream()
273 vfree(vsen->frame); in vimc_sen_s_stream()
274 vsen->frame = NULL; in vimc_sen_s_stream()
298 struct vimc_sen_device *vsen = in vimc_sen_s_ctrl() local
303 tpg_s_pattern(&vsen->tpg, ctrl->val); in vimc_sen_s_ctrl()
306 tpg_s_hflip(&vsen->tpg, ctrl->val); in vimc_sen_s_ctrl()
309 tpg_s_vflip(&vsen->tpg, ctrl->val); in vimc_sen_s_ctrl()
312 tpg_s_brightness(&vsen->tpg, ctrl->val); in vimc_sen_s_ctrl()
315 tpg_s_contrast(&vsen->tpg, ctrl->val); in vimc_sen_s_ctrl()
318 tpg_s_hue(&vsen->tpg, ctrl->val); in vimc_sen_s_ctrl()
321 tpg_s_saturation(&vsen->tpg, ctrl->val); in vimc_sen_s_ctrl()
324 vsen->osd_value = ctrl->val; in vimc_sen_s_ctrl()
338 struct vimc_sen_device *vsen = in vimc_sen_release() local
341 v4l2_ctrl_handler_free(&vsen->hdl); in vimc_sen_release()
342 tpg_free(&vsen->tpg); in vimc_sen_release()
343 media_entity_cleanup(vsen->ved.ent); in vimc_sen_release()
344 kfree(vsen); in vimc_sen_release()
384 struct vimc_sen_device *vsen; in vimc_sen_add() local
388 vsen = kzalloc(sizeof(*vsen), GFP_KERNEL); in vimc_sen_add()
389 if (!vsen) in vimc_sen_add()
392 v4l2_ctrl_handler_init(&vsen->hdl, 4); in vimc_sen_add()
394 v4l2_ctrl_new_custom(&vsen->hdl, &vimc_sen_ctrl_class, NULL); in vimc_sen_add()
395 v4l2_ctrl_new_custom(&vsen->hdl, &vimc_sen_ctrl_test_pattern, NULL); in vimc_sen_add()
396 v4l2_ctrl_new_custom(&vsen->hdl, &vimc_sen_ctrl_osd_mode, NULL); in vimc_sen_add()
397 v4l2_ctrl_new_std(&vsen->hdl, &vimc_sen_ctrl_ops, in vimc_sen_add()
399 v4l2_ctrl_new_std(&vsen->hdl, &vimc_sen_ctrl_ops, in vimc_sen_add()
401 v4l2_ctrl_new_std(&vsen->hdl, &vimc_sen_ctrl_ops, in vimc_sen_add()
403 v4l2_ctrl_new_std(&vsen->hdl, &vimc_sen_ctrl_ops, in vimc_sen_add()
405 v4l2_ctrl_new_std(&vsen->hdl, &vimc_sen_ctrl_ops, in vimc_sen_add()
407 v4l2_ctrl_new_std(&vsen->hdl, &vimc_sen_ctrl_ops, in vimc_sen_add()
409 vsen->sd.ctrl_handler = &vsen->hdl; in vimc_sen_add()
410 if (vsen->hdl.error) { in vimc_sen_add()
411 ret = vsen->hdl.error; in vimc_sen_add()
416 tpg_init(&vsen->tpg, vsen->mbus_format.width, in vimc_sen_add()
417 vsen->mbus_format.height); in vimc_sen_add()
418 ret = tpg_alloc(&vsen->tpg, VIMC_FRAME_MAX_WIDTH); in vimc_sen_add()
423 vsen->pad.flags = MEDIA_PAD_FL_SOURCE; in vimc_sen_add()
424 ret = vimc_ent_sd_register(&vsen->ved, &vsen->sd, v4l2_dev, in vimc_sen_add()
426 MEDIA_ENT_F_CAM_SENSOR, 1, &vsen->pad, in vimc_sen_add()
431 vsen->ved.process_frame = vimc_sen_process_frame; in vimc_sen_add()
432 vsen->ved.dev = vimc->mdev.dev; in vimc_sen_add()
435 vsen->mbus_format = fmt_default; in vimc_sen_add()
437 return &vsen->ved; in vimc_sen_add()
440 tpg_free(&vsen->tpg); in vimc_sen_add()
442 v4l2_ctrl_handler_free(&vsen->hdl); in vimc_sen_add()
444 kfree(vsen); in vimc_sen_add()