rk3288 lcdc:

1.fix x_mirror and y_mirror init error;
	2.post config default set at loader screen;
This commit is contained in:
hjc
2014-03-17 19:28:19 +08:00
parent c762bc5310
commit be2bbb4396
2 changed files with 16 additions and 16 deletions

View File

@@ -311,7 +311,7 @@ static int rk3288_lcdc_post_cfg(struct rk_lcdc_driver *dev_drv)
post_dsp_hact_end = post_dsp_hact_st + screen->post_xsize;
}else{
post_dsp_hact_end = h_total - screen->mode.right_margin -
- screen->post_dsp_stx;
screen->post_dsp_stx;
post_dsp_hact_st = post_dsp_hact_end - screen->post_xsize;
}
if((screen->post_xsize < x_res)&&(screen->post_xsize != 0)){
@@ -772,7 +772,7 @@ static int rk3288_lcdc_reg_update(struct rk_lcdc_driver *dev_drv)
rk3288_win_full_reg_update(dev_drv,1);
rk3288_win_lite_reg_update(dev_drv,2);
rk3288_win_lite_reg_update(dev_drv,3);
rk3288_lcdc_post_cfg(dev_drv);
/*rk3288_lcdc_post_cfg(dev_drv);*/
lcdc_cfg_done(lcdc_dev);
}
spin_unlock(&lcdc_dev->reg_lock);

View File

@@ -246,17 +246,17 @@ int rk_disp_pwr_ctr_parse_dt(struct rk_lcdc_driver *dev_drv)
of_property_read_u32(root, "rockchip,mirror", &mirror);
if (mirror == NO_MIRROR) {
dev_drv->cur_screen->x_mirror = 0;
dev_drv->cur_screen->y_mirror = 0;
dev_drv->screen0->x_mirror = 0;
dev_drv->screen0->y_mirror = 0;
} else if (mirror == X_MIRROR) {
dev_drv->cur_screen->x_mirror = 1;
dev_drv->cur_screen->y_mirror = 0;
dev_drv->screen0->x_mirror = 1;
dev_drv->screen0->y_mirror = 0;
} else if (mirror == Y_MIRROR) {
dev_drv->cur_screen->x_mirror = 0;
dev_drv->cur_screen->y_mirror = 1;
dev_drv->screen0->x_mirror = 0;
dev_drv->screen0->y_mirror = 1;
} else if(mirror == X_Y_MIRROR) {
dev_drv->cur_screen->x_mirror = 1;
dev_drv->cur_screen->y_mirror = 1;
dev_drv->screen0->x_mirror = 1;
dev_drv->screen0->y_mirror = 1;
}
of_property_read_u32(root, "rockchip,debug", &debug);
@@ -1134,10 +1134,10 @@ static void rk_fb_update_reg(struct rk_lcdc_driver * dev_drv,struct rk_fb_reg_da
}
#endif
dev_drv->atv_layer_cnt = regs->win_num;
dev_drv->cur_screen->post_xsize = regs->post_cfg.xsize;
dev_drv->cur_screen->post_ysize = regs->post_cfg.ysize;
dev_drv->cur_screen->post_dsp_stx = regs->post_cfg.xpos;
dev_drv->cur_screen->post_dsp_sty = regs->post_cfg.ypos;
/*dev_drv->screen0->post_xsize = regs->post_cfg.xsize;
dev_drv->screen0->post_ysize = regs->post_cfg.ysize;
dev_drv->screen0->post_dsp_stx = regs->post_cfg.xpos;
dev_drv->screen0->post_dsp_sty = regs->post_cfg.ypos;*/
dev_drv->ops->set_par(dev_drv,0);
ret = wait_event_interruptible_timeout(dev_drv->vsync_info.wait,
@@ -1419,10 +1419,10 @@ static int rk_fb_set_win_config(struct fb_info *info,
return ret;
}
regs->post_cfg.xpos = win_data->post_cfg.xpos;
/*regs->post_cfg.xpos = win_data->post_cfg.xpos;
regs->post_cfg.ypos = win_data->post_cfg.ypos;
regs->post_cfg.xsize = win_data->post_cfg.xsize;
regs->post_cfg.ysize = win_data->post_cfg.xsize;
regs->post_cfg.ysize = win_data->post_cfg.xsize;*/
for (i=0; i<dev_drv->lcdc_win_num; i++) {
if(win_data->win_par[i].win_id < dev_drv->lcdc_win_num){
rk_fb_set_win_buffer(info,&win_data->win_par[i],&regs->reg_win_data[j]);