diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/mm_gk20a.c | 15 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/mm_gk20a.h | 9 |
2 files changed, 16 insertions, 8 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 | ||
4120 | out: | 4121 | out: |
4121 | nvgpu_mutex_release(&priv->lock); | 4122 | nvgpu_mutex_release(&priv->lock); |
diff --git a/drivers/gpu/nvgpu/gk20a/mm_gk20a.h b/drivers/gpu/nvgpu/gk20a/mm_gk20a.h index 53366caf..f4bbec23 100644 --- a/drivers/gpu/nvgpu/gk20a/mm_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/mm_gk20a.h | |||
@@ -87,7 +87,7 @@ struct compbit_store_desc { | |||
87 | }; | 87 | }; |
88 | 88 | ||
89 | struct gk20a_buffer_state { | 89 | struct gk20a_buffer_state { |
90 | struct list_head list; | 90 | struct nvgpu_list_node list; |
91 | 91 | ||
92 | /* The valid compbits and the fence must be changed atomically. */ | 92 | /* The valid compbits and the fence must be changed atomically. */ |
93 | struct nvgpu_mutex lock; | 93 | struct nvgpu_mutex lock; |
@@ -108,6 +108,13 @@ struct gk20a_buffer_state { | |||
108 | struct gk20a_fence *fence; | 108 | struct gk20a_fence *fence; |
109 | }; | 109 | }; |
110 | 110 | ||
111 | static inline struct gk20a_buffer_state * | ||
112 | gk20a_buffer_state_from_list(struct nvgpu_list_node *node) | ||
113 | { | ||
114 | return (struct gk20a_buffer_state *) | ||
115 | ((uintptr_t)node - offsetof(struct gk20a_buffer_state, list)); | ||
116 | }; | ||
117 | |||
111 | enum gmmu_pgsz_gk20a { | 118 | enum gmmu_pgsz_gk20a { |
112 | gmmu_page_size_small = 0, | 119 | gmmu_page_size_small = 0, |
113 | gmmu_page_size_big = 1, | 120 | gmmu_page_size_big = 1, |