/** * @c: destination clipping region */ void fimg2d4x_enable_clipping(struct fimg2d_control *info, struct fimg2d_clip *c) { unsigned long cfg; cfg = readl(info->regs + FIMG2D_BITBLT_COMMAND_REG); cfg |= FIMG2D_ENABLE_CW; writel(cfg, info->regs + FIMG2D_BITBLT_COMMAND_REG); writel(FIMG2D_OFFSET(c->x1, c->y1), info->regs + FIMG2D_CW_LT_REG); writel(FIMG2D_OFFSET(c->x2, c->y2), info->regs + FIMG2D_CW_RB_REG); }
/** * @c: destination clipping region */ void fimg2d4x_enable_clipping(struct fimg2d_control *info, struct fimg2d_clip *clp) { unsigned long cfg; cfg = rd(FIMG2D_BITBLT_COMMAND_REG); cfg |= FIMG2D_ENABLE_CW; wr(cfg, FIMG2D_BITBLT_COMMAND_REG); wr(FIMG2D_OFFSET(clp->x1, clp->y1), FIMG2D_CW_LT_REG); wr(FIMG2D_OFFSET(clp->x2, clp->y2), FIMG2D_CW_RB_REG); }
void fimg2d4x_set_msk_rect(struct fimg2d_control *info, struct fimg2d_rect *r) { wr(FIMG2D_OFFSET(r->x1, r->y1), FIMG2D_MSK_LEFT_TOP_REG); wr(FIMG2D_OFFSET(r->x2, r->y2), FIMG2D_MSK_RIGHT_BOTTOM_REG); }
void fimg2d4x_set_dst_rect(struct fimg2d_control *info, struct fimg2d_rect *r) { writel(FIMG2D_OFFSET(r->x1, r->y1), info->regs + FIMG2D_DST_LEFT_TOP_REG); writel(FIMG2D_OFFSET(r->x2, r->y2), info->regs + FIMG2D_DST_RIGHT_BOTTOM_REG); }