diff options
author | seshendra Gadagottu <sgadagottu@nvidia.com> | 2017-01-13 16:34:24 -0500 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-01-20 13:54:17 -0500 |
commit | 4f3871309d5216b50179feed8f8024193b2224cf (patch) | |
tree | 99686485e37e24c7a6b4328d61e34589135d8ddc /drivers/gpu/nvgpu/gv11b/fifo_gv11b.c | |
parent | 3a4a7d196a6a7fd256052cded45d6763c20dd3f6 (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.c | 6 |
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 | ||
191 | static void gv11b_userd_gp_put(struct gk20a *g, struct channel_gk20a *c) | 190 | static 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 | ||
205 | static void channel_gv11b_unbind(struct channel_gk20a *ch) | 203 | static 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 | ||
215 | static u32 gv11b_fifo_get_num_fifos(struct gk20a *g) | 210 | static 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 | } |