rk3288_lcdc: add alpha config for box

This commit is contained in:
hjc
2014-03-20 11:33:20 +08:00
parent 31a599cbf4
commit aedb4d9d94
3 changed files with 9 additions and 2 deletions

View File

@@ -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);

View File

@@ -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*/

View File

@@ -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)) {