From aedb4d9d949bb20dedf2aaedd73646d49825a82a Mon Sep 17 00:00:00 2001 From: hjc Date: Thu, 20 Mar 2014 11:33:20 +0800 Subject: [PATCH] rk3288_lcdc: add alpha config for box --- drivers/video/rockchip/lcdc/rk3288_lcdc.c | 5 ++++- drivers/video/rockchip/lcdc/rk3288_lcdc.h | 2 +- drivers/video/rockchip/rk_fb.c | 4 ++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/video/rockchip/lcdc/rk3288_lcdc.c b/drivers/video/rockchip/lcdc/rk3288_lcdc.c index 3f5c79f3621e..b0d2cec604f2 100755 --- a/drivers/video/rockchip/lcdc/rk3288_lcdc.c +++ b/drivers/video/rockchip/lcdc/rk3288_lcdc.c @@ -421,6 +421,8 @@ static int rk3288_lcdc_alpha_cfg(struct rk_lcdc_driver *dev_drv,int win_id) ppixel_alpha = ((win->format == ARGB888)||(win->format == ABGR888)) ? 1 : 0; global_alpha = (win->g_alpha_val == 0) ? 0 : 1; alpha_config.src_global_alpha_val = win->g_alpha_val; + /*printk("%s,alpha_mode=%d,alpha_en=%d,ppixel_a=%d,gla_a=%d\n", + __func__,win->alpha_mode,win->alpha_en,ppixel_alpha,global_alpha);*/ switch(win->alpha_mode){ case AB_USER_DEFINE: break; @@ -499,7 +501,7 @@ static int rk3288_lcdc_alpha_cfg(struct rk_lcdc_driver *dev_drv,int win_id) dev_warn(lcdc_dev->dev,"alpha_en should be 0\n"); } alpha_config.src_alpha_mode = AA_STRAIGHT; - alpha_config.src_alpha_sel = AA_NO_SAT; + alpha_config.src_alpha_cal_m0 = AA_NO_SAT; switch(win_id){ case 0: @@ -530,6 +532,7 @@ static int rk3288_lcdc_alpha_cfg(struct rk_lcdc_driver *dev_drv,int win_id) v_WIN0_SRC_COLOR_M0(alpha_config.src_color_mode) | v_WIN0_SRC_ALPHA_M0(alpha_config.src_alpha_mode) | v_WIN0_SRC_BLEND_M0(alpha_config.src_global_alpha_mode) | + v_WIN0_SRC_ALPHA_CAL_M0(alpha_config.src_alpha_cal_m0) | v_WIN0_SRC_FACTOR_M0(alpha_config.src_factor_mode) | v_WIN0_SRC_GLOBAL_ALPHA(alpha_config.src_global_alpha_val); lcdc_msk_reg(lcdc_dev, src_alpha_ctl, mask, val); diff --git a/drivers/video/rockchip/lcdc/rk3288_lcdc.h b/drivers/video/rockchip/lcdc/rk3288_lcdc.h index b97436e253d5..88919fdc51c4 100755 --- a/drivers/video/rockchip/lcdc/rk3288_lcdc.h +++ b/drivers/video/rockchip/lcdc/rk3288_lcdc.h @@ -1342,7 +1342,7 @@ struct alpha_config{ enum src_alpha_mode src_alpha_mode; /*win0_src_alpha_m0*/ u32 src_global_alpha_val; /*win0_src_global_alpha*/ enum global_alpha_mode src_global_alpha_mode;/*win0_src_blend_m0*/ - enum src_alpha_sel src_alpha_sel; /*win0_src_alpha_cal_m0*/ + enum src_alpha_sel src_alpha_cal_m0; /*win0_src_alpha_cal_m0*/ enum src_color_mode src_color_mode; /*win0_src_color_m0*/ enum factor_mode src_factor_mode; /*win0_src_factor_m0*/ enum factor_mode dst_factor_mode; /*win0_dst_factor_m0*/ diff --git a/drivers/video/rockchip/rk_fb.c b/drivers/video/rockchip/rk_fb.c index c6e8e5ae4a39..d72b63b4aa41 100755 --- a/drivers/video/rockchip/rk_fb.c +++ b/drivers/video/rockchip/rk_fb.c @@ -2063,6 +2063,10 @@ if (rk_fb->disp_mode != DUAL) { win->state=1; win->area[0].state=1; win->area_num = 1; + win->alpha_mode = 4;//AB_SRC_OVER; + win->alpha_en = ((win->format == ARGB888)||(win->format == ABGR888)) ? 1 : 0; + win->g_alpha_val = 0; + printk("%s,alpha_mode=%d,alpha_en=%d\n",__func__,win->alpha_mode,win->alpha_en); if (rk_fb->disp_mode == DUAL) { if (extend_win->state && (hdmi_switch_complete)) { -- 2.34.1