- 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
(cherry picked from commit
24c474f62c44a9c0b62b66342336876536481831)
Reviewed-on: http://git-master/r/421694
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
GVS: Gerrit_Virtual_Submit
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 +
} 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;
}
void gk20a_init_channel(struct gpu_ops *gops);
+int gk20a_wait_channel_idle(struct channel_gk20a *ch);
+
#endif /*__CHANNEL_GK20A_H__*/