summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/nvgpu/gk20a/channel_gk20a.c9
-rw-r--r--drivers/gpu/nvgpu/gk20a/channel_gk20a.h2
2 files changed, 8 insertions, 3 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
index cf239b55..68a30392 100644
--- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c
@@ -418,7 +418,7 @@ void gk20a_disable_channel_no_update(struct channel_gk20a *ch)
418 ccsr_channel_enable_clr_true_f()); 418 ccsr_channel_enable_clr_true_f());
419} 419}
420 420
421static int gk20a_wait_channel_idle(struct channel_gk20a *ch) 421int gk20a_wait_channel_idle(struct channel_gk20a *ch)
422{ 422{
423 bool channel_idle = false; 423 bool channel_idle = false;
424 unsigned long end_jiffies = jiffies + 424 unsigned long end_jiffies = jiffies +
@@ -435,8 +435,11 @@ static int gk20a_wait_channel_idle(struct channel_gk20a *ch)
435 } while (time_before(jiffies, end_jiffies) 435 } while (time_before(jiffies, end_jiffies)
436 || !tegra_platform_is_silicon()); 436 || !tegra_platform_is_silicon());
437 437
438 if (!channel_idle) 438 if (!channel_idle) {
439 gk20a_err(dev_from_gk20a(ch->g), "channel jobs not freed"); 439 gk20a_err(dev_from_gk20a(ch->g), "jobs not freed for channel %d\n",
440 ch->hw_chid);
441 return -EBUSY;
442 }
440 443
441 return 0; 444 return 0;
442} 445}
diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.h b/drivers/gpu/nvgpu/gk20a/channel_gk20a.h
index e37511cb..dd0197d6 100644
--- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.h
@@ -170,4 +170,6 @@ void gk20a_channel_update(struct channel_gk20a *c, int nr_completed);
170 170
171void gk20a_init_channel(struct gpu_ops *gops); 171void gk20a_init_channel(struct gpu_ops *gops);
172 172
173int gk20a_wait_channel_idle(struct channel_gk20a *ch);
174
173#endif /*__CHANNEL_GK20A_H__*/ 175#endif /*__CHANNEL_GK20A_H__*/