From: Zheng Yang Date: Sat, 28 Mar 2015 05:40:07 +0000 (+0800) Subject: rk_fb: 1. Make sure fb_par->state lowest value is zero. X-Git-Tag: firefly_0821_release~4181 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=e0026f346f3bb2f815a0981b57f8f7723a2ea18f;p=firefly-linux-kernel-4.4.55.git rk_fb: 1. Make sure fb_par->state lowest value is zero. 2. For box, video layer z-order is always zero. Signed-off-by: Zheng Yang --- diff --git a/drivers/video/rockchip/rk_fb.c b/drivers/video/rockchip/rk_fb.c index 0c3576ee59a9..c0bd95ec2d6f 100755 --- a/drivers/video/rockchip/rk_fb.c +++ b/drivers/video/rockchip/rk_fb.c @@ -871,7 +871,8 @@ static int rk_fb_close(struct fb_info *info, int user) if (win_id >= 0) { win = dev_drv->win[win_id]; - fb_par->state--; + if (fb_par->state) + fb_par->state--; if (!fb_par->state) { if (fb_par->fb_phy_base > 0) info->fix.smem_start = fb_par->fb_phy_base; @@ -2526,7 +2527,7 @@ static int rk_fb_ioctl(struct fb_info *info, unsigned int cmd, case RK_FBIOSET_ENABLE: if (copy_from_user(&enable, argp, sizeof(enable))) return -EFAULT; - if (enable) + if (enable && fb_par->state) fb_par->state++; else fb_par->state--; @@ -2978,9 +2979,10 @@ static int rk_fb_set_par(struct fb_info *info) if (rk_fb->disp_policy == DISPLAY_POLICY_BOX && (win->area[0].format == YUV420 || win->area[0].format == YUV420_NV21 || - win->area[0].format == YUV420_A)) + win->area[0].format == YUV420_A)) { win->state = 1; - + win->z_order = 0; + } dev_drv->ops->set_par(dev_drv, win_id); return 0;