rk fb: fix open hdmi open backlight again in no dual mode

Signed-off-by: hjc <hjc@rock-chips.com>
This commit is contained in:
hjc
2014-12-16 10:00:55 +08:00
parent ccd1badc85
commit d3379270d3
3 changed files with 1543 additions and 3 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -1837,7 +1837,9 @@ static int rk_fb_set_win_buffer(struct fb_info *info,
struct fb_fix_screeninfo *fix = &info->fix;
struct rk_fb_par *fb_par = (struct rk_fb_par *)info->par;
struct rk_lcdc_driver *dev_drv = fb_par->lcdc_drv;
struct rk_screen *screen = dev_drv->cur_screen;
/*if hdmi size move to hwc,screen should point to cur_screen
otherwise point to screen0[main screen]*/
struct rk_screen *screen = dev_drv->cur_screen;/*screen0;*/
struct fb_info *fbi;
int i, ion_fd, acq_fence_fd;
u32 xvir, yvir;
@@ -3744,8 +3746,9 @@ int rk_fb_register(struct rk_lcdc_driver *dev_drv,
vaddr = vmap(pages, nr_pages, VM_MAP,
pgprot_writecombine(PAGE_KERNEL));
if (!vaddr) {
pr_err("failed to vmap phy addr %x\n",
uboot_logo_base + uboot_logo_offset);
pr_err("failed to vmap phy addr 0x%lx\n",
(long)(uboot_logo_base +
uboot_logo_offset));
return -1;
}

View File

@@ -0,0 +1,20 @@
--- drivers/video/rockchip/rk_fb.c
+++ drivers/video/rockchip/rk_fb.c
@@ -1858,7 +1874,7 @@
win_data = rk_fb_get_win_data(regs, i);
if (win_data) {
if (rk_fb->disp_policy == DISPLAY_POLICY_BOX &&
- win_data->data_format == YUV420)
+ win_data->reg_area_data[0].data_format == YUV420)
continue;
rk_fb_update_win(dev_drv, win, win_data);
win->state = 1;
@@ -1930,7 +1948,7 @@
for (i = 0; i < dev_drv->lcdc_win_num; i++) {
if (dev_drv->win[i]->state == 1) {
if (rk_fb->disp_policy == DISPLAY_POLICY_BOX &&
- (dev_drv->win[i]->format == YUV420 ||
+ (dev_drv->win[i]->area[0].format == YUV420 ||
!strcmp(dev_drv->win[i]->name, "hwc"))) {
continue;
} else {