rk3288_lcdc: add alpha config for box
authorhjc <hjc@rock-chips.com>
Thu, 20 Mar 2014 03:33:20 +0000 (11:33 +0800)
committerhjc <hjc@rock-chips.com>
Thu, 20 Mar 2014 03:35:33 +0000 (11:35 +0800)
drivers/video/rockchip/lcdc/rk3288_lcdc.c
drivers/video/rockchip/lcdc/rk3288_lcdc.h
drivers/video/rockchip/rk_fb.c

index 3f5c79f3621e0103db62d1ad467c257915b4df2d..b0d2cec604f21e034d98695aa63da7270e1308b8 100755 (executable)
@@ -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);
index b97436e253d58b67ae86feb0b08773ed1a72c39d..88919fdc51c43f73e2e29fe8b6c5fdab43b5eec6 100755 (executable)
@@ -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*/
index c6e8e5ae4a39527d64025684723acc978adc7359..d72b63b4aa4190e49009cd10deb9028276b80720 100755 (executable)
@@ -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)) {