summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gv11b/fifo_gv11b.c
diff options
context:
space:
mode:
authorseshendra Gadagottu <sgadagottu@nvidia.com>2017-01-13 16:34:24 -0500
committermobile promotions <svcmobile_promotions@nvidia.com>2017-01-20 13:54:17 -0500
commit4f3871309d5216b50179feed8f8024193b2224cf (patch)
tree99686485e37e24c7a6b4328d61e34589135d8ddc /drivers/gpu/nvgpu/gv11b/fifo_gv11b.c
parent3a4a7d196a6a7fd256052cded45d6763c20dd3f6 (diff)
gpu: nvgpu: gv11b: restore golden context
Restore golden context correctly with subcontext header. Increase subctx header size to hold complete golden context. Also fill function pointer for freeing context header. Bug 1834201 Change-Id: Id8a3437bc437fef02ee15333c1163290217d34d1 Signed-off-by: seshendra Gadagottu <sgadagottu@nvidia.com> Reviewed-on: http://git-master/r/1282440 Reviewed-by: Alex Waterman <alexw@nvidia.com> Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gv11b/fifo_gv11b.c')
-rw-r--r--drivers/gpu/nvgpu/gv11b/fifo_gv11b.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/drivers/gpu/nvgpu/gv11b/fifo_gv11b.c b/drivers/gpu/nvgpu/gv11b/fifo_gv11b.c
index 4929f4d1..7f2f5a65 100644
--- a/drivers/gpu/nvgpu/gv11b/fifo_gv11b.c
+++ b/drivers/gpu/nvgpu/gv11b/fifo_gv11b.c
@@ -185,7 +185,6 @@ static u32 gv11b_userd_gp_get(struct gk20a *g, struct channel_gk20a *c)
185 185
186 return gk20a_mem_rd32(g, userd_mem, 186 return gk20a_mem_rd32(g, userd_mem,
187 offset + ram_userd_gp_get_w()); 187 offset + ram_userd_gp_get_w());
188
189} 188}
190 189
191static void gv11b_userd_gp_put(struct gk20a *g, struct channel_gk20a *c) 190static void gv11b_userd_gp_put(struct gk20a *g, struct channel_gk20a *c)
@@ -199,17 +198,13 @@ static void gv11b_userd_gp_put(struct gk20a *g, struct channel_gk20a *c)
199 smp_mb(); 198 smp_mb();
200 199
201 gv11b_ring_channel_doorbell(c); 200 gv11b_ring_channel_doorbell(c);
202
203} 201}
204 202
205static void channel_gv11b_unbind(struct channel_gk20a *ch) 203static void channel_gv11b_unbind(struct channel_gk20a *ch)
206{ 204{
207 gk20a_dbg_fn(""); 205 gk20a_dbg_fn("");
208 206
209 gv11b_free_subctx_header(ch);
210
211 channel_gk20a_unbind(ch); 207 channel_gk20a_unbind(ch);
212
213} 208}
214 209
215static u32 gv11b_fifo_get_num_fifos(struct gk20a *g) 210static u32 gv11b_fifo_get_num_fifos(struct gk20a *g)
@@ -231,4 +226,5 @@ void gv11b_init_fifo(struct gpu_ops *gops)
231 gops->fifo.setup_ramfc = channel_gv11b_setup_ramfc; 226 gops->fifo.setup_ramfc = channel_gv11b_setup_ramfc;
232 gops->fifo.unbind_channel = channel_gv11b_unbind; 227 gops->fifo.unbind_channel = channel_gv11b_unbind;
233 gops->fifo.eng_runlist_base_size = fifo_eng_runlist_base__size_1_v; 228 gops->fifo.eng_runlist_base_size = fifo_eng_runlist_base__size_1_v;
229 gops->fifo.free_channel_ctx_header = gv11b_free_subctx_header;
234} 230}