mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-22 09:12:24 +03:00
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 <dnibade@nvidia.com> Reviewed-on: http://git-master/r/412059 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
This commit is contained in:
committed by
Dan Willemsen
parent
0d7533fb4f
commit
77a0b8eb13
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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__*/
|
||||
|
||||
Reference in New Issue
Block a user