int fimc_hwset_output_address(struct fimc_control *ctrl, struct fimc_buf_set *bs, int id) { writel(bs->base[FIMC_ADDR_Y], ctrl->regs + S3C_CIOYSA(id)); writel(bs->base[FIMC_ADDR_CB], ctrl->regs + S3C_CIOCBSA(id)); writel(bs->base[FIMC_ADDR_CR], ctrl->regs + S3C_CIOCRSA(id)); return 0; }
void s3c_fimc_set_output_address(struct s3c_fimc_control *ctrl) { struct s3c_fimc_out_frame *frame = &ctrl->out_frame; struct s3c_fimc_frame_addr *addr; int i; for (i = 0; i < S3C_FIMC_MAX_FRAMES; i++) { addr = &frame->addr[i]; writel(addr->phys_y, ctrl->regs + S3C_CIOYSA(i)); writel(addr->phys_cb, ctrl->regs + S3C_CIOCBSA(i)); writel(addr->phys_cr, ctrl->regs + S3C_CIOCRSA(i)); } }