summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
diff options
context:
space:
mode:
authorDeepak Nibade <dnibade@nvidia.com>2017-03-31 08:21:55 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-04-03 11:55:20 -0400
commit371b173c12df8828df74da2c8edfc94182dccfae (patch)
tree491fc909e722109f10019d350f7101804f868e6c /drivers/gpu/nvgpu/gk20a/mm_gk20a.c
parentf0147665b2d9c3faa673e6b0001be596018c4e9c (diff)
gpu: nvgpu: use nvgpu list for vidmem clear list
Use nvgpu list APIs instead of linux list APIs for vidmem clear list Jira NVGPU-13 Change-Id: I13f7c5a54fb199d15ad1402216f3275f0f0474af Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: http://git-master/r/1454012 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/mm_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/mm_gk20a.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
index 3cda3034..b1d709f0 100644
--- a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
@@ -823,7 +823,7 @@ static int gk20a_init_vidmem(struct mm_gk20a *mm)
823 823
824 INIT_WORK(&mm->vidmem.clear_mem_worker, gk20a_vidmem_clear_mem_worker); 824 INIT_WORK(&mm->vidmem.clear_mem_worker, gk20a_vidmem_clear_mem_worker);
825 atomic64_set(&mm->vidmem.bytes_pending, 0); 825 atomic64_set(&mm->vidmem.bytes_pending, 0);
826 INIT_LIST_HEAD(&mm->vidmem.clear_list_head); 826 nvgpu_init_list_node(&mm->vidmem.clear_list_head);
827 nvgpu_mutex_init(&mm->vidmem.clear_list_mutex); 827 nvgpu_mutex_init(&mm->vidmem.clear_list_mutex);
828 828
829 gk20a_dbg_info("registered vidmem: %zu MB", size / SZ_1M); 829 gk20a_dbg_info("registered vidmem: %zu MB", size / SZ_1M);
@@ -3012,7 +3012,7 @@ int gk20a_gmmu_alloc_flags_vid_at(struct gk20a *g, unsigned long flags,
3012 mem->aperture = APERTURE_VIDMEM; 3012 mem->aperture = APERTURE_VIDMEM;
3013 mem->allocator = vidmem_alloc; 3013 mem->allocator = vidmem_alloc;
3014 3014
3015 INIT_LIST_HEAD(&mem->clear_list_entry); 3015 nvgpu_init_list_node(&mem->clear_list_entry);
3016 3016
3017 gk20a_dbg_fn("done at 0x%llx size %zu", addr, size); 3017 gk20a_dbg_fn("done at 0x%llx size %zu", addr, size);
3018 3018
@@ -3038,8 +3038,8 @@ static void gk20a_gmmu_free_vid(struct gk20a *g, struct mem_desc *mem)
3038 3038
3039 if (mem->user_mem) { 3039 if (mem->user_mem) {
3040 nvgpu_mutex_acquire(&g->mm.vidmem.clear_list_mutex); 3040 nvgpu_mutex_acquire(&g->mm.vidmem.clear_list_mutex);
3041 was_empty = list_empty(&g->mm.vidmem.clear_list_head); 3041 was_empty = nvgpu_list_empty(&g->mm.vidmem.clear_list_head);
3042 list_add_tail(&mem->clear_list_entry, 3042 nvgpu_list_add_tail(&mem->clear_list_entry,
3043 &g->mm.vidmem.clear_list_head); 3043 &g->mm.vidmem.clear_list_head);
3044 atomic64_add(mem->size, &g->mm.vidmem.bytes_pending); 3044 atomic64_add(mem->size, &g->mm.vidmem.bytes_pending);
3045 nvgpu_mutex_release(&g->mm.vidmem.clear_list_mutex); 3045 nvgpu_mutex_release(&g->mm.vidmem.clear_list_mutex);
@@ -3102,10 +3102,11 @@ static struct mem_desc *get_pending_mem_desc(struct mm_gk20a *mm)
3102 struct mem_desc *mem = NULL; 3102 struct mem_desc *mem = NULL;
3103 3103
3104 nvgpu_mutex_acquire(&mm->vidmem.clear_list_mutex); 3104 nvgpu_mutex_acquire(&mm->vidmem.clear_list_mutex);
3105 mem = list_first_entry_or_null(&mm->vidmem.clear_list_head, 3105 if (!nvgpu_list_empty(&mm->vidmem.clear_list_head)) {
3106 struct mem_desc, clear_list_entry); 3106 mem = nvgpu_list_first_entry(&mm->vidmem.clear_list_head,
3107 if (mem) 3107 mem_desc, clear_list_entry);
3108 list_del_init(&mem->clear_list_entry); 3108 nvgpu_list_del(&mem->clear_list_entry);
3109 }
3109 nvgpu_mutex_release(&mm->vidmem.clear_list_mutex); 3110 nvgpu_mutex_release(&mm->vidmem.clear_list_mutex);
3110 3111
3111 return mem; 3112 return mem;