rk fb: fix get fb info addr error if at fb0-win1 map when close fb
authorzwl <zwl@rockchips.com>
Mon, 20 Oct 2014 02:53:03 +0000 (10:53 +0800)
committerzwl <zwl@rockchips.com>
Mon, 20 Oct 2014 02:53:39 +0000 (10:53 +0800)
drivers/video/rockchip/rk_fb.c

index c9c775db3592359a5befdc65bf39856a6cf364b5..9c938cd72614579609f0529ed72d013d87c0c9d4 100755 (executable)
@@ -776,7 +776,8 @@ static int rk_fb_close(struct fb_info *info, int user)
                win = dev_drv->win[win_id];
                fb_par->state--;
                if (!fb_par->state) {
-                       info->fix.smem_start = win->reserved;
+                       if (fb_par->fb_phy_base > 0)
+                               info->fix.smem_start = fb_par->fb_phy_base;
                        info->var.xres = dev_drv->screen0->mode.xres;
                        info->var.yres = dev_drv->screen0->mode.yres;
                        /*
@@ -3684,11 +3685,6 @@ static int rk_fb_alloc_buffer(struct fb_info *fbi, int fb_id)
        fb_par->fb_phy_base = fbi->fix.smem_start;
        fb_par->fb_virt_base = fbi->screen_base;
        fb_par->fb_size = fbi->fix.smem_len;
-       win_id = dev_drv->ops->fb_get_win_id(dev_drv, fbi->fix.id);
-       if (win_id >= 0) {
-               win = dev_drv->win[win_id];
-               win->reserved = fbi->fix.smem_start;
-       }
 
        return ret;
 }