diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/gr_gk20a.c')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gr_gk20a.c | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c index 2a871b5a..b94eade1 100644 --- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c | |||
@@ -327,7 +327,6 @@ int gr_gk20a_wait_idle(struct gk20a *g, unsigned long duration_ms, | |||
327 | u32 expect_delay) | 327 | u32 expect_delay) |
328 | { | 328 | { |
329 | u32 delay = expect_delay; | 329 | u32 delay = expect_delay; |
330 | bool gr_enabled; | ||
331 | bool ctxsw_active; | 330 | bool ctxsw_active; |
332 | bool gr_busy; | 331 | bool gr_busy; |
333 | u32 gr_engine_id; | 332 | u32 gr_engine_id; |
@@ -346,9 +345,6 @@ int gr_gk20a_wait_idle(struct gk20a *g, unsigned long duration_ms, | |||
346 | only when gr_status is read */ | 345 | only when gr_status is read */ |
347 | (void) gk20a_readl(g, gr_status_r()); | 346 | (void) gk20a_readl(g, gr_status_r()); |
348 | 347 | ||
349 | gr_enabled = gk20a_readl(g, mc_enable_r()) & | ||
350 | mc_enable_pgraph_enabled_f(); | ||
351 | |||
352 | engine_status = gk20a_readl(g, | 348 | engine_status = gk20a_readl(g, |
353 | fifo_engine_status_r(gr_engine_id)); | 349 | fifo_engine_status_r(gr_engine_id)); |
354 | 350 | ||
@@ -362,8 +358,7 @@ int gr_gk20a_wait_idle(struct gk20a *g, unsigned long duration_ms, | |||
362 | gr_busy = gk20a_readl(g, gr_engine_status_r()) & | 358 | gr_busy = gk20a_readl(g, gr_engine_status_r()) & |
363 | gr_engine_status_value_busy_f(); | 359 | gr_engine_status_value_busy_f(); |
364 | 360 | ||
365 | if (!gr_enabled || ctx_status_invalid | 361 | if (ctx_status_invalid || (!gr_busy && !ctxsw_active)) { |
366 | || (!gr_busy && !ctxsw_active)) { | ||
367 | nvgpu_log_fn(g, "done"); | 362 | nvgpu_log_fn(g, "done"); |
368 | return 0; | 363 | return 0; |
369 | } | 364 | } |