From: SeokYeon Hwang Date: Sun, 24 Apr 2016 08:53:54 +0000 (+0900) Subject: vigs: change trivial ttm related structures and functions X-Git-Tag: submit/tizen/20160607.132125~10 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=25774bf64371745cc718136bc77d607959039fd2;p=sdk%2Femulator%2Femulator-kernel.git vigs: change trivial ttm related structures and functions Change-Id: I646817c1646e42396d8c0dc707a9b09125b178bb Signed-off-by: SeokYeon Hwang --- diff --git a/drivers/gpu/drm/vigs/vigs_driver.c b/drivers/gpu/drm/vigs/vigs_driver.c index 51217a33aa19..88a599761961 100644 --- a/drivers/gpu/drm/vigs/vigs_driver.c +++ b/drivers/gpu/drm/vigs/vigs_driver.c @@ -148,8 +148,6 @@ static int vigs_drm_open(struct drm_device *dev, struct drm_file *file_priv) file_priv->driver_priv = vigs_file; - vigs_dev->mman->bo_dev.dev_mapping = dev->dev_mapping; - return 0; } diff --git a/drivers/gpu/drm/vigs/vigs_execbuffer.c b/drivers/gpu/drm/vigs/vigs_execbuffer.c index d6094489af92..6795aa1835da 100644 --- a/drivers/gpu/drm/vigs/vigs_execbuffer.c +++ b/drivers/gpu/drm/vigs/vigs_execbuffer.c @@ -511,7 +511,7 @@ int vigs_execbuffer_exec_ioctl(struct drm_device *drm_dev, if (list_empty(&list)) { vigs_comm_exec(vigs_dev->comm, execbuffer); } else { - ret = ttm_eu_reserve_buffers(&ticket, &list); + ret = ttm_eu_reserve_buffers(&ticket, &list, true, NULL); if (ret != 0) { goto out3; @@ -530,7 +530,7 @@ int vigs_execbuffer_exec_ioctl(struct drm_device *drm_dev, vigs_comm_exec(vigs_dev->comm, execbuffer); - ttm_eu_fence_buffer_objects(&ticket, &list, fence); + ttm_eu_fence_buffer_objects(&ticket, &list, (void *)fence); if (sync) { vigs_fence_wait(fence, false); diff --git a/drivers/gpu/drm/vigs/vigs_gem.c b/drivers/gpu/drm/vigs/vigs_gem.c index 1dfc1dd2626e..e456f72ad63f 100644 --- a/drivers/gpu/drm/vigs/vigs_gem.c +++ b/drivers/gpu/drm/vigs/vigs_gem.c @@ -25,30 +25,31 @@ int vigs_gem_init(struct vigs_gem_object *vigs_gem, bool kernel, vigs_gem_destroy_func destroy) { - u32 placements[1]; + struct ttm_place placements[1]; struct ttm_placement placement; enum ttm_bo_type bo_type; int ret = 0; size = roundup(size, PAGE_SIZE); - if (size == 0) { kfree(vigs_gem); return -EINVAL; } + memset(placements, 0, sizeof(*placements)); + memset(&placement, 0, sizeof(placement)); + if (type == VIGS_GEM_TYPE_SURFACE) { - placements[0] = + placements[0].flags = TTM_PL_FLAG_CACHED | TTM_PL_FLAG_TT | TTM_PL_FLAG_NO_EVICT; } else if (type == VIGS_GEM_TYPE_EXECBUFFER) { - placements[0] = + placements[0].flags = TTM_PL_FLAG_WC | TTM_PL_FLAG_PRIV0 | TTM_PL_FLAG_NO_EVICT; } else { kfree(vigs_gem); return -EINVAL; } - memset(&placement, 0, sizeof(placement)); placement.placement = placements; placement.busy_placement = placements; @@ -61,10 +62,6 @@ int vigs_gem_init(struct vigs_gem_object *vigs_gem, bo_type = ttm_bo_type_device; } - if (unlikely(vigs_dev->mman->bo_dev.dev_mapping == NULL)) { - vigs_dev->mman->bo_dev.dev_mapping = vigs_dev->drm_dev->dev_mapping; - } - ret = drm_gem_object_init(vigs_dev->drm_dev, &vigs_gem->base, size); if (ret != 0) { @@ -74,7 +71,7 @@ int vigs_gem_init(struct vigs_gem_object *vigs_gem, ret = ttm_bo_init(&vigs_dev->mman->bo_dev, &vigs_gem->bo, size, bo_type, &placement, 0, - false, NULL, 0, NULL, + false, NULL, 0, NULL, NULL, &vigs_gem_bo_destroy); if (ret != 0) { @@ -102,7 +99,7 @@ void vigs_gem_cleanup(struct vigs_gem_object *vigs_gem) int vigs_gem_pin(struct vigs_gem_object *vigs_gem) { - u32 placements[1]; + struct ttm_place placements[1]; struct ttm_placement placement; int ret; @@ -117,11 +114,12 @@ int vigs_gem_pin(struct vigs_gem_object *vigs_gem) return 0; } - placements[0] = - TTM_PL_FLAG_WC | TTM_PL_FLAG_VRAM | TTM_PL_FLAG_NO_EVICT; - + memset(placements, 0, sizeof(*placements)); memset(&placement, 0, sizeof(placement)); + placements[0].flags = + TTM_PL_FLAG_WC | TTM_PL_FLAG_VRAM | TTM_PL_FLAG_NO_EVICT; + placement.placement = placements; placement.busy_placement = placements; placement.num_placement = 1; @@ -149,7 +147,7 @@ int vigs_gem_pin(struct vigs_gem_object *vigs_gem) void vigs_gem_unpin(struct vigs_gem_object *vigs_gem) { - u32 placements[2]; + struct ttm_place placements[2]; struct ttm_placement placement; int ret; @@ -165,12 +163,14 @@ void vigs_gem_unpin(struct vigs_gem_object *vigs_gem) vigs_gem_kunmap(vigs_gem); - placements[0] = + memset(placements, 0, sizeof(*placements) * 2); + memset(&placement, 0, sizeof(placement)); + + placements[0].flags = TTM_PL_FLAG_WC | TTM_PL_FLAG_VRAM; - placements[1] = + placements[1].flags = TTM_PL_FLAG_CACHED | TTM_PL_FLAG_TT | TTM_PL_FLAG_NO_EVICT; - memset(&placement, 0, sizeof(placement)); placement.placement = placements; placement.busy_placement = placements; diff --git a/drivers/gpu/drm/vigs/vigs_mman.c b/drivers/gpu/drm/vigs/vigs_mman.c index 4a3f7bcd5bb2..4f69d15604be 100644 --- a/drivers/gpu/drm/vigs/vigs_mman.c +++ b/drivers/gpu/drm/vigs/vigs_mman.c @@ -203,15 +203,17 @@ static int vigs_ttm_init_mem_type(struct ttm_bo_device *bo_dev, return 0; } -static const u32 evict_placements[1] = +static const struct ttm_place evict_placements[] = { - TTM_PL_FLAG_CACHED | TTM_PL_FLAG_TT | TTM_PL_FLAG_NO_EVICT + { + .fpfn = 0, + .lpfn = 0, + .flags = TTM_PL_FLAG_CACHED | TTM_PL_FLAG_TT | TTM_PL_FLAG_NO_EVICT + }, }; static const struct ttm_placement evict_placement = { - .fpfn = 0, - .lpfn = 0, .num_placement = ARRAY_SIZE(evict_placements), .placement = evict_placements, .num_busy_placement = ARRAY_SIZE(evict_placements), @@ -300,7 +302,7 @@ static void *vigs_ttm_sync_obj_ref(void *sync_obj) static int vigs_ttm_fault_reserve_notify(struct ttm_buffer_object *bo) { - u32 placements[1]; + struct ttm_place placements[1]; struct ttm_placement placement; int ret; @@ -315,10 +317,11 @@ static int vigs_ttm_fault_reserve_notify(struct ttm_buffer_object *bo) /* * It's GPU memory page fault. Move this buffer into VRAM. */ + memset(placements, 0, sizeof(*placements)); + memset(&placement, 0, sizeof(placement)); - placements[0] = TTM_PL_FLAG_WC | TTM_PL_FLAG_VRAM; + placements[0].flags = TTM_PL_FLAG_WC | TTM_PL_FLAG_VRAM; - memset(&placement, 0, sizeof(placement)); placement.placement = placements; placement.busy_placement = placements; @@ -448,7 +451,7 @@ int vigs_mman_create(resource_size_t vram_base, resource_size_t ram_size, uint32_t vma_data_size, struct vigs_mman_ops *ops, - void *user_data, + struct vigs_device *vigs_dev, struct vigs_mman **mman) { int ret = 0; @@ -487,11 +490,12 @@ int vigs_mman_create(resource_size_t vram_base, (*mman)->vram_base = vram_base; (*mman)->ram_base = ram_base; (*mman)->ops = ops; - (*mman)->user_data = user_data; + (*mman)->user_data = vigs_dev; ret = ttm_bo_device_init(&(*mman)->bo_dev, (*mman)->bo_global_ref.ref.object, &vigs_ttm_bo_driver, + vigs_dev->drm_dev->anon_inode->i_mapping, DRM_FILE_PAGE_OFFSET, 0); if (ret != 0) { diff --git a/drivers/gpu/drm/vigs/vigs_mman.h b/drivers/gpu/drm/vigs/vigs_mman.h index 286e99ae1b31..d9369e98bdd3 100644 --- a/drivers/gpu/drm/vigs/vigs_mman.h +++ b/drivers/gpu/drm/vigs/vigs_mman.h @@ -5,6 +5,8 @@ #include #include +#include + struct vigs_mman_ops { /* @@ -71,7 +73,7 @@ int vigs_mman_create(resource_size_t vram_base, resource_size_t ram_size, uint32_t vma_data_size, struct vigs_mman_ops *ops, - void *user_data, + struct vigs_device *vigs_dev, struct vigs_mman **mman); void vigs_mman_destroy(struct vigs_mman *mman);