Lines Matching refs:vdeb

35 	void (*set_rgb_src)(struct vimc_deb_device *vdeb, unsigned int lin,
155 struct vimc_deb_device *vdeb = v4l2_get_subdevdata(sd); in vimc_deb_init_cfg() local
165 mf->code = vdeb->src_code; in vimc_deb_init_cfg()
219 struct vimc_deb_device *vdeb = v4l2_get_subdevdata(sd); in vimc_deb_get_fmt() local
224 vdeb->sink_fmt; in vimc_deb_get_fmt()
228 fmt->format.code = vdeb->src_code; in vimc_deb_get_fmt()
257 struct vimc_deb_device *vdeb = v4l2_get_subdevdata(sd); in vimc_deb_set_fmt() local
263 if (vdeb->src_frame) in vimc_deb_set_fmt()
266 sink_fmt = &vdeb->sink_fmt; in vimc_deb_set_fmt()
267 src_code = &vdeb->src_code; in vimc_deb_set_fmt()
290 dev_dbg(vdeb->ved.dev, "%s: sink format update: " in vimc_deb_set_fmt()
292 "new:%dx%d (0x%x, %d, %d, %d, %d)\n", vdeb->sd.name, in vimc_deb_set_fmt()
316 static void vimc_deb_process_rgb_frame(struct vimc_deb_device *vdeb, in vimc_deb_process_rgb_frame() argument
324 vpix = vimc_pix_map_by_code(vdeb->src_code); in vimc_deb_process_rgb_frame()
325 index = VIMC_FRAME_INDEX(lin, col, vdeb->sink_fmt.width, 3); in vimc_deb_process_rgb_frame()
329 vdeb->src_frame[index + i] = rgb[i]; in vimc_deb_process_rgb_frame()
332 vdeb->src_frame[index + i] = rgb[2 - i]; in vimc_deb_process_rgb_frame()
340 struct vimc_deb_device *vdeb = v4l2_get_subdevdata(sd); in vimc_deb_s_stream() local
346 if (vdeb->src_frame) in vimc_deb_s_stream()
350 vpix = vimc_pix_map_by_code(vdeb->src_code); in vimc_deb_s_stream()
351 frame_size = vdeb->sink_fmt.width * vdeb->sink_fmt.height * in vimc_deb_s_stream()
355 vpix = vimc_pix_map_by_code(vdeb->sink_fmt.code); in vimc_deb_s_stream()
356 vdeb->sink_bpp = vpix->bpp; in vimc_deb_s_stream()
359 vdeb->sink_pix_map = in vimc_deb_s_stream()
360 vimc_deb_pix_map_by_code(vdeb->sink_fmt.code); in vimc_deb_s_stream()
366 vdeb->src_frame = vmalloc(frame_size); in vimc_deb_s_stream()
367 if (!vdeb->src_frame) in vimc_deb_s_stream()
371 if (!vdeb->src_frame) in vimc_deb_s_stream()
374 vfree(vdeb->src_frame); in vimc_deb_s_stream()
375 vdeb->src_frame = NULL; in vimc_deb_s_stream()
409 static void vimc_deb_calc_rgb_sink(struct vimc_deb_device *vdeb, in vimc_deb_calc_rgb_sink() argument
426 seek = vdeb->mean_win_size / 2; in vimc_deb_calc_rgb_sink()
430 dev_dbg(vdeb->ved.dev, in vimc_deb_calc_rgb_sink()
432 vdeb->sd.name, lin, col, vdeb->sink_fmt.height, seek); in vimc_deb_calc_rgb_sink()
441 wlin < lin + seek + 1 && wlin < vdeb->sink_fmt.height; in vimc_deb_calc_rgb_sink()
451 wcol < col + seek + 1 && wcol < vdeb->sink_fmt.width; in vimc_deb_calc_rgb_sink()
457 color = vdeb->sink_pix_map->order[wlin % 2][wcol % 2]; in vimc_deb_calc_rgb_sink()
460 vdeb->sink_fmt.width, in vimc_deb_calc_rgb_sink()
461 vdeb->sink_bpp); in vimc_deb_calc_rgb_sink()
463 dev_dbg(vdeb->ved.dev, in vimc_deb_calc_rgb_sink()
465 vdeb->sd.name, index, wlin, wcol, color); in vimc_deb_calc_rgb_sink()
469 vimc_deb_get_val(&frame[index], vdeb->sink_bpp); in vimc_deb_calc_rgb_sink()
474 dev_dbg(vdeb->ved.dev, "deb: %s: RGB CALC: val %d, n %d\n", in vimc_deb_calc_rgb_sink()
475 vdeb->sd.name, rgb[color], n_rgb[color]); in vimc_deb_calc_rgb_sink()
481 dev_dbg(vdeb->ved.dev, in vimc_deb_calc_rgb_sink()
483 vdeb->sd.name, lin, col, i, rgb[i], n_rgb[i]); in vimc_deb_calc_rgb_sink()
488 dev_dbg(vdeb->ved.dev, in vimc_deb_calc_rgb_sink()
490 vdeb->sd.name, lin, col, i, rgb[i]); in vimc_deb_calc_rgb_sink()
497 struct vimc_deb_device *vdeb = container_of(ved, struct vimc_deb_device, in vimc_deb_process_frame() local
503 if (!vdeb->src_frame) in vimc_deb_process_frame()
506 for (i = 0; i < vdeb->sink_fmt.height; i++) in vimc_deb_process_frame()
507 for (j = 0; j < vdeb->sink_fmt.width; j++) { in vimc_deb_process_frame()
508 vimc_deb_calc_rgb_sink(vdeb, sink_frame, i, j, rgb); in vimc_deb_process_frame()
509 vdeb->set_rgb_src(vdeb, i, j, rgb); in vimc_deb_process_frame()
512 return vdeb->src_frame; in vimc_deb_process_frame()
517 struct vimc_deb_device *vdeb = in vimc_deb_s_ctrl() local
522 vdeb->mean_win_size = ctrl->val; in vimc_deb_s_ctrl()
536 struct vimc_deb_device *vdeb = in vimc_deb_release() local
539 v4l2_ctrl_handler_free(&vdeb->hdl); in vimc_deb_release()
540 media_entity_cleanup(vdeb->ved.ent); in vimc_deb_release()
541 kfree(vdeb); in vimc_deb_release()
566 struct vimc_deb_device *vdeb; in vimc_deb_add() local
570 vdeb = kzalloc(sizeof(*vdeb), GFP_KERNEL); in vimc_deb_add()
571 if (!vdeb) in vimc_deb_add()
575 v4l2_ctrl_handler_init(&vdeb->hdl, 2); in vimc_deb_add()
576 v4l2_ctrl_new_custom(&vdeb->hdl, &vimc_deb_ctrl_class, NULL); in vimc_deb_add()
577 v4l2_ctrl_new_custom(&vdeb->hdl, &vimc_deb_ctrl_mean_win_size, NULL); in vimc_deb_add()
578 vdeb->sd.ctrl_handler = &vdeb->hdl; in vimc_deb_add()
579 if (vdeb->hdl.error) { in vimc_deb_add()
580 ret = vdeb->hdl.error; in vimc_deb_add()
585 vdeb->pads[0].flags = MEDIA_PAD_FL_SINK; in vimc_deb_add()
586 vdeb->pads[1].flags = MEDIA_PAD_FL_SOURCE; in vimc_deb_add()
588 ret = vimc_ent_sd_register(&vdeb->ved, &vdeb->sd, v4l2_dev, in vimc_deb_add()
591 vdeb->pads, &vimc_deb_ops); in vimc_deb_add()
595 vdeb->ved.process_frame = vimc_deb_process_frame; in vimc_deb_add()
596 vdeb->ved.dev = vimc->mdev.dev; in vimc_deb_add()
597 vdeb->mean_win_size = vimc_deb_ctrl_mean_win_size.def; in vimc_deb_add()
600 vdeb->sink_fmt = sink_fmt_default; in vimc_deb_add()
607 vdeb->src_code = MEDIA_BUS_FMT_RGB888_1X24; in vimc_deb_add()
608 vdeb->set_rgb_src = vimc_deb_process_rgb_frame; in vimc_deb_add()
610 return &vdeb->ved; in vimc_deb_add()
613 v4l2_ctrl_handler_free(&vdeb->hdl); in vimc_deb_add()
615 kfree(vdeb); in vimc_deb_add()