Lines Matching refs:vsca

162 	struct vimc_sca_device *vsca = v4l2_get_subdevdata(sd);  in vimc_sca_get_fmt()  local
170 format->format = vsca->sink_fmt; in vimc_sca_get_fmt()
171 crop_rect = &vsca->crop_rect; in vimc_sca_get_fmt()
207 struct vimc_sca_device *vsca = v4l2_get_subdevdata(sd); in vimc_sca_set_fmt() local
213 if (vsca->src_frame) in vimc_sca_set_fmt()
216 sink_fmt = &vsca->sink_fmt; in vimc_sca_set_fmt()
217 crop_rect = &vsca->crop_rect; in vimc_sca_set_fmt()
235 dev_dbg(vsca->ved.dev, "%s: sink format update: " in vimc_sca_set_fmt()
237 "new:%dx%d (0x%x, %d, %d, %d, %d)\n", vsca->sd.name, in vimc_sca_set_fmt()
260 struct vimc_sca_device *vsca = v4l2_get_subdevdata(sd); in vimc_sca_get_selection() local
268 sink_fmt = &vsca->sink_fmt; in vimc_sca_get_selection()
269 crop_rect = &vsca->crop_rect; in vimc_sca_get_selection()
293 struct vimc_sca_device *vsca = v4l2_get_subdevdata(sd); in vimc_sca_set_selection() local
302 if (vsca->src_frame) in vimc_sca_set_selection()
305 crop_rect = &vsca->crop_rect; in vimc_sca_set_selection()
306 sink_fmt = &vsca->sink_fmt; in vimc_sca_set_selection()
337 struct vimc_sca_device *vsca = v4l2_get_subdevdata(sd); in vimc_sca_s_stream() local
343 if (vsca->src_frame) in vimc_sca_s_stream()
347 vpix = vimc_pix_map_by_code(vsca->sink_fmt.code); in vimc_sca_s_stream()
348 vsca->bpp = vpix->bpp; in vimc_sca_s_stream()
351 vsca->src_line_size = vsca->crop_rect.width * in vimc_sca_s_stream()
352 sca_mult * vsca->bpp; in vimc_sca_s_stream()
355 frame_size = vsca->src_line_size * vsca->crop_rect.height * in vimc_sca_s_stream()
361 vsca->src_frame = vmalloc(frame_size); in vimc_sca_s_stream()
362 if (!vsca->src_frame) in vimc_sca_s_stream()
366 if (!vsca->src_frame) in vimc_sca_s_stream()
369 vfree(vsca->src_frame); in vimc_sca_s_stream()
370 vsca->src_frame = NULL; in vimc_sca_s_stream()
396 static void vimc_sca_scale_pix(const struct vimc_sca_device *const vsca, in vimc_sca_scale_pix() argument
400 const struct v4l2_rect crop_rect = vsca->crop_rect; in vimc_sca_scale_pix()
406 vsca->sink_fmt.width, in vimc_sca_scale_pix()
407 vsca->bpp); in vimc_sca_scale_pix()
410 dev_dbg(vsca->ved.dev, in vimc_sca_scale_pix()
412 vsca->sd.name, lin, col, index); in vimc_sca_scale_pix()
420 crop_rect.width * sca_mult, vsca->bpp); in vimc_sca_scale_pix()
422 dev_dbg(vsca->ved.dev, "sca: %s: scale_pix src pos %dx%d, index %d\n", in vimc_sca_scale_pix()
423 vsca->sd.name, lin * sca_mult, col * sca_mult, index); in vimc_sca_scale_pix()
430 for (j = 0; j < sca_mult * vsca->bpp; j += vsca->bpp) { in vimc_sca_scale_pix()
431 dev_dbg(vsca->ved.dev, in vimc_sca_scale_pix()
433 vsca->sd.name, index + j); in vimc_sca_scale_pix()
436 vimc_sca_fill_pix(&vsca->src_frame[index + j], in vimc_sca_scale_pix()
437 pixel, vsca->bpp); in vimc_sca_scale_pix()
441 index += vsca->src_line_size; in vimc_sca_scale_pix()
445 static void vimc_sca_fill_src_frame(const struct vimc_sca_device *const vsca, in vimc_sca_fill_src_frame() argument
448 const struct v4l2_rect r = vsca->crop_rect; in vimc_sca_fill_src_frame()
455 vimc_sca_scale_pix(vsca, i, j, sink_frame); in vimc_sca_fill_src_frame()
461 struct vimc_sca_device *vsca = container_of(ved, struct vimc_sca_device, in vimc_sca_process_frame() local
465 if (!vsca->src_frame) in vimc_sca_process_frame()
468 vimc_sca_fill_src_frame(vsca, sink_frame); in vimc_sca_process_frame()
470 return vsca->src_frame; in vimc_sca_process_frame()
475 struct vimc_sca_device *vsca = in vimc_sca_release() local
478 media_entity_cleanup(vsca->ved.ent); in vimc_sca_release()
479 kfree(vsca); in vimc_sca_release()
486 struct vimc_sca_device *vsca; in vimc_sca_add() local
490 vsca = kzalloc(sizeof(*vsca), GFP_KERNEL); in vimc_sca_add()
491 if (!vsca) in vimc_sca_add()
495 vsca->pads[0].flags = MEDIA_PAD_FL_SINK; in vimc_sca_add()
496 vsca->pads[1].flags = MEDIA_PAD_FL_SOURCE; in vimc_sca_add()
498 ret = vimc_ent_sd_register(&vsca->ved, &vsca->sd, v4l2_dev, in vimc_sca_add()
501 vsca->pads, &vimc_sca_ops); in vimc_sca_add()
503 kfree(vsca); in vimc_sca_add()
507 vsca->ved.process_frame = vimc_sca_process_frame; in vimc_sca_add()
508 vsca->ved.dev = vimc->mdev.dev; in vimc_sca_add()
511 vsca->sink_fmt = sink_fmt_default; in vimc_sca_add()
514 vsca->crop_rect = crop_rect_default; in vimc_sca_add()
516 return &vsca->ved; in vimc_sca_add()