rk fb: add support phy address config
authorhjc <hjc@rock-chips.com>
Fri, 20 Mar 2015 02:53:50 +0000 (10:53 +0800)
committerhjc <hjc@rock-chips.com>
Mon, 23 Mar 2015 03:01:21 +0000 (11:01 +0800)
Signed-off-by: hjc <hjc@rock-chips.com>
drivers/video/rockchip/rk_fb.c

index 6b9d8082d590d92a376158a2070889e69e463c18..5ae5a4c113a383c550a9c07fc91daa899920d876 100755 (executable)
@@ -1490,7 +1490,8 @@ void rk_fb_free_dma_buf(struct rk_lcdc_driver *dev_drv,
                index_buf = area_data->index_buf;
 #if defined(CONFIG_ROCKCHIP_IOMMU)
                if (dev_drv->iommu_enabled) {
-                       if (rk_fb->disp_policy != DISPLAY_POLICY_BOX)
+                       if ((rk_fb->disp_policy != DISPLAY_POLICY_BOX) &&
+                            (area_data->ion_handle != NULL))
                                ion_unmap_iommu(dev_drv->dev, rk_fb->ion_client,
                                                area_data->ion_handle);
                        freed_addr[freed_index++] = area_data->smem_start;
@@ -1899,6 +1900,7 @@ static int rk_fb_set_win_buffer(struct fb_info *info,
                reg_win_data->reg_area_data[0].smem_start =
                    win_par->area_par[0].phy_addr;
                reg_win_data->area_num = 1;
+               reg_win_data->area_buf_num++;
                fbi->screen_base = phys_to_virt(win_par->area_par[0].phy_addr);
        }