Lines Matching refs:aewb

28 static void h3a_aewb_setup_regs(struct ispstat *aewb, void *priv)  in h3a_aewb_setup_regs()  argument
37 if (aewb->state == ISPSTAT_DISABLED) in h3a_aewb_setup_regs()
40 isp_reg_writel(aewb->isp, aewb->active_buf->dma_addr, in h3a_aewb_setup_regs()
43 if (!aewb->update) in h3a_aewb_setup_regs()
66 isp_reg_writel(aewb->isp, win1, OMAP3_ISP_IOMEM_H3A, ISPH3A_AEWWIN1); in h3a_aewb_setup_regs()
67 isp_reg_writel(aewb->isp, start, OMAP3_ISP_IOMEM_H3A, in h3a_aewb_setup_regs()
69 isp_reg_writel(aewb->isp, blk, OMAP3_ISP_IOMEM_H3A, ISPH3A_AEWINBLK); in h3a_aewb_setup_regs()
70 isp_reg_writel(aewb->isp, subwin, OMAP3_ISP_IOMEM_H3A, in h3a_aewb_setup_regs()
72 isp_reg_clr_set(aewb->isp, OMAP3_ISP_IOMEM_H3A, ISPH3A_PCR, in h3a_aewb_setup_regs()
75 aewb->update = 0; in h3a_aewb_setup_regs()
76 aewb->config_counter += aewb->inc_config; in h3a_aewb_setup_regs()
77 aewb->inc_config = 0; in h3a_aewb_setup_regs()
78 aewb->buf_size = conf->buf_size; in h3a_aewb_setup_regs()
81 static void h3a_aewb_enable(struct ispstat *aewb, int enable) in h3a_aewb_enable() argument
84 isp_reg_set(aewb->isp, OMAP3_ISP_IOMEM_H3A, ISPH3A_PCR, in h3a_aewb_enable()
86 omap3isp_subclk_enable(aewb->isp, OMAP3_ISP_SUBCLK_AEWB); in h3a_aewb_enable()
88 isp_reg_clr(aewb->isp, OMAP3_ISP_IOMEM_H3A, ISPH3A_PCR, in h3a_aewb_enable()
90 omap3isp_subclk_disable(aewb->isp, OMAP3_ISP_SUBCLK_AEWB); in h3a_aewb_enable()
94 static int h3a_aewb_busy(struct ispstat *aewb) in h3a_aewb_busy() argument
96 return isp_reg_readl(aewb->isp, OMAP3_ISP_IOMEM_H3A, ISPH3A_PCR) in h3a_aewb_busy()
115 static int h3a_aewb_validate_params(struct ispstat *aewb, void *new_conf) in h3a_aewb_validate_params() argument
182 static void h3a_aewb_set_params(struct ispstat *aewb, void *new_conf) in h3a_aewb_set_params() argument
185 struct omap3isp_h3a_aewb_config *cur_cfg = aewb->priv; in h3a_aewb_set_params()
237 if (update || !aewb->configured) { in h3a_aewb_set_params()
238 aewb->inc_config++; in h3a_aewb_set_params()
239 aewb->update = 1; in h3a_aewb_set_params()
290 struct ispstat *aewb = &isp->isp_aewb; in omap3isp_h3a_aewb_init() local
298 aewb->ops = &h3a_aewb_ops; in omap3isp_h3a_aewb_init()
299 aewb->priv = aewb_cfg; in omap3isp_h3a_aewb_init()
300 aewb->event_type = V4L2_EVENT_OMAP3ISP_AEWB; in omap3isp_h3a_aewb_init()
301 aewb->isp = isp; in omap3isp_h3a_aewb_init()
307 dev_err(aewb->isp->dev, "AEWB: cannot allocate memory for " in omap3isp_h3a_aewb_init()
323 if (h3a_aewb_validate_params(aewb, aewb_recover_cfg)) { in omap3isp_h3a_aewb_init()
324 dev_err(aewb->isp->dev, "AEWB: recover configuration is " in omap3isp_h3a_aewb_init()
330 aewb->recover_priv = aewb_recover_cfg; in omap3isp_h3a_aewb_init()
332 return omap3isp_stat_init(aewb, "AEWB", &h3a_aewb_subdev_ops); in omap3isp_h3a_aewb_init()