Lines Matching refs:vsca

126 	struct vimc_sca_device *vsca = v4l2_get_subdevdata(sd);  in vimc_sca_get_fmt()  local
131 vsca->sink_fmt; in vimc_sca_get_fmt()
135 format->format.width = vsca->sink_fmt.width * sca_mult; in vimc_sca_get_fmt()
136 format->format.height = vsca->sink_fmt.height * sca_mult; in vimc_sca_get_fmt()
166 struct vimc_sca_device *vsca = v4l2_get_subdevdata(sd); in vimc_sca_set_fmt() local
171 if (vsca->src_frame) in vimc_sca_set_fmt()
174 sink_fmt = &vsca->sink_fmt; in vimc_sca_set_fmt()
191 dev_dbg(vsca->dev, "%s: sink format update: " in vimc_sca_set_fmt()
193 "new:%dx%d (0x%x, %d, %d, %d, %d)\n", vsca->sd.name, in vimc_sca_set_fmt()
219 struct vimc_sca_device *vsca = v4l2_get_subdevdata(sd); in vimc_sca_s_stream() local
226 if (vsca->src_frame) in vimc_sca_s_stream()
230 vpix = vimc_pix_map_by_code(vsca->sink_fmt.code); in vimc_sca_s_stream()
231 vsca->bpp = vpix->bpp; in vimc_sca_s_stream()
234 vsca->src_line_size = vsca->sink_fmt.width * in vimc_sca_s_stream()
235 sca_mult * vsca->bpp; in vimc_sca_s_stream()
238 frame_size = vsca->src_line_size * vsca->sink_fmt.height * in vimc_sca_s_stream()
244 vsca->src_frame = vmalloc(frame_size); in vimc_sca_s_stream()
245 if (!vsca->src_frame) in vimc_sca_s_stream()
249 ret = vimc_pipeline_s_stream(&vsca->sd.entity, 1); in vimc_sca_s_stream()
251 vfree(vsca->src_frame); in vimc_sca_s_stream()
252 vsca->src_frame = NULL; in vimc_sca_s_stream()
256 if (!vsca->src_frame) in vimc_sca_s_stream()
260 ret = vimc_pipeline_s_stream(&vsca->sd.entity, 0); in vimc_sca_s_stream()
264 vfree(vsca->src_frame); in vimc_sca_s_stream()
265 vsca->src_frame = NULL; in vimc_sca_s_stream()
291 static void vimc_sca_scale_pix(const struct vimc_sca_device *const vsca, in vimc_sca_scale_pix() argument
300 vsca->sink_fmt.width, in vimc_sca_scale_pix()
301 vsca->bpp); in vimc_sca_scale_pix()
304 dev_dbg(vsca->dev, in vimc_sca_scale_pix()
306 vsca->sd.name, lin, col, index); in vimc_sca_scale_pix()
312 vsca->sink_fmt.width * sca_mult, vsca->bpp); in vimc_sca_scale_pix()
314 dev_dbg(vsca->dev, "sca: %s: scale_pix src pos %dx%d, index %d\n", in vimc_sca_scale_pix()
315 vsca->sd.name, lin * sca_mult, col * sca_mult, index); in vimc_sca_scale_pix()
322 for (j = 0; j < sca_mult * vsca->bpp; j += vsca->bpp) { in vimc_sca_scale_pix()
323 dev_dbg(vsca->dev, in vimc_sca_scale_pix()
325 vsca->sd.name, index + j); in vimc_sca_scale_pix()
328 vimc_sca_fill_pix(&vsca->src_frame[index + j], in vimc_sca_scale_pix()
329 pixel, vsca->bpp); in vimc_sca_scale_pix()
333 index += vsca->src_line_size; in vimc_sca_scale_pix()
337 static void vimc_sca_fill_src_frame(const struct vimc_sca_device *const vsca, in vimc_sca_fill_src_frame() argument
344 for (i = 0; i < vsca->sink_fmt.height; i++) in vimc_sca_fill_src_frame()
345 for (j = 0; j < vsca->sink_fmt.width; j++) in vimc_sca_fill_src_frame()
346 vimc_sca_scale_pix(vsca, i, j, sink_frame); in vimc_sca_fill_src_frame()
353 struct vimc_sca_device *vsca = container_of(ved, struct vimc_sca_device, in vimc_sca_process_frame() local
358 if (!vsca->src_frame) in vimc_sca_process_frame()
361 vimc_sca_fill_src_frame(vsca, sink_frame); in vimc_sca_process_frame()
364 for (i = 1; i < vsca->sd.entity.num_pads; i++) { in vimc_sca_process_frame()
365 struct media_pad *pad = &vsca->sd.entity.pads[i]; in vimc_sca_process_frame()
367 vimc_propagate_frame(pad, vsca->src_frame); in vimc_sca_process_frame()
375 struct vimc_sca_device *vsca = container_of(ved, struct vimc_sca_device, in vimc_sca_comp_unbind() local
378 vimc_ent_sd_unregister(ved, &vsca->sd); in vimc_sca_comp_unbind()
379 kfree(vsca); in vimc_sca_comp_unbind()
388 struct vimc_sca_device *vsca; in vimc_sca_comp_bind() local
392 vsca = kzalloc(sizeof(*vsca), GFP_KERNEL); in vimc_sca_comp_bind()
393 if (!vsca) in vimc_sca_comp_bind()
397 ret = vimc_ent_sd_register(&vsca->ved, &vsca->sd, v4l2_dev, in vimc_sca_comp_bind()
404 kfree(vsca); in vimc_sca_comp_bind()
408 vsca->ved.process_frame = vimc_sca_process_frame; in vimc_sca_comp_bind()
409 dev_set_drvdata(comp, &vsca->ved); in vimc_sca_comp_bind()
410 vsca->dev = comp; in vimc_sca_comp_bind()
413 vsca->sink_fmt = sink_fmt_default; in vimc_sca_comp_bind()