summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
diff options
context:
space:
mode:
authorDeepak Nibade <dnibade@nvidia.com>2017-04-04 04:17:07 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-04-10 02:54:26 -0400
commitdb2ee5c127afc3c270b0a5c0e74660f0532dafbe (patch)
treeff6d7641197a4ab77799a1bd3bcf69de7ba94572 /drivers/gpu/nvgpu/gk20a/mm_gk20a.c
parent3429657f9308b27e4721d88b1c1c307b23bfb316 (diff)
gpu: nvgpu: use nvgpu list for buffer states
Use nvgpu list APIs instead of linux list APIs for to store buffer states in gk20a_dmabuf_priv. Jira NVGPU-13 Change-Id: I9666b2435804b132bb86bb74c0b20590749b153f Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: http://git-master/r/1454689 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/mm_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/mm_gk20a.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
index cfe7745d..ab3dc3f9 100644
--- a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
@@ -163,7 +163,7 @@ struct gk20a_dmabuf_priv {
163 163
164 int pin_count; 164 int pin_count;
165 165
166 struct list_head states; 166 struct nvgpu_list_node states;
167 167
168 u64 buffer_id; 168 u64 buffer_id;
169}; 169};
@@ -232,9 +232,10 @@ static void gk20a_mm_delete_priv(void *_priv)
232 } 232 }
233 233
234 /* Free buffer states */ 234 /* Free buffer states */
235 list_for_each_entry_safe(s, s_tmp, &priv->states, list) { 235 nvgpu_list_for_each_entry_safe(s, s_tmp, &priv->states,
236 gk20a_buffer_state, list) {
236 gk20a_fence_put(s->fence); 237 gk20a_fence_put(s->fence);
237 list_del(&s->list); 238 nvgpu_list_del(&s->list);
238 nvgpu_kfree(g, s); 239 nvgpu_kfree(g, s);
239 } 240 }
240 241
@@ -4067,7 +4068,7 @@ int gk20a_dmabuf_alloc_drvdata(struct dma_buf *dmabuf, struct device *dev)
4067 } 4068 }
4068 4069
4069 nvgpu_mutex_init(&priv->lock); 4070 nvgpu_mutex_init(&priv->lock);
4070 INIT_LIST_HEAD(&priv->states); 4071 nvgpu_init_list_node(&priv->states);
4071 priv->buffer_id = ++priv_count; 4072 priv->buffer_id = ++priv_count;
4072 priv->g = g; 4073 priv->g = g;
4073 dma_buf_set_drvdata(dmabuf, dev, priv, gk20a_mm_delete_priv); 4074 dma_buf_set_drvdata(dmabuf, dev, priv, gk20a_mm_delete_priv);
@@ -4101,7 +4102,7 @@ int gk20a_dmabuf_get_state(struct dma_buf *dmabuf, struct device *dev,
4101 4102
4102 nvgpu_mutex_acquire(&priv->lock); 4103 nvgpu_mutex_acquire(&priv->lock);
4103 4104
4104 list_for_each_entry(s, &priv->states, list) 4105 nvgpu_list_for_each_entry(s, &priv->states, gk20a_buffer_state, list)
4105 if (s->offset == offset) 4106 if (s->offset == offset)
4106 goto out; 4107 goto out;
4107 4108
@@ -4113,9 +4114,9 @@ int gk20a_dmabuf_get_state(struct dma_buf *dmabuf, struct device *dev,
4113 } 4114 }
4114 4115
4115 s->offset = offset; 4116 s->offset = offset;
4116 INIT_LIST_HEAD(&s->list); 4117 nvgpu_init_list_node(&s->list);
4117 nvgpu_mutex_init(&s->lock); 4118 nvgpu_mutex_init(&s->lock);
4118 list_add_tail(&s->list, &priv->states); 4119 nvgpu_list_add_tail(&s->list, &priv->states);
4119 4120
4120out: 4121out:
4121 nvgpu_mutex_release(&priv->lock); 4122 nvgpu_mutex_release(&priv->lock);