Lines Matching refs:isp
64 #define CCDC_PRINT_REGISTER(isp, name)\ argument
65 dev_dbg(isp->dev, "###CCDC " #name "=0x%08x\n", \
66 isp_reg_readl(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_##name))
70 struct isp_device *isp = to_isp_device(ccdc); in ccdc_print_status() local
72 dev_dbg(isp->dev, "-------------CCDC Register dump-------------\n"); in ccdc_print_status()
74 CCDC_PRINT_REGISTER(isp, PCR); in ccdc_print_status()
75 CCDC_PRINT_REGISTER(isp, SYN_MODE); in ccdc_print_status()
76 CCDC_PRINT_REGISTER(isp, HD_VD_WID); in ccdc_print_status()
77 CCDC_PRINT_REGISTER(isp, PIX_LINES); in ccdc_print_status()
78 CCDC_PRINT_REGISTER(isp, HORZ_INFO); in ccdc_print_status()
79 CCDC_PRINT_REGISTER(isp, VERT_START); in ccdc_print_status()
80 CCDC_PRINT_REGISTER(isp, VERT_LINES); in ccdc_print_status()
81 CCDC_PRINT_REGISTER(isp, CULLING); in ccdc_print_status()
82 CCDC_PRINT_REGISTER(isp, HSIZE_OFF); in ccdc_print_status()
83 CCDC_PRINT_REGISTER(isp, SDOFST); in ccdc_print_status()
84 CCDC_PRINT_REGISTER(isp, SDR_ADDR); in ccdc_print_status()
85 CCDC_PRINT_REGISTER(isp, CLAMP); in ccdc_print_status()
86 CCDC_PRINT_REGISTER(isp, DCSUB); in ccdc_print_status()
87 CCDC_PRINT_REGISTER(isp, COLPTN); in ccdc_print_status()
88 CCDC_PRINT_REGISTER(isp, BLKCMP); in ccdc_print_status()
89 CCDC_PRINT_REGISTER(isp, FPC); in ccdc_print_status()
90 CCDC_PRINT_REGISTER(isp, FPC_ADDR); in ccdc_print_status()
91 CCDC_PRINT_REGISTER(isp, VDINT); in ccdc_print_status()
92 CCDC_PRINT_REGISTER(isp, ALAW); in ccdc_print_status()
93 CCDC_PRINT_REGISTER(isp, REC656IF); in ccdc_print_status()
94 CCDC_PRINT_REGISTER(isp, CFG); in ccdc_print_status()
95 CCDC_PRINT_REGISTER(isp, FMTCFG); in ccdc_print_status()
96 CCDC_PRINT_REGISTER(isp, FMT_HORZ); in ccdc_print_status()
97 CCDC_PRINT_REGISTER(isp, FMT_VERT); in ccdc_print_status()
98 CCDC_PRINT_REGISTER(isp, PRGEVEN0); in ccdc_print_status()
99 CCDC_PRINT_REGISTER(isp, PRGEVEN1); in ccdc_print_status()
100 CCDC_PRINT_REGISTER(isp, PRGODD0); in ccdc_print_status()
101 CCDC_PRINT_REGISTER(isp, PRGODD1); in ccdc_print_status()
102 CCDC_PRINT_REGISTER(isp, VP_OUT); in ccdc_print_status()
103 CCDC_PRINT_REGISTER(isp, LSC_CONFIG); in ccdc_print_status()
104 CCDC_PRINT_REGISTER(isp, LSC_INITIAL); in ccdc_print_status()
105 CCDC_PRINT_REGISTER(isp, LSC_TABLE_BASE); in ccdc_print_status()
106 CCDC_PRINT_REGISTER(isp, LSC_TABLE_OFFSET); in ccdc_print_status()
108 dev_dbg(isp->dev, "--------------------------------------------\n"); in ccdc_print_status()
117 struct isp_device *isp = to_isp_device(ccdc); in omap3isp_ccdc_busy() local
119 return isp_reg_readl(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_PCR) & in omap3isp_ccdc_busy()
137 struct isp_device *isp = to_isp_device(ccdc); in ccdc_lsc_validate_config() local
149 dev_dbg(isp->dev, "CCDC: LSC: Invalid paxel size\n"); in ccdc_lsc_validate_config()
154 dev_dbg(isp->dev, "CCDC: LSC: Offset must be a multiple of " in ccdc_lsc_validate_config()
160 dev_dbg(isp->dev, "CCDC: LSC: initial_x and y must be even\n"); in ccdc_lsc_validate_config()
180 dev_dbg(isp->dev, "CCDC: LSC: too small table\n"); in ccdc_lsc_validate_config()
184 dev_dbg(isp->dev, "CCDC: LSC: Offset is too small\n"); in ccdc_lsc_validate_config()
188 dev_dbg(isp->dev, "CCDC: LSC: Wrong size/offset combination\n"); in ccdc_lsc_validate_config()
212 struct isp_device *isp = to_isp_device(ccdc); in ccdc_lsc_setup_regs() local
215 isp_reg_writel(isp, cfg->offset, OMAP3_ISP_IOMEM_CCDC, in ccdc_lsc_setup_regs()
222 isp_reg_writel(isp, reg, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_LSC_CONFIG); in ccdc_lsc_setup_regs()
229 isp_reg_writel(isp, reg, OMAP3_ISP_IOMEM_CCDC, in ccdc_lsc_setup_regs()
235 struct isp_device *isp = to_isp_device(ccdc); in ccdc_lsc_wait_prefetch() local
238 isp_reg_writel(isp, IRQ0STATUS_CCDC_LSC_PREF_COMP_IRQ, in ccdc_lsc_wait_prefetch()
243 if (isp_reg_readl(isp, OMAP3_ISP_IOMEM_MAIN, ISP_IRQ0STATUS) & in ccdc_lsc_wait_prefetch()
245 isp_reg_writel(isp, IRQ0STATUS_CCDC_LSC_PREF_COMP_IRQ, in ccdc_lsc_wait_prefetch()
264 struct isp_device *isp = to_isp_device(ccdc); in __ccdc_lsc_enable() local
276 omap3isp_sbl_enable(isp, OMAP3_ISP_SBL_CCDC_LSC_READ); in __ccdc_lsc_enable()
278 isp_reg_clr_set(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_LSC_CONFIG, in __ccdc_lsc_enable()
283 isp_reg_clr(isp, OMAP3_ISP_IOMEM_CCDC, in __ccdc_lsc_enable()
299 struct isp_device *isp = to_isp_device(ccdc); in ccdc_lsc_busy() local
301 return isp_reg_readl(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_LSC_CONFIG) & in ccdc_lsc_busy()
338 struct isp_device *isp = to_isp_device(ccdc); in ccdc_lsc_error_handler() local
348 isp_reg_clr(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_LSC_CONFIG, in ccdc_lsc_error_handler()
356 struct isp_device *isp = to_isp_device(ccdc); in ccdc_lsc_free_request() local
363 dma_free_coherent(isp->dev, req->config.size, req->table.addr, in ccdc_lsc_free_request()
407 struct isp_device *isp = to_isp_device(ccdc); in ccdc_lsc_config() local
437 req->table.addr = dma_alloc_coherent(isp->dev, req->config.size, in ccdc_lsc_config()
445 ret = dma_get_sgtable(isp->dev, &req->table.sgt, in ccdc_lsc_config()
451 dma_sync_sg_for_cpu(isp->dev, req->table.sgt.sgl, in ccdc_lsc_config()
460 dma_sync_sg_for_device(isp->dev, req->table.sgt.sgl, in ccdc_lsc_config()
537 struct isp_device *isp = to_isp_device(ccdc); in ccdc_configure_clamp() local
545 isp_reg_writel(isp, clamp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_CLAMP); in ccdc_configure_clamp()
547 isp_reg_writel(isp, ccdc->clamp.dcsubval, in ccdc_configure_clamp()
551 isp_reg_clr_set(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_CLAMP, in ccdc_configure_clamp()
562 struct isp_device *isp = to_isp_device(ccdc); in ccdc_configure_fpc() local
564 isp_reg_clr(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_FPC, ISPCCDC_FPC_FPCEN); in ccdc_configure_fpc()
569 isp_reg_writel(isp, ccdc->fpc.dma, OMAP3_ISP_IOMEM_CCDC, in ccdc_configure_fpc()
572 isp_reg_writel(isp, (ccdc->fpc.fpnum << ISPCCDC_FPC_FPNUM_SHIFT), in ccdc_configure_fpc()
574 isp_reg_writel(isp, (ccdc->fpc.fpnum << ISPCCDC_FPC_FPNUM_SHIFT) | in ccdc_configure_fpc()
584 struct isp_device *isp = to_isp_device(ccdc); in ccdc_configure_black_comp() local
592 isp_reg_writel(isp, blcomp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_BLKCMP); in ccdc_configure_black_comp()
601 struct isp_device *isp = to_isp_device(ccdc); in ccdc_configure_lpf() local
603 isp_reg_clr_set(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_SYN_MODE, in ccdc_configure_lpf()
614 struct isp_device *isp = to_isp_device(ccdc); in ccdc_configure_alaw() local
641 isp_reg_writel(isp, alaw, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_ALAW); in ccdc_configure_alaw()
651 struct isp_device *isp = to_isp_device(ccdc); in ccdc_config_imgattr() local
653 isp_reg_writel(isp, colptn, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_COLPTN); in ccdc_config_imgattr()
668 struct isp_device *isp = to_isp_device(ccdc); in ccdc_config() local
730 fpc_new.addr = dma_alloc_coherent(isp->dev, size, in ccdc_config()
739 dma_free_coherent(isp->dev, size, fpc_new.addr, in ccdc_config()
751 dma_free_coherent(isp->dev, fpc_old.fpnum * 4, in ccdc_config()
785 void omap3isp_ccdc_restore_context(struct isp_device *isp) in omap3isp_ccdc_restore_context() argument
787 struct isp_ccdc_device *ccdc = &isp->isp_ccdc; in omap3isp_ccdc_restore_context()
789 isp_reg_set(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_CFG, ISPCCDC_CFG_VDLC); in omap3isp_ccdc_restore_context()
808 struct isp_device *isp = to_isp_device(ccdc); in ccdc_config_vp() local
812 unsigned int max_div = isp->revision == ISP_REVISION_15_0 ? 64 : 8; in ccdc_config_vp()
822 isp_reg_writel(isp, 0, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_FMTCFG); in ccdc_config_vp()
826 isp_reg_writel(isp, (0 << ISPCCDC_FMT_HORZ_FMTSPH_SHIFT) | in ccdc_config_vp()
829 isp_reg_writel(isp, (0 << ISPCCDC_FMT_VERT_FMTSLV_SHIFT) | in ccdc_config_vp()
833 isp_reg_writel(isp, (format->width << ISPCCDC_VP_OUT_HORZ_NUM_SHIFT) | in ccdc_config_vp()
863 isp_reg_writel(isp, fmtcfg, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_FMTCFG); in ccdc_config_vp()
890 struct isp_device *isp = to_isp_device(ccdc); in ccdc_config_outlineoffset() local
893 isp_reg_writel(isp, bpl & 0xffff, OMAP3_ISP_IOMEM_CCDC, in ccdc_config_outlineoffset()
913 isp_reg_writel(isp, sdofst, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_SDOFST); in ccdc_config_outlineoffset()
925 struct isp_device *isp = to_isp_device(ccdc); in ccdc_set_outaddr() local
927 isp_reg_writel(isp, addr, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_SDR_ADDR); in ccdc_set_outaddr()
968 struct isp_device *isp = to_isp_device(ccdc); in ccdc_config_sync_if() local
1018 isp_reg_writel(isp, syn_mode, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_SYN_MODE); in ccdc_config_sync_if()
1024 isp_reg_set(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_CFG, in ccdc_config_sync_if()
1027 isp_reg_clr(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_CFG, in ccdc_config_sync_if()
1034 isp_reg_set(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_REC656IF, in ccdc_config_sync_if()
1037 isp_reg_clr(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_REC656IF, in ccdc_config_sync_if()
1117 struct isp_device *isp = to_isp_device(ccdc); in ccdc_configure() local
1178 omap3isp_configure_bridge(isp, ccdc->input, parcfg, shift, bridge); in ccdc_configure()
1183 syn_mode = isp_reg_readl(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_SYN_MODE); in ccdc_configure()
1224 isp_reg_writel(isp, ((format->height - 2) << ISPCCDC_VDINT_0_SHIFT) | in ccdc_configure()
1245 isp_reg_writel(isp, (sph << ISPCCDC_HORZ_INFO_SPH_SHIFT) | in ccdc_configure()
1248 isp_reg_writel(isp, (crop->top << ISPCCDC_VERT_START_SLV0_SHIFT) | in ccdc_configure()
1251 isp_reg_writel(isp, (crop->height - 1) in ccdc_configure()
1271 isp_reg_set(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_CFG, in ccdc_configure()
1274 isp_reg_clr(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_CFG, in ccdc_configure()
1286 isp_reg_writel(isp, syn_mode, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_SYN_MODE); in ccdc_configure()
1319 struct isp_device *isp = to_isp_device(ccdc); in __ccdc_enable() local
1321 isp_reg_clr_set(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_PCR, in __ccdc_enable()
1382 struct isp_device *isp = to_isp_device(ccdc); in ccdc_sbl_busy() local
1385 | (isp_reg_readl(isp, OMAP3_ISP_IOMEM_SBL, ISPSBL_CCDC_WR_0) & in ccdc_sbl_busy()
1387 | (isp_reg_readl(isp, OMAP3_ISP_IOMEM_SBL, ISPSBL_CCDC_WR_1) & in ccdc_sbl_busy()
1389 | (isp_reg_readl(isp, OMAP3_ISP_IOMEM_SBL, ISPSBL_CCDC_WR_2) & in ccdc_sbl_busy()
1391 | (isp_reg_readl(isp, OMAP3_ISP_IOMEM_SBL, ISPSBL_CCDC_WR_3) & in ccdc_sbl_busy()
1543 struct isp_device *isp = to_isp_device(ccdc); in ccdc_has_all_fields() local
1552 field = isp_reg_readl(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_SYN_MODE) in ccdc_has_all_fields()
1587 struct isp_device *isp = to_isp_device(ccdc); in ccdc_isr_buffer() local
1610 dev_info(isp->dev, "CCDC won't become idle!\n"); in ccdc_isr_buffer()
1611 isp->crashed |= 1U << ccdc->subdev.entity.id; in ccdc_isr_buffer()
1791 struct isp_ccdc_device *ccdc = &video->isp->isp_ccdc; in ccdc_video_queue()
1889 struct isp_device *isp = to_isp_device(ccdc); in ccdc_set_stream() local
1896 omap3isp_subclk_enable(isp, OMAP3_ISP_SUBCLK_CCDC); in ccdc_set_stream()
1897 isp_reg_set(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_CFG, in ccdc_set_stream()
1908 omap3isp_sbl_enable(isp, OMAP3_ISP_SBL_CCDC_WRITE); in ccdc_set_stream()
1919 omap3isp_sbl_enable(isp, OMAP3_ISP_SBL_CCDC_WRITE); in ccdc_set_stream()
1927 omap3isp_sbl_disable(isp, OMAP3_ISP_SBL_CCDC_WRITE); in ccdc_set_stream()
1928 omap3isp_subclk_disable(isp, OMAP3_ISP_SUBCLK_CCDC); in ccdc_set_stream()
2515 struct isp_device *isp = to_isp_device(ccdc); in ccdc_link_setup() local
2530 if (remote->entity == &isp->isp_ccp2.subdev.entity) in ccdc_link_setup()
2532 else if (remote->entity == &isp->isp_csi2a.subdev.entity) in ccdc_link_setup()
2534 else if (remote->entity == &isp->isp_csi2c.subdev.entity) in ccdc_link_setup()
2661 ccdc->video_out.isp = to_isp_device(ccdc); in ccdc_init_entities()
2692 int omap3isp_ccdc_init(struct isp_device *isp) in omap3isp_ccdc_init() argument
2694 struct isp_ccdc_device *ccdc = &isp->isp_ccdc; in omap3isp_ccdc_init()
2727 void omap3isp_ccdc_cleanup(struct isp_device *isp) in omap3isp_ccdc_cleanup() argument
2729 struct isp_ccdc_device *ccdc = &isp->isp_ccdc; in omap3isp_ccdc_cleanup()
2742 dma_free_coherent(isp->dev, ccdc->fpc.fpnum * 4, ccdc->fpc.addr, in omap3isp_ccdc_cleanup()