From ea22dfdf4e69351a942d0435e60e946318ae06b1 Mon Sep 17 00:00:00 2001 From: hjc Date: Thu, 14 Aug 2014 10:40:54 +0800 Subject: [PATCH] rk312x lcdc: fix rk312x lcdc win1 reg error --- drivers/video/rockchip/lcdc/rk312x_lcdc.c | 32 +++++++++++++++-------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/drivers/video/rockchip/lcdc/rk312x_lcdc.c b/drivers/video/rockchip/lcdc/rk312x_lcdc.c index cc71b81404d9..d016f1e05569 100755 --- a/drivers/video/rockchip/lcdc/rk312x_lcdc.c +++ b/drivers/video/rockchip/lcdc/rk312x_lcdc.c @@ -320,24 +320,34 @@ static void lcdc_layer_update_regs(struct lcdc_device *lcdc_dev, lcdc_msk_reg(lcdc_dev, SYS_CTRL, mask, val); /* rk312x unsupport win1 scale */ - if (lcdc_dev->soc_type == VOP_RK3036) + if (lcdc_dev->soc_type == VOP_RK3036) { lcdc_writel(lcdc_dev, WIN1_SCL_FACTOR_YRGB, v_X_SCL_FACTOR(win->scale_yrgb_x) | v_Y_SCL_FACTOR(win->scale_yrgb_y)); + lcdc_writel(lcdc_dev, WIN1_ACT_INFO, + v_ACT_WIDTH(win->area[0].xact) | + v_ACT_HEIGHT(win->area[0].yact)); + lcdc_writel(lcdc_dev, WIN1_DSP_INFO, + v_DSP_WIDTH(win->area[0].xsize) | + v_DSP_HEIGHT(win->area[0].ysize)); + lcdc_writel(lcdc_dev, WIN1_DSP_ST, + v_DSP_STX(win->area[0].dsp_stx) | + v_DSP_STY(win->area[0].dsp_sty)); + lcdc_writel(lcdc_dev, WIN1_MST, win->area[0].y_addr); + } else { + lcdc_writel(lcdc_dev, WIN1_DSP_INFO_RK312X, + v_DSP_WIDTH(win->area[0].xsize) | + v_DSP_HEIGHT(win->area[0].ysize)); + lcdc_writel(lcdc_dev, WIN1_DSP_ST_RK312X, + v_DSP_STX(win->area[0].dsp_stx) | + v_DSP_STY(win->area[0].dsp_sty)); + + lcdc_writel(lcdc_dev, WIN1_MST_RK312X, win->area[0].y_addr); + } lcdc_msk_reg(lcdc_dev, WIN1_VIR, m_YRGB_VIR, v_YRGB_VIR(win->area[0].y_vir_stride)); - lcdc_writel(lcdc_dev, WIN1_ACT_INFO, - v_ACT_WIDTH(win->area[0].xact) | - v_ACT_HEIGHT(win->area[0].yact)); - lcdc_writel(lcdc_dev, WIN1_DSP_INFO, - v_DSP_WIDTH(win->area[0].xsize) | - v_DSP_HEIGHT(win->area[0].ysize)); - lcdc_writel(lcdc_dev, WIN1_DSP_ST, - v_DSP_STX(win->area[0].dsp_stx) | - v_DSP_STY(win->area[0].dsp_sty)); - lcdc_writel(lcdc_dev, WIN1_MST, win->area[0].y_addr); } else if (win->id == 2) { } -- 2.34.1