Lines Matching defs:ccdc
169 static inline u32 vpfe_reg_read(struct vpfe_ccdc *ccdc, u32 offset)
171 return ioread32(ccdc->ccdc_cfg.base_addr + offset);
174 static inline void vpfe_reg_write(struct vpfe_ccdc *ccdc, u32 val, u32 offset)
176 iowrite32(val, ccdc->ccdc_cfg.base_addr + offset);
179 static inline struct vpfe_device *to_vpfe(struct vpfe_ccdc *ccdc)
181 return container_of(ccdc, struct vpfe_device, ccdc);
190 static inline void vpfe_pcr_enable(struct vpfe_ccdc *ccdc, int flag)
192 vpfe_reg_write(ccdc, !!flag, VPFE_PCR);
195 static void vpfe_config_enable(struct vpfe_ccdc *ccdc, int flag)
200 cfg = vpfe_reg_read(ccdc, VPFE_CONFIG);
206 vpfe_reg_write(ccdc, cfg, VPFE_CONFIG);
209 static void vpfe_ccdc_setwin(struct vpfe_ccdc *ccdc,
225 vpfe_reg_write(ccdc, (horz_start << VPFE_HORZ_INFO_SPH_SHIFT) |
246 vpfe_reg_write(ccdc, val, VPFE_VDINT);
248 vpfe_reg_write(ccdc, (vert_start << VPFE_VERT_START_SLV0_SHIFT) |
250 vpfe_reg_write(ccdc, vert_nr_lines, VPFE_VERT_LINES);
253 static void vpfe_reg_dump(struct vpfe_ccdc *ccdc)
255 struct vpfe_device *vpfe = to_vpfe(ccdc);
257 vpfe_dbg(3, vpfe, "ALAW: 0x%x\n", vpfe_reg_read(ccdc, VPFE_ALAW));
258 vpfe_dbg(3, vpfe, "CLAMP: 0x%x\n", vpfe_reg_read(ccdc, VPFE_CLAMP));
259 vpfe_dbg(3, vpfe, "DCSUB: 0x%x\n", vpfe_reg_read(ccdc, VPFE_DCSUB));
260 vpfe_dbg(3, vpfe, "BLKCMP: 0x%x\n", vpfe_reg_read(ccdc, VPFE_BLKCMP));
261 vpfe_dbg(3, vpfe, "COLPTN: 0x%x\n", vpfe_reg_read(ccdc, VPFE_COLPTN));
262 vpfe_dbg(3, vpfe, "SDOFST: 0x%x\n", vpfe_reg_read(ccdc, VPFE_SDOFST));
264 vpfe_reg_read(ccdc, VPFE_SYNMODE));
266 vpfe_reg_read(ccdc, VPFE_HSIZE_OFF));
268 vpfe_reg_read(ccdc, VPFE_HORZ_INFO));
270 vpfe_reg_read(ccdc, VPFE_VERT_START));
272 vpfe_reg_read(ccdc, VPFE_VERT_LINES));
276 vpfe_ccdc_validate_param(struct vpfe_ccdc *ccdc,
279 struct vpfe_device *vpfe = to_vpfe(ccdc);
299 vpfe_ccdc_update_raw_params(struct vpfe_ccdc *ccdc,
303 &ccdc->ccdc_cfg.bayer.config_params;
312 static void vpfe_ccdc_restore_defaults(struct vpfe_ccdc *ccdc)
317 vpfe_pcr_enable(ccdc, 0);
321 vpfe_reg_write(ccdc, 0, i);
323 vpfe_reg_write(ccdc, VPFE_NO_CULLING, VPFE_CULLING);
324 vpfe_reg_write(ccdc, VPFE_CCDC_GAMMA_BITS_11_2, VPFE_ALAW);
327 static int vpfe_ccdc_close(struct vpfe_ccdc *ccdc, struct device *dev)
329 struct vpfe_device *vpfe = to_vpfe(ccdc);
332 pcr = vpfe_reg_read(ccdc, VPFE_PCR);
336 dma_cntl = vpfe_reg_read(ccdc, VPFE_DMA_CNTL);
342 vpfe_ccdc_restore_defaults(ccdc);
345 vpfe_config_enable(ccdc, 0);
351 static int vpfe_ccdc_set_params(struct vpfe_ccdc *ccdc, void __user *params)
353 struct vpfe_device *vpfe = to_vpfe(ccdc);
357 if (ccdc->ccdc_cfg.if_type != VPFE_RAW_BAYER)
363 "%s: error in copying ccdc params, %d\n",
368 if (!vpfe_ccdc_validate_param(ccdc, &raw_params)) {
369 vpfe_ccdc_update_raw_params(ccdc, &raw_params);
380 static void vpfe_ccdc_config_ycbcr(struct vpfe_ccdc *ccdc)
382 struct ccdc_params_ycbcr *params = &ccdc->ccdc_cfg.ycbcr;
390 vpfe_ccdc_restore_defaults(ccdc);
405 vpfe_reg_write(ccdc, VPFE_REC656IF_BT656_EN, VPFE_REC656IF);
412 if (ccdc->ccdc_cfg.if_type == VPFE_BT656_10BIT)
425 vpfe_reg_write(ccdc, syn_mode, VPFE_SYNMODE);
428 vpfe_ccdc_setwin(ccdc, ¶ms->win,
435 if (ccdc->ccdc_cfg.if_type == VPFE_BT656_10BIT)
436 vpfe_reg_write(ccdc,
441 vpfe_reg_write(ccdc,
449 vpfe_reg_write(ccdc, params->bytesperline, VPFE_HSIZE_OFF);
454 vpfe_reg_write(ccdc, VPFE_SDOFST_FIELD_INTERLEAVED,
459 vpfe_ccdc_config_black_clamp(struct vpfe_ccdc *ccdc,
467 vpfe_reg_write(ccdc, val, VPFE_DCSUB);
468 vpfe_reg_write(ccdc, VPFE_CLAMP_DEFAULT_VAL, VPFE_CLAMP);
482 vpfe_reg_write(ccdc, val, VPFE_CLAMP);
484 vpfe_reg_write(ccdc, VPFE_DCSUB_DEFAULT_VAL, VPFE_DCSUB);
488 vpfe_ccdc_config_black_compense(struct vpfe_ccdc *ccdc,
500 vpfe_reg_write(ccdc, val, VPFE_BLKCMP);
507 static void vpfe_ccdc_config_raw(struct vpfe_ccdc *ccdc)
509 struct vpfe_device *vpfe = to_vpfe(ccdc);
511 &ccdc->ccdc_cfg.bayer.config_params;
512 struct ccdc_params_raw *params = &ccdc->ccdc_cfg.bayer;
517 vpfe_ccdc_restore_defaults(ccdc);
520 vpfe_reg_write(ccdc, VPFE_LATCH_ON_VSYNC_DISABLE, VPFE_CCDCFG);
543 vpfe_reg_write(ccdc, val, VPFE_ALAW);
548 vpfe_ccdc_setwin(ccdc, ¶ms->win, params->frm_fmt,
552 vpfe_ccdc_config_black_clamp(ccdc, &config_params->blk_clamp);
555 vpfe_ccdc_config_black_compense(ccdc, &config_params->blk_comp);
566 vpfe_reg_write(ccdc, params->bytesperline, VPFE_HSIZE_OFF);
575 vpfe_reg_write(ccdc, VPFE_INTERLACED_IMAGE_INVERT,
579 vpfe_reg_write(ccdc, VPFE_INTERLACED_NO_IMAGE_INVERT,
583 vpfe_reg_write(ccdc, VPFE_PROGRESSIVE_NO_IMAGE_INVERT,
587 vpfe_reg_write(ccdc, syn_mode, VPFE_SYNMODE);
589 vpfe_reg_dump(ccdc);
593 vpfe_ccdc_set_buftype(struct vpfe_ccdc *ccdc,
596 if (ccdc->ccdc_cfg.if_type == VPFE_RAW_BAYER)
597 ccdc->ccdc_cfg.bayer.buf_type = buf_type;
599 ccdc->ccdc_cfg.ycbcr.buf_type = buf_type;
604 static inline enum ccdc_buftype vpfe_ccdc_get_buftype(struct vpfe_ccdc *ccdc)
606 if (ccdc->ccdc_cfg.if_type == VPFE_RAW_BAYER)
607 return ccdc->ccdc_cfg.bayer.buf_type;
609 return ccdc->ccdc_cfg.ycbcr.buf_type;
612 static int vpfe_ccdc_set_pixel_format(struct vpfe_ccdc *ccdc, u32 pixfmt)
614 struct vpfe_device *vpfe = to_vpfe(ccdc);
617 __func__, ccdc->ccdc_cfg.if_type, print_fourcc(pixfmt));
619 if (ccdc->ccdc_cfg.if_type == VPFE_RAW_BAYER) {
620 ccdc->ccdc_cfg.bayer.pix_fmt = CCDC_PIXFMT_RAW;
625 ccdc->ccdc_cfg.bayer.config_params.alaw.enable = 0;
629 ccdc->ccdc_cfg.bayer.config_params.alaw.enable = 1;
646 ccdc->ccdc_cfg.ycbcr.pix_order = CCDC_PIXORDER_YCBYCR;
650 ccdc->ccdc_cfg.ycbcr.pix_order = CCDC_PIXORDER_CBYCRY;
661 static u32 vpfe_ccdc_get_pixel_format(struct vpfe_ccdc *ccdc)
665 if (ccdc->ccdc_cfg.if_type == VPFE_RAW_BAYER) {
668 if (ccdc->ccdc_cfg.ycbcr.pix_order == CCDC_PIXORDER_YCBYCR)
678 vpfe_ccdc_set_image_window(struct vpfe_ccdc *ccdc,
681 if (ccdc->ccdc_cfg.if_type == VPFE_RAW_BAYER) {
682 ccdc->ccdc_cfg.bayer.win = *win;
683 ccdc->ccdc_cfg.bayer.bytesperpixel = bpp;
684 ccdc->ccdc_cfg.bayer.bytesperline = ALIGN(win->width * bpp, 32);
686 ccdc->ccdc_cfg.ycbcr.win = *win;
687 ccdc->ccdc_cfg.ycbcr.bytesperpixel = bpp;
688 ccdc->ccdc_cfg.ycbcr.bytesperline = ALIGN(win->width * bpp, 32);
695 vpfe_ccdc_get_image_window(struct vpfe_ccdc *ccdc,
698 if (ccdc->ccdc_cfg.if_type == VPFE_RAW_BAYER)
699 *win = ccdc->ccdc_cfg.bayer.win;
701 *win = ccdc->ccdc_cfg.ycbcr.win;
704 static inline unsigned int vpfe_ccdc_get_line_length(struct vpfe_ccdc *ccdc)
706 if (ccdc->ccdc_cfg.if_type == VPFE_RAW_BAYER)
707 return ccdc->ccdc_cfg.bayer.bytesperline;
709 return ccdc->ccdc_cfg.ycbcr.bytesperline;
713 vpfe_ccdc_set_frame_format(struct vpfe_ccdc *ccdc,
716 if (ccdc->ccdc_cfg.if_type == VPFE_RAW_BAYER)
717 ccdc->ccdc_cfg.bayer.frm_fmt = frm_fmt;
719 ccdc->ccdc_cfg.ycbcr.frm_fmt = frm_fmt;
725 vpfe_ccdc_get_frame_format(struct vpfe_ccdc *ccdc)
727 if (ccdc->ccdc_cfg.if_type == VPFE_RAW_BAYER)
728 return ccdc->ccdc_cfg.bayer.frm_fmt;
730 return ccdc->ccdc_cfg.ycbcr.frm_fmt;
733 static inline int vpfe_ccdc_getfid(struct vpfe_ccdc *ccdc)
735 return (vpfe_reg_read(ccdc, VPFE_SYNMODE) >> 15) & 1;
738 static inline void vpfe_set_sdr_addr(struct vpfe_ccdc *ccdc, unsigned long addr)
740 vpfe_reg_write(ccdc, addr & 0xffffffe0, VPFE_SDR_ADDR);
743 static int vpfe_ccdc_set_hw_if_params(struct vpfe_ccdc *ccdc,
746 struct vpfe_device *vpfe = to_vpfe(ccdc);
748 ccdc->ccdc_cfg.if_type = params->if_type;
755 ccdc->ccdc_cfg.ycbcr.vd_pol = params->vdpol;
756 ccdc->ccdc_cfg.ycbcr.hd_pol = params->hdpol;
760 ccdc->ccdc_cfg.bayer.vd_pol = params->vdpol;
761 ccdc->ccdc_cfg.bayer.hd_pol = params->hdpol;
763 ccdc->ccdc_cfg.bayer.config_params.data_sz =
766 ccdc->ccdc_cfg.bayer.config_params.data_sz =
771 ccdc->ccdc_cfg.bayer.config_params.data_sz);
781 static void vpfe_clear_intr(struct vpfe_ccdc *ccdc, int vdint)
785 vpfe_int_status = vpfe_reg_read(ccdc, VPFE_IRQ_STS);
817 vpfe_reg_write(ccdc, vpfe_int_status, VPFE_IRQ_STS);
819 vpfe_int_status = vpfe_reg_read(ccdc, VPFE_IRQ_STS);
822 vpfe_reg_write(ccdc, 1, VPFE_IRQ_EOI);
825 static void vpfe_ccdc_config_defaults(struct vpfe_ccdc *ccdc)
827 ccdc->ccdc_cfg.if_type = VPFE_RAW_BAYER;
829 ccdc->ccdc_cfg.ycbcr.pix_fmt = CCDC_PIXFMT_YCBCR_8BIT;
830 ccdc->ccdc_cfg.ycbcr.frm_fmt = CCDC_FRMFMT_INTERLACED;
831 ccdc->ccdc_cfg.ycbcr.fid_pol = VPFE_PINPOL_POSITIVE;
832 ccdc->ccdc_cfg.ycbcr.vd_pol = VPFE_PINPOL_POSITIVE;
833 ccdc->ccdc_cfg.ycbcr.hd_pol = VPFE_PINPOL_POSITIVE;
834 ccdc->ccdc_cfg.ycbcr.pix_order = CCDC_PIXORDER_CBYCRY;
835 ccdc->ccdc_cfg.ycbcr.buf_type = CCDC_BUFTYPE_FLD_INTERLEAVED;
837 ccdc->ccdc_cfg.ycbcr.win.left = 0;
838 ccdc->ccdc_cfg.ycbcr.win.top = 0;
839 ccdc->ccdc_cfg.ycbcr.win.width = 720;
840 ccdc->ccdc_cfg.ycbcr.win.height = 576;
841 ccdc->ccdc_cfg.ycbcr.bt656_enable = 1;
843 ccdc->ccdc_cfg.bayer.pix_fmt = CCDC_PIXFMT_RAW;
844 ccdc->ccdc_cfg.bayer.frm_fmt = CCDC_FRMFMT_PROGRESSIVE;
845 ccdc->ccdc_cfg.bayer.fid_pol = VPFE_PINPOL_POSITIVE;
846 ccdc->ccdc_cfg.bayer.vd_pol = VPFE_PINPOL_POSITIVE;
847 ccdc->ccdc_cfg.bayer.hd_pol = VPFE_PINPOL_POSITIVE;
849 ccdc->ccdc_cfg.bayer.win.left = 0;
850 ccdc->ccdc_cfg.bayer.win.top = 0;
851 ccdc->ccdc_cfg.bayer.win.width = 800;
852 ccdc->ccdc_cfg.bayer.win.height = 600;
853 ccdc->ccdc_cfg.bayer.config_params.data_sz = VPFE_CCDC_DATA_8BITS;
854 ccdc->ccdc_cfg.bayer.config_params.alaw.gamma_wd =
870 vpfe_ccdc_get_image_window(&vpfe->ccdc, &image_win);
873 f->fmt.pix.bytesperline = vpfe_ccdc_get_line_length(&vpfe->ccdc);
876 buf_type = vpfe_ccdc_get_buftype(&vpfe->ccdc);
877 f->fmt.pix.pixelformat = vpfe_ccdc_get_pixel_format(&vpfe->ccdc);
878 frm_fmt = vpfe_ccdc_get_frame_format(&vpfe->ccdc);
907 if (vpfe_ccdc_set_pixel_format(&vpfe->ccdc,
909 vpfe_err(vpfe, "couldn't set pix format in ccdc\n");
915 vpfe_ccdc_set_image_window(&vpfe->ccdc, &vpfe->crop, bpp);
921 &vpfe->ccdc,
932 &vpfe->ccdc,
943 return vpfe_ccdc_set_frame_format(&vpfe->ccdc, frm_fmt);
949 * pix format & crop values in the vpfe device and ccdc. It first
954 * values in ccdc
1028 vpfe_config_enable(&vpfe->ccdc, 1);
1030 vpfe_ccdc_restore_defaults(&vpfe->ccdc);
1033 vpfe_clear_intr(&vpfe->ccdc, -1);
1063 vpfe_ccdc_close(&vpfe->ccdc, vpfe->pdev);
1125 vpfe_set_sdr_addr(&vpfe->ccdc, addr);
1135 vpfe_set_sdr_addr(&vpfe->ccdc, addr);
1163 fid = vpfe_ccdc_getfid(&vpfe->ccdc);
1221 intr_status = vpfe_reg_read(&vpfe->ccdc, VPFE_IRQ_STS);
1242 vpfe_clear_intr(&vpfe->ccdc, intr_status);
1252 frame_format = vpfe_ccdc_get_frame_format(&vpfe->ccdc);
1256 vpfe_reg_write(&vpfe->ccdc, intr, VPFE_IRQ_EN_CLR);
1264 frame_format = vpfe_ccdc_get_frame_format(&vpfe->ccdc);
1268 vpfe_reg_write(&vpfe->ccdc, intr, VPFE_IRQ_EN_SET);
1494 /* set image capture parameters in the ccdc */
1667 /* set the bus/interface parameter for the sub device in ccdc */
1668 ret = vpfe_ccdc_set_hw_if_params(&vpfe->ccdc, &sdinfo->vpfe_param);
1755 vpfe_ccdc_get_image_window(&vpfe->ccdc, &image_win);
1886 if (vpfe->ccdc.ccdc_cfg.if_type == VPFE_RAW_BAYER)
1887 vpfe_ccdc_config_raw(&vpfe->ccdc);
1889 vpfe_ccdc_config_ycbcr(&vpfe->ccdc);
1901 vpfe_set_sdr_addr(&vpfe->ccdc, (unsigned long)(addr));
1903 vpfe_pcr_enable(&vpfe->ccdc, 1);
1915 vpfe_pcr_enable(&vpfe->ccdc, 0);
1932 vpfe_pcr_enable(&vpfe->ccdc, 0);
2026 vpfe_ccdc_set_image_window(&vpfe->ccdc, &r, bpp);
2030 vpfe_ccdc_get_line_length(&vpfe->ccdc);
2059 ret = vpfe_ccdc_set_params(&vpfe->ccdc, (void __user *)param);
2394 struct vpfe_ccdc *ccdc;
2411 ccdc = &vpfe->ccdc;
2414 ccdc->ccdc_cfg.base_addr = devm_ioremap_resource(&pdev->dev, res);
2415 if (IS_ERR(ccdc->ccdc_cfg.base_addr)) {
2416 ret = PTR_ERR(ccdc->ccdc_cfg.base_addr);
2454 vpfe_ccdc_config_defaults(ccdc);
2503 static void vpfe_save_context(struct vpfe_ccdc *ccdc)
2505 ccdc->ccdc_ctx[VPFE_PCR >> 2] = vpfe_reg_read(ccdc, VPFE_PCR);
2506 ccdc->ccdc_ctx[VPFE_SYNMODE >> 2] = vpfe_reg_read(ccdc, VPFE_SYNMODE);
2507 ccdc->ccdc_ctx[VPFE_SDOFST >> 2] = vpfe_reg_read(ccdc, VPFE_SDOFST);
2508 ccdc->ccdc_ctx[VPFE_SDR_ADDR >> 2] = vpfe_reg_read(ccdc, VPFE_SDR_ADDR);
2509 ccdc->ccdc_ctx[VPFE_CLAMP >> 2] = vpfe_reg_read(ccdc, VPFE_CLAMP);
2510 ccdc->ccdc_ctx[VPFE_DCSUB >> 2] = vpfe_reg_read(ccdc, VPFE_DCSUB);
2511 ccdc->ccdc_ctx[VPFE_COLPTN >> 2] = vpfe_reg_read(ccdc, VPFE_COLPTN);
2512 ccdc->ccdc_ctx[VPFE_BLKCMP >> 2] = vpfe_reg_read(ccdc, VPFE_BLKCMP);
2513 ccdc->ccdc_ctx[VPFE_VDINT >> 2] = vpfe_reg_read(ccdc, VPFE_VDINT);
2514 ccdc->ccdc_ctx[VPFE_ALAW >> 2] = vpfe_reg_read(ccdc, VPFE_ALAW);
2515 ccdc->ccdc_ctx[VPFE_REC656IF >> 2] = vpfe_reg_read(ccdc, VPFE_REC656IF);
2516 ccdc->ccdc_ctx[VPFE_CCDCFG >> 2] = vpfe_reg_read(ccdc, VPFE_CCDCFG);
2517 ccdc->ccdc_ctx[VPFE_CULLING >> 2] = vpfe_reg_read(ccdc, VPFE_CULLING);
2518 ccdc->ccdc_ctx[VPFE_HD_VD_WID >> 2] = vpfe_reg_read(ccdc,
2520 ccdc->ccdc_ctx[VPFE_PIX_LINES >> 2] = vpfe_reg_read(ccdc,
2522 ccdc->ccdc_ctx[VPFE_HORZ_INFO >> 2] = vpfe_reg_read(ccdc,
2524 ccdc->ccdc_ctx[VPFE_VERT_START >> 2] = vpfe_reg_read(ccdc,
2526 ccdc->ccdc_ctx[VPFE_VERT_LINES >> 2] = vpfe_reg_read(ccdc,
2528 ccdc->ccdc_ctx[VPFE_HSIZE_OFF >> 2] = vpfe_reg_read(ccdc,
2535 struct vpfe_ccdc *ccdc = &vpfe->ccdc;
2545 vpfe_config_enable(ccdc, 1);
2548 vpfe_save_context(ccdc);
2551 vpfe_pcr_enable(ccdc, 0);
2552 vpfe_config_enable(ccdc, 0);
2564 static void vpfe_restore_context(struct vpfe_ccdc *ccdc)
2566 vpfe_reg_write(ccdc, ccdc->ccdc_ctx[VPFE_SYNMODE >> 2], VPFE_SYNMODE);
2567 vpfe_reg_write(ccdc, ccdc->ccdc_ctx[VPFE_CULLING >> 2], VPFE_CULLING);
2568 vpfe_reg_write(ccdc, ccdc->ccdc_ctx[VPFE_SDOFST >> 2], VPFE_SDOFST);
2569 vpfe_reg_write(ccdc, ccdc->ccdc_ctx[VPFE_SDR_ADDR >> 2], VPFE_SDR_ADDR);
2570 vpfe_reg_write(ccdc, ccdc->ccdc_ctx[VPFE_CLAMP >> 2], VPFE_CLAMP);
2571 vpfe_reg_write(ccdc, ccdc->ccdc_ctx[VPFE_DCSUB >> 2], VPFE_DCSUB);
2572 vpfe_reg_write(ccdc, ccdc->ccdc_ctx[VPFE_COLPTN >> 2], VPFE_COLPTN);
2573 vpfe_reg_write(ccdc, ccdc->ccdc_ctx[VPFE_BLKCMP >> 2], VPFE_BLKCMP);
2574 vpfe_reg_write(ccdc, ccdc->ccdc_ctx[VPFE_VDINT >> 2], VPFE_VDINT);
2575 vpfe_reg_write(ccdc, ccdc->ccdc_ctx[VPFE_ALAW >> 2], VPFE_ALAW);
2576 vpfe_reg_write(ccdc, ccdc->ccdc_ctx[VPFE_REC656IF >> 2], VPFE_REC656IF);
2577 vpfe_reg_write(ccdc, ccdc->ccdc_ctx[VPFE_CCDCFG >> 2], VPFE_CCDCFG);
2578 vpfe_reg_write(ccdc, ccdc->ccdc_ctx[VPFE_PCR >> 2], VPFE_PCR);
2579 vpfe_reg_write(ccdc, ccdc->ccdc_ctx[VPFE_HD_VD_WID >> 2],
2581 vpfe_reg_write(ccdc, ccdc->ccdc_ctx[VPFE_PIX_LINES >> 2],
2583 vpfe_reg_write(ccdc, ccdc->ccdc_ctx[VPFE_HORZ_INFO >> 2],
2585 vpfe_reg_write(ccdc, ccdc->ccdc_ctx[VPFE_VERT_START >> 2],
2587 vpfe_reg_write(ccdc, ccdc->ccdc_ctx[VPFE_VERT_LINES >> 2],
2589 vpfe_reg_write(ccdc, ccdc->ccdc_ctx[VPFE_HSIZE_OFF >> 2],
2596 struct vpfe_ccdc *ccdc = &vpfe->ccdc;
2602 vpfe_config_enable(ccdc, 1);
2605 vpfe_restore_context(ccdc);
2607 vpfe_config_enable(ccdc, 0);