Lines Matching defs:isp

24 #include "isp.h"
62 #define CCDC_PRINT_REGISTER(isp, name)\
63 dev_dbg(isp->dev, "###CCDC " #name "=0x%08x\n", \
64 isp_reg_readl(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_##name))
68 struct isp_device *isp = to_isp_device(ccdc);
70 dev_dbg(isp->dev, "-------------CCDC Register dump-------------\n");
72 CCDC_PRINT_REGISTER(isp, PCR);
73 CCDC_PRINT_REGISTER(isp, SYN_MODE);
74 CCDC_PRINT_REGISTER(isp, HD_VD_WID);
75 CCDC_PRINT_REGISTER(isp, PIX_LINES);
76 CCDC_PRINT_REGISTER(isp, HORZ_INFO);
77 CCDC_PRINT_REGISTER(isp, VERT_START);
78 CCDC_PRINT_REGISTER(isp, VERT_LINES);
79 CCDC_PRINT_REGISTER(isp, CULLING);
80 CCDC_PRINT_REGISTER(isp, HSIZE_OFF);
81 CCDC_PRINT_REGISTER(isp, SDOFST);
82 CCDC_PRINT_REGISTER(isp, SDR_ADDR);
83 CCDC_PRINT_REGISTER(isp, CLAMP);
84 CCDC_PRINT_REGISTER(isp, DCSUB);
85 CCDC_PRINT_REGISTER(isp, COLPTN);
86 CCDC_PRINT_REGISTER(isp, BLKCMP);
87 CCDC_PRINT_REGISTER(isp, FPC);
88 CCDC_PRINT_REGISTER(isp, FPC_ADDR);
89 CCDC_PRINT_REGISTER(isp, VDINT);
90 CCDC_PRINT_REGISTER(isp, ALAW);
91 CCDC_PRINT_REGISTER(isp, REC656IF);
92 CCDC_PRINT_REGISTER(isp, CFG);
93 CCDC_PRINT_REGISTER(isp, FMTCFG);
94 CCDC_PRINT_REGISTER(isp, FMT_HORZ);
95 CCDC_PRINT_REGISTER(isp, FMT_VERT);
96 CCDC_PRINT_REGISTER(isp, PRGEVEN0);
97 CCDC_PRINT_REGISTER(isp, PRGEVEN1);
98 CCDC_PRINT_REGISTER(isp, PRGODD0);
99 CCDC_PRINT_REGISTER(isp, PRGODD1);
100 CCDC_PRINT_REGISTER(isp, VP_OUT);
101 CCDC_PRINT_REGISTER(isp, LSC_CONFIG);
102 CCDC_PRINT_REGISTER(isp, LSC_INITIAL);
103 CCDC_PRINT_REGISTER(isp, LSC_TABLE_BASE);
104 CCDC_PRINT_REGISTER(isp, LSC_TABLE_OFFSET);
106 dev_dbg(isp->dev, "--------------------------------------------\n");
115 struct isp_device *isp = to_isp_device(ccdc);
117 return isp_reg_readl(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_PCR) &
135 struct isp_device *isp = to_isp_device(ccdc);
147 dev_dbg(isp->dev, "CCDC: LSC: Invalid paxel size\n");
152 dev_dbg(isp->dev,
158 dev_dbg(isp->dev, "CCDC: LSC: initial_x and y must be even\n");
178 dev_dbg(isp->dev, "CCDC: LSC: too small table\n");
182 dev_dbg(isp->dev, "CCDC: LSC: Offset is too small\n");
186 dev_dbg(isp->dev, "CCDC: LSC: Wrong size/offset combination\n");
210 struct isp_device *isp = to_isp_device(ccdc);
213 isp_reg_writel(isp, cfg->offset, OMAP3_ISP_IOMEM_CCDC,
220 isp_reg_writel(isp, reg, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_LSC_CONFIG);
227 isp_reg_writel(isp, reg, OMAP3_ISP_IOMEM_CCDC,
233 struct isp_device *isp = to_isp_device(ccdc);
236 isp_reg_writel(isp, IRQ0STATUS_CCDC_LSC_PREF_COMP_IRQ,
241 if (isp_reg_readl(isp, OMAP3_ISP_IOMEM_MAIN, ISP_IRQ0STATUS) &
243 isp_reg_writel(isp, IRQ0STATUS_CCDC_LSC_PREF_COMP_IRQ,
262 struct isp_device *isp = to_isp_device(ccdc);
274 omap3isp_sbl_enable(isp, OMAP3_ISP_SBL_CCDC_LSC_READ);
276 isp_reg_clr_set(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_LSC_CONFIG,
281 isp_reg_clr(isp, OMAP3_ISP_IOMEM_CCDC,
297 struct isp_device *isp = to_isp_device(ccdc);
299 return isp_reg_readl(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_LSC_CONFIG) &
335 struct isp_device *isp = to_isp_device(ccdc);
345 isp_reg_clr(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_LSC_CONFIG,
353 struct isp_device *isp = to_isp_device(ccdc);
360 dma_free_coherent(isp->dev, req->config.size, req->table.addr,
404 struct isp_device *isp = to_isp_device(ccdc);
435 req->table.addr = dma_alloc_coherent(isp->dev, req->config.size,
443 ret = dma_get_sgtable(isp->dev, &req->table.sgt,
449 dma_sync_sg_for_cpu(isp->dev, req->table.sgt.sgl,
458 dma_sync_sg_for_device(isp->dev, req->table.sgt.sgl,
535 struct isp_device *isp = to_isp_device(ccdc);
543 isp_reg_writel(isp, clamp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_CLAMP);
545 isp_reg_writel(isp, ccdc->clamp.dcsubval,
549 isp_reg_clr_set(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_CLAMP,
560 struct isp_device *isp = to_isp_device(ccdc);
562 isp_reg_clr(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_FPC, ISPCCDC_FPC_FPCEN);
567 isp_reg_writel(isp, ccdc->fpc.dma, OMAP3_ISP_IOMEM_CCDC,
570 isp_reg_writel(isp, (ccdc->fpc.fpnum << ISPCCDC_FPC_FPNUM_SHIFT),
572 isp_reg_writel(isp, (ccdc->fpc.fpnum << ISPCCDC_FPC_FPNUM_SHIFT) |
582 struct isp_device *isp = to_isp_device(ccdc);
590 isp_reg_writel(isp, blcomp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_BLKCMP);
599 struct isp_device *isp = to_isp_device(ccdc);
601 isp_reg_clr_set(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_SYN_MODE,
612 struct isp_device *isp = to_isp_device(ccdc);
639 isp_reg_writel(isp, alaw, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_ALAW);
649 struct isp_device *isp = to_isp_device(ccdc);
651 isp_reg_writel(isp, colptn, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_COLPTN);
666 struct isp_device *isp = to_isp_device(ccdc);
728 fpc_new.addr = dma_alloc_coherent(isp->dev, size,
737 dma_free_coherent(isp->dev, size, fpc_new.addr,
749 dma_free_coherent(isp->dev, fpc_old.fpnum * 4,
781 * @isp: Pointer to ISP device
783 void omap3isp_ccdc_restore_context(struct isp_device *isp)
785 struct isp_ccdc_device *ccdc = &isp->isp_ccdc;
787 isp_reg_set(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_CFG, ISPCCDC_CFG_VDLC);
806 struct isp_device *isp = to_isp_device(ccdc);
810 unsigned int max_div = isp->revision == ISP_REVISION_15_0 ? 64 : 8;
820 isp_reg_writel(isp, 0, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_FMTCFG);
824 isp_reg_writel(isp, (0 << ISPCCDC_FMT_HORZ_FMTSPH_SHIFT) |
827 isp_reg_writel(isp, (0 << ISPCCDC_FMT_VERT_FMTSLV_SHIFT) |
831 isp_reg_writel(isp, (format->width << ISPCCDC_VP_OUT_HORZ_NUM_SHIFT) |
861 isp_reg_writel(isp, fmtcfg, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_FMTCFG);
888 struct isp_device *isp = to_isp_device(ccdc);
891 isp_reg_writel(isp, bpl & 0xffff, OMAP3_ISP_IOMEM_CCDC,
911 isp_reg_writel(isp, sdofst, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_SDOFST);
923 struct isp_device *isp = to_isp_device(ccdc);
925 isp_reg_writel(isp, addr, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_SDR_ADDR);
966 struct isp_device *isp = to_isp_device(ccdc);
1016 isp_reg_writel(isp, syn_mode, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_SYN_MODE);
1022 isp_reg_set(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_CFG,
1025 isp_reg_clr(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_CFG,
1032 isp_reg_set(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_REC656IF,
1035 isp_reg_clr(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_REC656IF,
1115 struct isp_device *isp = to_isp_device(ccdc);
1178 omap3isp_configure_bridge(isp, ccdc->input, parcfg, shift, bridge);
1183 syn_mode = isp_reg_readl(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_SYN_MODE);
1224 isp_reg_writel(isp, ((format->height - 2) << ISPCCDC_VDINT_0_SHIFT) |
1245 isp_reg_writel(isp, (sph << ISPCCDC_HORZ_INFO_SPH_SHIFT) |
1248 isp_reg_writel(isp, (crop->top << ISPCCDC_VERT_START_SLV0_SHIFT) |
1251 isp_reg_writel(isp, (crop->height - 1)
1271 isp_reg_set(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_CFG,
1274 isp_reg_clr(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_CFG,
1286 isp_reg_writel(isp, syn_mode, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_SYN_MODE);
1319 struct isp_device *isp = to_isp_device(ccdc);
1325 isp_reg_clr_set(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_PCR,
1386 struct isp_device *isp = to_isp_device(ccdc);
1389 | (isp_reg_readl(isp, OMAP3_ISP_IOMEM_SBL, ISPSBL_CCDC_WR_0) &
1391 | (isp_reg_readl(isp, OMAP3_ISP_IOMEM_SBL, ISPSBL_CCDC_WR_1) &
1393 | (isp_reg_readl(isp, OMAP3_ISP_IOMEM_SBL, ISPSBL_CCDC_WR_2) &
1395 | (isp_reg_readl(isp, OMAP3_ISP_IOMEM_SBL, ISPSBL_CCDC_WR_3) &
1547 struct isp_device *isp = to_isp_device(ccdc);
1556 field = isp_reg_readl(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_SYN_MODE)
1591 struct isp_device *isp = to_isp_device(ccdc);
1614 dev_info(isp->dev, "CCDC won't become idle!\n");
1615 media_entity_enum_set(&isp->crashed, &ccdc->subdev.entity);
1799 struct isp_ccdc_device *ccdc = &video->isp->isp_ccdc;
1897 struct isp_device *isp = to_isp_device(ccdc);
1904 omap3isp_subclk_enable(isp, OMAP3_ISP_SUBCLK_CCDC);
1905 isp_reg_set(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_CFG,
1916 omap3isp_sbl_enable(isp, OMAP3_ISP_SBL_CCDC_WRITE);
1927 omap3isp_sbl_enable(isp, OMAP3_ISP_SBL_CCDC_WRITE);
1935 omap3isp_sbl_disable(isp, OMAP3_ISP_SBL_CCDC_WRITE);
1936 omap3isp_subclk_disable(isp, OMAP3_ISP_SUBCLK_CCDC);
2540 struct isp_device *isp = to_isp_device(ccdc);
2560 if (remote->entity == &isp->isp_ccp2.subdev.entity)
2562 else if (remote->entity == &isp->isp_csi2a.subdev.entity)
2564 else if (remote->entity == &isp->isp_csi2c.subdev.entity)
2674 sd->grp_id = 1 << 16; /* group ID for isp subdevs */
2692 ccdc->video_out.isp = to_isp_device(ccdc);
2709 * @isp: Device pointer specific to the OMAP3 ISP.
2715 int omap3isp_ccdc_init(struct isp_device *isp)
2717 struct isp_ccdc_device *ccdc = &isp->isp_ccdc;
2748 * @isp: Device pointer specific to the OMAP3 ISP.
2750 void omap3isp_ccdc_cleanup(struct isp_device *isp)
2752 struct isp_ccdc_device *ccdc = &isp->isp_ccdc;
2765 dma_free_coherent(isp->dev, ccdc->fpc.fpnum * 4, ccdc->fpc.addr,