From 77a0b8eb131550b96969550e2582a2e8424eabed Mon Sep 17 00:00:00 2001 From: Deepak Nibade Date: Tue, 20 May 2014 15:00:30 +0530 Subject: gpu: nvgpu: gk20a: export wait_channel_idle() - Export gk20a_wait_channel_idle() function from channel_gk20a.h - also, return error -EBUSY from this function when channel is found to be not idle Bug 1487804 Change-Id: Ia7425e9b1332260ee9a53dca55ab07541f2755a9 Signed-off-by: Deepak Nibade Reviewed-on: http://git-master/r/412059 Reviewed-by: Terje Bergstrom Tested-by: Terje Bergstrom --- drivers/gpu/nvgpu/gk20a/channel_gk20a.c | 9 ++++++--- drivers/gpu/nvgpu/gk20a/channel_gk20a.h | 2 ++ 2 files changed, 8 insertions(+), 3 deletions(-) (limited to 'drivers') 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) ccsr_channel_enable_clr_true_f()); } -static int gk20a_wait_channel_idle(struct channel_gk20a *ch) +int gk20a_wait_channel_idle(struct channel_gk20a *ch) { bool channel_idle = false; unsigned long end_jiffies = jiffies + @@ -435,8 +435,11 @@ static int gk20a_wait_channel_idle(struct channel_gk20a *ch) } while (time_before(jiffies, end_jiffies) || !tegra_platform_is_silicon()); - if (!channel_idle) - gk20a_err(dev_from_gk20a(ch->g), "channel jobs not freed"); + if (!channel_idle) { + gk20a_err(dev_from_gk20a(ch->g), "jobs not freed for channel %d\n", + ch->hw_chid); + return -EBUSY; + } return 0; } 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); void gk20a_init_channel(struct gpu_ops *gops); +int gk20a_wait_channel_idle(struct channel_gk20a *ch); + #endif /*__CHANNEL_GK20A_H__*/ -- cgit v1.2.2