Example #1
0
void s3c_fimc_set_effect(struct s3c_fimc_control *ctrl)
{
	struct s3c_fimc_effect *effect = &ctrl->out_frame.effect;
	u32 cfg = (S3C_CIIMGEFF_IE_ENABLE | S3C_CIIMGEFF_IE_SC_AFTER);

	cfg |= effect->type;

	if (effect->type == EFFECT_ARBITRARY) {
		cfg |= S3C_CIIMGEFF_PAT_CB(effect->pat_cb);
		cfg |= S3C_CIIMGEFF_PAT_CR(effect->pat_cr);
	}

	writel(cfg, ctrl->regs + S3C_CIIMGEFF);
}
Example #2
0
void s3c_fimc_change_effect(struct s3c_fimc_control *ctrl)
{
	struct s3c_fimc_effect *effect = &ctrl->out_frame.effect;
	u32 cfg = readl(ctrl->regs + S3C_CIIMGEFF);

	cfg &= ~S3C_CIIMGEFF_FIN_MASK;
	cfg |= (effect->type | S3C_CIIMGEFF_IE_ENABLE);

	if (effect->type == EFFECT_ARBITRARY) {
		cfg &= ~S3C_CIIMGEFF_PAT_CBCR_MASK;
		cfg |= S3C_CIIMGEFF_PAT_CB(effect->pat_cb);
		cfg |= S3C_CIIMGEFF_PAT_CR(effect->pat_cr);
	}

	writel(cfg, ctrl->regs + S3C_CIIMGEFF);
}
Example #3
0
int fimc_hwset_image_effect(struct fimc_control *ctrl)
{
	u32 cfg = 0;

	if(ctrl->fe.ie_on){
		if(ctrl->fe.ie_after_sc)
			cfg |= S3C_CIIMGEFF_IE_SC_AFTER;

		cfg |= S3C_CIIMGEFF_FIN(ctrl->fe.fin);

		if(ctrl->fe.fin == FIMC_EFFECT_FIN_ARBITRARY_CBCR){
			cfg |= S3C_CIIMGEFF_PAT_CB(ctrl->fe.pat_cb) | S3C_CIIMGEFF_PAT_CR(ctrl->fe.pat_cr);
		}

		cfg |= S3C_CIIMGEFF_IE_ENABLE;
	} 

	writel(cfg, ctrl->regs + S3C_CIIMGEFF);

	return 0;	
}