Lines Matching refs:vdeb

58 	void (*set_rgb_src)(struct vimc_deb_device *vdeb, unsigned int lin,
151 struct vimc_deb_device *vdeb = v4l2_get_subdevdata(sd); in vimc_deb_init_cfg() local
161 mf->code = vdeb->src_code; in vimc_deb_init_cfg()
173 struct vimc_deb_device *vdeb = v4l2_get_subdevdata(sd); in vimc_deb_enum_mbus_code() local
178 code->code = vdeb->src_code; in vimc_deb_enum_mbus_code()
193 struct vimc_deb_device *vdeb = v4l2_get_subdevdata(sd); in vimc_deb_enum_frame_size() local
204 } else if (fse->code != vdeb->src_code) { in vimc_deb_enum_frame_size()
220 struct vimc_deb_device *vdeb = v4l2_get_subdevdata(sd); in vimc_deb_get_fmt() local
225 vdeb->sink_fmt; in vimc_deb_get_fmt()
229 fmt->format.code = vdeb->src_code; in vimc_deb_get_fmt()
258 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()
278 fmt->format.code = vdeb->src_code; in vimc_deb_set_fmt()
283 dev_dbg(vdeb->dev, "%s: sink format update: " in vimc_deb_set_fmt()
285 "new:%dx%d (0x%x, %d, %d, %d, %d)\n", vdeb->sd.name, in vimc_deb_set_fmt()
309 static void vimc_deb_set_rgb_mbus_fmt_rgb888_1x24(struct vimc_deb_device *vdeb, in vimc_deb_set_rgb_mbus_fmt_rgb888_1x24() argument
316 index = VIMC_FRAME_INDEX(lin, col, vdeb->sink_fmt.width, 3); in vimc_deb_set_rgb_mbus_fmt_rgb888_1x24()
318 vdeb->src_frame[index + i] = rgb[i]; in vimc_deb_set_rgb_mbus_fmt_rgb888_1x24()
323 struct vimc_deb_device *vdeb = v4l2_get_subdevdata(sd); in vimc_deb_s_stream() local
330 if (vdeb->src_frame) in vimc_deb_s_stream()
334 vpix = vimc_pix_map_by_code(vdeb->src_code); in vimc_deb_s_stream()
335 frame_size = vdeb->sink_fmt.width * vdeb->sink_fmt.height * in vimc_deb_s_stream()
339 vpix = vimc_pix_map_by_code(vdeb->sink_fmt.code); in vimc_deb_s_stream()
340 vdeb->sink_bpp = vpix->bpp; in vimc_deb_s_stream()
343 vdeb->sink_pix_map = in vimc_deb_s_stream()
344 vimc_deb_pix_map_by_code(vdeb->sink_fmt.code); in vimc_deb_s_stream()
350 vdeb->src_frame = vmalloc(frame_size); in vimc_deb_s_stream()
351 if (!vdeb->src_frame) in vimc_deb_s_stream()
355 ret = vimc_pipeline_s_stream(&vdeb->sd.entity, 1); in vimc_deb_s_stream()
357 vfree(vdeb->src_frame); in vimc_deb_s_stream()
358 vdeb->src_frame = NULL; in vimc_deb_s_stream()
362 if (!vdeb->src_frame) in vimc_deb_s_stream()
366 ret = vimc_pipeline_s_stream(&vdeb->sd.entity, 0); in vimc_deb_s_stream()
370 vfree(vdeb->src_frame); in vimc_deb_s_stream()
371 vdeb->src_frame = NULL; in vimc_deb_s_stream()
398 static void vimc_deb_calc_rgb_sink(struct vimc_deb_device *vdeb, in vimc_deb_calc_rgb_sink() argument
419 dev_dbg(vdeb->dev, in vimc_deb_calc_rgb_sink()
421 vdeb->sd.name, lin, col, vdeb->sink_fmt.height, seek); in vimc_deb_calc_rgb_sink()
430 wlin < lin + seek + 1 && wlin < vdeb->sink_fmt.height; in vimc_deb_calc_rgb_sink()
440 wcol < col + seek + 1 && wcol < vdeb->sink_fmt.width; in vimc_deb_calc_rgb_sink()
446 color = vdeb->sink_pix_map->order[wlin % 2][wcol % 2]; in vimc_deb_calc_rgb_sink()
449 vdeb->sink_fmt.width, in vimc_deb_calc_rgb_sink()
450 vdeb->sink_bpp); in vimc_deb_calc_rgb_sink()
452 dev_dbg(vdeb->dev, in vimc_deb_calc_rgb_sink()
454 vdeb->sd.name, index, wlin, wcol, color); in vimc_deb_calc_rgb_sink()
458 vimc_deb_get_val(&frame[index], vdeb->sink_bpp); in vimc_deb_calc_rgb_sink()
463 dev_dbg(vdeb->dev, "deb: %s: RGB CALC: val %d, n %d\n", in vimc_deb_calc_rgb_sink()
464 vdeb->sd.name, rgb[color], n_rgb[color]); in vimc_deb_calc_rgb_sink()
470 dev_dbg(vdeb->dev, in vimc_deb_calc_rgb_sink()
472 vdeb->sd.name, lin, col, i, rgb[i], n_rgb[i]); in vimc_deb_calc_rgb_sink()
477 dev_dbg(vdeb->dev, in vimc_deb_calc_rgb_sink()
479 vdeb->sd.name, lin, col, i, rgb[i]); in vimc_deb_calc_rgb_sink()
487 struct vimc_deb_device *vdeb = container_of(ved, struct vimc_deb_device, in vimc_deb_process_frame() local
493 if (!vdeb->src_frame) in vimc_deb_process_frame()
496 for (i = 0; i < vdeb->sink_fmt.height; i++) in vimc_deb_process_frame()
497 for (j = 0; j < vdeb->sink_fmt.width; j++) { in vimc_deb_process_frame()
498 vimc_deb_calc_rgb_sink(vdeb, sink_frame, i, j, rgb); in vimc_deb_process_frame()
499 vdeb->set_rgb_src(vdeb, i, j, rgb); in vimc_deb_process_frame()
503 for (i = 1; i < vdeb->sd.entity.num_pads; i++) { in vimc_deb_process_frame()
504 struct media_pad *pad = &vdeb->sd.entity.pads[i]; in vimc_deb_process_frame()
506 vimc_propagate_frame(pad, vdeb->src_frame); in vimc_deb_process_frame()
514 struct vimc_deb_device *vdeb = container_of(ved, struct vimc_deb_device, in vimc_deb_comp_unbind() local
517 vimc_ent_sd_unregister(ved, &vdeb->sd); in vimc_deb_comp_unbind()
518 kfree(vdeb); in vimc_deb_comp_unbind()
526 struct vimc_deb_device *vdeb; in vimc_deb_comp_bind() local
530 vdeb = kzalloc(sizeof(*vdeb), GFP_KERNEL); in vimc_deb_comp_bind()
531 if (!vdeb) in vimc_deb_comp_bind()
535 ret = vimc_ent_sd_register(&vdeb->ved, &vdeb->sd, v4l2_dev, in vimc_deb_comp_bind()
542 kfree(vdeb); in vimc_deb_comp_bind()
546 vdeb->ved.process_frame = vimc_deb_process_frame; in vimc_deb_comp_bind()
547 dev_set_drvdata(comp, &vdeb->ved); in vimc_deb_comp_bind()
548 vdeb->dev = comp; in vimc_deb_comp_bind()
551 vdeb->sink_fmt = sink_fmt_default; in vimc_deb_comp_bind()
558 vdeb->src_code = MEDIA_BUS_FMT_RGB888_1X24; in vimc_deb_comp_bind()
559 vdeb->set_rgb_src = vimc_deb_set_rgb_mbus_fmt_rgb888_1x24; in vimc_deb_comp_bind()