Lines Matching full:vp
38 void camif_hw_clear_pending_irq(struct camif_vp *vp) in camif_hw_clear_pending_irq() argument
40 u32 cfg = camif_read(vp->camif, S3C_CAMIF_REG_CIGCTRL); in camif_hw_clear_pending_irq()
41 cfg |= CIGCTRL_IRQ_CLR(vp->id); in camif_hw_clear_pending_irq()
42 camif_write(vp->camif, S3C_CAMIF_REG_CIGCTRL, cfg); in camif_hw_clear_pending_irq()
79 cfg = camif_read(camif, S3C_CAMIF_REG_CIIMGEFF(camif->vp->offset)); in camif_hw_set_effect()
92 camif_write(camif, S3C_CAMIF_REG_CIIMGEFF(camif->vp->offset), cfg); in camif_hw_set_effect()
151 void camif_hw_clear_fifo_overflow(struct camif_vp *vp) in camif_hw_clear_fifo_overflow() argument
153 struct camif_dev *camif = vp->camif; in camif_hw_clear_fifo_overflow()
157 if (vp->id == 0) in camif_hw_clear_fifo_overflow()
200 void camif_hw_set_output_addr(struct camif_vp *vp, in camif_hw_set_output_addr() argument
203 struct camif_dev *camif = vp->camif; in camif_hw_set_output_addr()
205 camif_write(camif, S3C_CAMIF_REG_CIYSA(vp->id, i), paddr->y); in camif_hw_set_output_addr()
207 || vp->id == VP_CODEC) { in camif_hw_set_output_addr()
208 camif_write(camif, S3C_CAMIF_REG_CICBSA(vp->id, i), in camif_hw_set_output_addr()
210 camif_write(camif, S3C_CAMIF_REG_CICRSA(vp->id, i), in camif_hw_set_output_addr()
218 static void camif_hw_set_out_dma_size(struct camif_vp *vp) in camif_hw_set_out_dma_size() argument
220 struct camif_frame *frame = &vp->out_frame; in camif_hw_set_out_dma_size()
223 cfg = camif_read(vp->camif, S3C_CAMIF_REG_CITRGFMT(vp->id, vp->offset)); in camif_hw_set_out_dma_size()
226 camif_write(vp->camif, S3C_CAMIF_REG_CITRGFMT(vp->id, vp->offset), cfg); in camif_hw_set_out_dma_size()
255 void camif_hw_set_output_dma(struct camif_vp *vp) in camif_hw_set_output_dma() argument
257 struct camif_dev *camif = vp->camif; in camif_hw_set_output_dma()
258 struct camif_frame *frame = &vp->out_frame; in camif_hw_set_output_dma()
259 const struct camif_fmt *fmt = vp->out_fmt; in camif_hw_set_output_dma()
263 camif_hw_set_out_dma_size(vp); in camif_hw_set_output_dma()
270 camif_write(camif, S3C_CAMIF_REG_CISSY(vp->id), cfg); in camif_hw_set_output_dma()
271 camif_write(camif, S3C_CAMIF_REG_CISSCB(vp->id), cfg); in camif_hw_set_output_dma()
272 camif_write(camif, S3C_CAMIF_REG_CISSCR(vp->id), cfg); in camif_hw_set_output_dma()
278 cfg = camif_read(camif, S3C_CAMIF_REG_CICTRL(vp->id, vp->offset)); in camif_hw_set_output_dma()
284 camif_write(camif, S3C_CAMIF_REG_CICTRL(vp->id, vp->offset), cfg); in camif_hw_set_output_dma()
289 void camif_hw_set_input_path(struct camif_vp *vp) in camif_hw_set_input_path() argument
291 u32 cfg = camif_read(vp->camif, S3C_CAMIF_REG_MSCTRL(vp->id)); in camif_hw_set_input_path()
293 camif_write(vp->camif, S3C_CAMIF_REG_MSCTRL(vp->id), cfg); in camif_hw_set_input_path()
296 void camif_hw_set_target_format(struct camif_vp *vp) in camif_hw_set_target_format() argument
298 struct camif_dev *camif = vp->camif; in camif_hw_set_target_format()
299 struct camif_frame *frame = &vp->out_frame; in camif_hw_set_target_format()
303 frame->f_height, vp->out_fmt->color); in camif_hw_set_target_format()
305 cfg = camif_read(camif, S3C_CAMIF_REG_CITRGFMT(vp->id, vp->offset)); in camif_hw_set_target_format()
312 if (vp->out_fmt->color == IMG_FMT_YCBCR422P) in camif_hw_set_target_format()
316 switch (vp->out_fmt->color) { in camif_hw_set_target_format()
333 if (vp->rotation == 90 || vp->rotation == 270) in camif_hw_set_target_format()
337 camif_write(camif, S3C_CAMIF_REG_CITRGFMT(vp->id, vp->offset), cfg); in camif_hw_set_target_format()
340 cfg = camif_read(camif, S3C_CAMIF_REG_CITAREA(vp->id, vp->offset)); in camif_hw_set_target_format()
343 camif_write(camif, S3C_CAMIF_REG_CITAREA(vp->id, vp->offset), cfg); in camif_hw_set_target_format()
346 void camif_hw_set_flip(struct camif_vp *vp) in camif_hw_set_flip() argument
348 u32 cfg = camif_read(vp->camif, in camif_hw_set_flip()
349 S3C_CAMIF_REG_CITRGFMT(vp->id, vp->offset)); in camif_hw_set_flip()
353 if (vp->hflip) in camif_hw_set_flip()
355 if (vp->vflip) in camif_hw_set_flip()
358 camif_write(vp->camif, S3C_CAMIF_REG_CITRGFMT(vp->id, vp->offset), cfg); in camif_hw_set_flip()
361 static void camif_hw_set_prescaler(struct camif_vp *vp) in camif_hw_set_prescaler() argument
363 struct camif_dev *camif = vp->camif; in camif_hw_set_prescaler()
364 struct camif_scaler *sc = &vp->scaler; in camif_hw_set_prescaler()
367 addr = S3C_CAMIF_REG_CISCPRERATIO(vp->id, vp->offset); in camif_hw_set_prescaler()
376 camif_write(camif, S3C_CAMIF_REG_CISCPREDST(vp->id, vp->offset), cfg); in camif_hw_set_prescaler()
379 static void camif_s3c244x_hw_set_scaler(struct camif_vp *vp) in camif_s3c244x_hw_set_scaler() argument
381 struct camif_dev *camif = vp->camif; in camif_s3c244x_hw_set_scaler()
382 struct camif_scaler *scaler = &vp->scaler; in camif_s3c244x_hw_set_scaler()
383 unsigned int color = vp->out_fmt->color; in camif_s3c244x_hw_set_scaler()
386 camif_hw_set_prescaler(vp); in camif_s3c244x_hw_set_scaler()
388 cfg = camif_read(camif, S3C_CAMIF_REG_CISCCTRL(vp->id, vp->offset)); in camif_s3c244x_hw_set_scaler()
395 if (vp->id == VP_CODEC) in camif_s3c244x_hw_set_scaler()
401 if (vp->id == VP_CODEC) in camif_s3c244x_hw_set_scaler()
407 if (vp->id == VP_CODEC) in camif_s3c244x_hw_set_scaler()
414 if (vp->id == VP_PREVIEW) { in camif_s3c244x_hw_set_scaler()
420 camif_write(camif, S3C_CAMIF_REG_CISCCTRL(vp->id, vp->offset), cfg); in camif_s3c244x_hw_set_scaler()
426 static void camif_s3c64xx_hw_set_scaler(struct camif_vp *vp) in camif_s3c64xx_hw_set_scaler() argument
428 struct camif_dev *camif = vp->camif; in camif_s3c64xx_hw_set_scaler()
429 struct camif_scaler *scaler = &vp->scaler; in camif_s3c64xx_hw_set_scaler()
430 unsigned int color = vp->out_fmt->color; in camif_s3c64xx_hw_set_scaler()
433 camif_hw_set_prescaler(vp); in camif_s3c64xx_hw_set_scaler()
435 cfg = camif_read(camif, S3C_CAMIF_REG_CISCCTRL(vp->id, vp->offset)); in camif_s3c64xx_hw_set_scaler()
469 camif_write(camif, S3C_CAMIF_REG_CISCCTRL(vp->id, vp->offset), cfg); in camif_s3c64xx_hw_set_scaler()
475 void camif_hw_set_scaler(struct camif_vp *vp) in camif_hw_set_scaler() argument
477 unsigned int ip_rev = vp->camif->variant->ip_revision; in camif_hw_set_scaler()
480 camif_s3c244x_hw_set_scaler(vp); in camif_hw_set_scaler()
482 camif_s3c64xx_hw_set_scaler(vp); in camif_hw_set_scaler()
485 void camif_hw_enable_scaler(struct camif_vp *vp, bool on) in camif_hw_enable_scaler() argument
487 u32 addr = S3C_CAMIF_REG_CISCCTRL(vp->id, vp->offset); in camif_hw_enable_scaler()
490 cfg = camif_read(vp->camif, addr); in camif_hw_enable_scaler()
495 camif_write(vp->camif, addr, cfg); in camif_hw_enable_scaler()
498 void camif_hw_set_lastirq(struct camif_vp *vp, int enable) in camif_hw_set_lastirq() argument
500 u32 addr = S3C_CAMIF_REG_CICTRL(vp->id, vp->offset); in camif_hw_set_lastirq()
503 cfg = camif_read(vp->camif, addr); in camif_hw_set_lastirq()
508 camif_write(vp->camif, addr, cfg); in camif_hw_set_lastirq()
511 void camif_hw_enable_capture(struct camif_vp *vp) in camif_hw_enable_capture() argument
513 struct camif_dev *camif = vp->camif; in camif_hw_enable_capture()
516 cfg = camif_read(camif, S3C_CAMIF_REG_CIIMGCPT(vp->offset)); in camif_hw_enable_capture()
520 cfg |= CIIMGCPT_CPT_FREN_ENABLE(vp->id); in camif_hw_enable_capture()
522 if (vp->scaler.enable) in camif_hw_enable_capture()
523 cfg |= CIIMGCPT_IMGCPTEN_SC(vp->id); in camif_hw_enable_capture()
528 camif_write(camif, S3C_CAMIF_REG_CIIMGCPT(vp->offset), cfg); in camif_hw_enable_capture()
534 void camif_hw_disable_capture(struct camif_vp *vp) in camif_hw_disable_capture() argument
536 struct camif_dev *camif = vp->camif; in camif_hw_disable_capture()
539 cfg = camif_read(camif, S3C_CAMIF_REG_CIIMGCPT(vp->offset)); in camif_hw_disable_capture()
540 cfg &= ~CIIMGCPT_IMGCPTEN_SC(vp->id); in camif_hw_disable_capture()
551 camif_write(camif, S3C_CAMIF_REG_CIIMGCPT(vp->offset), cfg); in camif_hw_disable_capture()