Lines Matching defs:isp
24 #include "isp.h"
61 #define CCDC_PRINT_REGISTER(isp, name)\
62 dev_dbg(isp->dev, "###CCDC " #name "=0x%08x\n", \
63 isp_reg_readl(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_##name))
67 struct isp_device *isp = to_isp_device(ccdc);
69 dev_dbg(isp->dev, "-------------CCDC Register dump-------------\n");
71 CCDC_PRINT_REGISTER(isp, PCR);
72 CCDC_PRINT_REGISTER(isp, SYN_MODE);
73 CCDC_PRINT_REGISTER(isp, HD_VD_WID);
74 CCDC_PRINT_REGISTER(isp, PIX_LINES);
75 CCDC_PRINT_REGISTER(isp, HORZ_INFO);
76 CCDC_PRINT_REGISTER(isp, VERT_START);
77 CCDC_PRINT_REGISTER(isp, VERT_LINES);
78 CCDC_PRINT_REGISTER(isp, CULLING);
79 CCDC_PRINT_REGISTER(isp, HSIZE_OFF);
80 CCDC_PRINT_REGISTER(isp, SDOFST);
81 CCDC_PRINT_REGISTER(isp, SDR_ADDR);
82 CCDC_PRINT_REGISTER(isp, CLAMP);
83 CCDC_PRINT_REGISTER(isp, DCSUB);
84 CCDC_PRINT_REGISTER(isp, COLPTN);
85 CCDC_PRINT_REGISTER(isp, BLKCMP);
86 CCDC_PRINT_REGISTER(isp, FPC);
87 CCDC_PRINT_REGISTER(isp, FPC_ADDR);
88 CCDC_PRINT_REGISTER(isp, VDINT);
89 CCDC_PRINT_REGISTER(isp, ALAW);
90 CCDC_PRINT_REGISTER(isp, REC656IF);
91 CCDC_PRINT_REGISTER(isp, CFG);
92 CCDC_PRINT_REGISTER(isp, FMTCFG);
93 CCDC_PRINT_REGISTER(isp, FMT_HORZ);
94 CCDC_PRINT_REGISTER(isp, FMT_VERT);
95 CCDC_PRINT_REGISTER(isp, PRGEVEN0);
96 CCDC_PRINT_REGISTER(isp, PRGEVEN1);
97 CCDC_PRINT_REGISTER(isp, PRGODD0);
98 CCDC_PRINT_REGISTER(isp, PRGODD1);
99 CCDC_PRINT_REGISTER(isp, VP_OUT);
100 CCDC_PRINT_REGISTER(isp, LSC_CONFIG);
101 CCDC_PRINT_REGISTER(isp, LSC_INITIAL);
102 CCDC_PRINT_REGISTER(isp, LSC_TABLE_BASE);
103 CCDC_PRINT_REGISTER(isp, LSC_TABLE_OFFSET);
105 dev_dbg(isp->dev, "--------------------------------------------\n");
114 struct isp_device *isp = to_isp_device(ccdc);
116 return isp_reg_readl(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_PCR) &
134 struct isp_device *isp = to_isp_device(ccdc);
146 dev_dbg(isp->dev, "CCDC: LSC: Invalid paxel size\n");
151 dev_dbg(isp->dev,
157 dev_dbg(isp->dev, "CCDC: LSC: initial_x and y must be even\n");
177 dev_dbg(isp->dev, "CCDC: LSC: too small table\n");
181 dev_dbg(isp->dev, "CCDC: LSC: Offset is too small\n");
185 dev_dbg(isp->dev, "CCDC: LSC: Wrong size/offset combination\n");
209 struct isp_device *isp = to_isp_device(ccdc);
212 isp_reg_writel(isp, cfg->offset, OMAP3_ISP_IOMEM_CCDC,
219 isp_reg_writel(isp, reg, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_LSC_CONFIG);
226 isp_reg_writel(isp, reg, OMAP3_ISP_IOMEM_CCDC,
232 struct isp_device *isp = to_isp_device(ccdc);
235 isp_reg_writel(isp, IRQ0STATUS_CCDC_LSC_PREF_COMP_IRQ,
240 if (isp_reg_readl(isp, OMAP3_ISP_IOMEM_MAIN, ISP_IRQ0STATUS) &
242 isp_reg_writel(isp, IRQ0STATUS_CCDC_LSC_PREF_COMP_IRQ,
261 struct isp_device *isp = to_isp_device(ccdc);
273 omap3isp_sbl_enable(isp, OMAP3_ISP_SBL_CCDC_LSC_READ);
275 isp_reg_clr_set(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_LSC_CONFIG,
280 isp_reg_clr(isp, OMAP3_ISP_IOMEM_CCDC,
296 struct isp_device *isp = to_isp_device(ccdc);
298 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);
1172 omap3isp_configure_bridge(isp, ccdc->input, parcfg, shift, bridge);
1177 syn_mode = isp_reg_readl(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_SYN_MODE);
1218 isp_reg_writel(isp, ((format->height - 2) << ISPCCDC_VDINT_0_SHIFT) |
1239 isp_reg_writel(isp, (sph << ISPCCDC_HORZ_INFO_SPH_SHIFT) |
1242 isp_reg_writel(isp, (crop->top << ISPCCDC_VERT_START_SLV0_SHIFT) |
1245 isp_reg_writel(isp, (crop->height - 1)
1265 isp_reg_set(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_CFG,
1268 isp_reg_clr(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_CFG,
1280 isp_reg_writel(isp, syn_mode, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_SYN_MODE);
1313 struct isp_device *isp = to_isp_device(ccdc);
1319 isp_reg_clr_set(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_PCR,
1380 struct isp_device *isp = to_isp_device(ccdc);
1383 | (isp_reg_readl(isp, OMAP3_ISP_IOMEM_SBL, ISPSBL_CCDC_WR_0) &
1385 | (isp_reg_readl(isp, OMAP3_ISP_IOMEM_SBL, ISPSBL_CCDC_WR_1) &
1387 | (isp_reg_readl(isp, OMAP3_ISP_IOMEM_SBL, ISPSBL_CCDC_WR_2) &
1389 | (isp_reg_readl(isp, OMAP3_ISP_IOMEM_SBL, ISPSBL_CCDC_WR_3) &
1541 struct isp_device *isp = to_isp_device(ccdc);
1550 field = isp_reg_readl(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_SYN_MODE)
1585 struct isp_device *isp = to_isp_device(ccdc);
1608 dev_info(isp->dev, "CCDC won't become idle!\n");
1609 media_entity_enum_set(&isp->crashed, &ccdc->subdev.entity);
1793 struct isp_ccdc_device *ccdc = &video->isp->isp_ccdc;
1891 struct isp_device *isp = to_isp_device(ccdc);
1898 omap3isp_subclk_enable(isp, OMAP3_ISP_SUBCLK_CCDC);
1899 isp_reg_set(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_CFG,
1910 omap3isp_sbl_enable(isp, OMAP3_ISP_SBL_CCDC_WRITE);
1921 omap3isp_sbl_enable(isp, OMAP3_ISP_SBL_CCDC_WRITE);
1929 omap3isp_sbl_disable(isp, OMAP3_ISP_SBL_CCDC_WRITE);
1930 omap3isp_subclk_disable(isp, OMAP3_ISP_SUBCLK_CCDC);
2517 struct isp_device *isp = to_isp_device(ccdc);
2537 if (remote->entity == &isp->isp_ccp2.subdev.entity)
2539 else if (remote->entity == &isp->isp_csi2a.subdev.entity)
2541 else if (remote->entity == &isp->isp_csi2c.subdev.entity)
2651 sd->grp_id = 1 << 16; /* group ID for isp subdevs */
2669 ccdc->video_out.isp = to_isp_device(ccdc);
2686 * @isp: Device pointer specific to the OMAP3 ISP.
2692 int omap3isp_ccdc_init(struct isp_device *isp)
2694 struct isp_ccdc_device *ccdc = &isp->isp_ccdc;
2725 * @isp: Device pointer specific to the OMAP3 ISP.
2727 void omap3isp_ccdc_cleanup(struct isp_device *isp)
2729 struct isp_ccdc_device *ccdc = &isp->isp_ccdc;
2742 dma_free_coherent(isp->dev, ccdc->fpc.fpnum * 4, ccdc->fpc.addr,