mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-24 10:34:43 +03:00
gpu: nvgpu: remove gk20a_busy() from channel_syncpt_incr()
gk20a_busy() is already called on all the paths to __gk20a_channel_syncpt_incr() i.e. in gk20a_submit_channel_gpfifo() hence remove the redundant gk20a_busy() call since it causes deadlock scenario with VPR resize use case Bug 200128257 Bug 1645760 Bug 200114947 Bug 200124519 Change-Id: I4cd47b7e7cdc92aaeda17256a99f2ba93833a3b3 Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: http://git-master/r/778341 (cherry picked from commit 5a5dc5b5a9d38a5e8d5c1ca29dc6de425c00b605) Reviewed-on: http://git-master/r/779070 Reviewed-by: Sachin Nikam <snikam@nvidia.com>
This commit is contained in:
committed by
Sachin Nikam
parent
a969bc98ae
commit
c27e094002
@@ -213,36 +213,28 @@ static int __gk20a_channel_syncpt_incr(struct gk20a_channel_sync *s,
|
||||
thresh = nvhost_syncpt_incr_max_ext(sp->host1x_pdev, sp->id, 2);
|
||||
|
||||
if (register_irq) {
|
||||
err = gk20a_busy(c->g->dev);
|
||||
if (err)
|
||||
gk20a_err(dev_from_gk20a(c->g),
|
||||
"failed to add syncpt interrupt notifier for channel %d",
|
||||
c->hw_chid);
|
||||
else {
|
||||
struct channel_gk20a *referenced = gk20a_channel_get(c);
|
||||
struct channel_gk20a *referenced = gk20a_channel_get(c);
|
||||
|
||||
WARN_ON(!referenced);
|
||||
gk20a_idle(c->g->dev);
|
||||
WARN_ON(!referenced);
|
||||
|
||||
if (referenced) {
|
||||
/* note: channel_put() is in
|
||||
* gk20a_channel_syncpt_update() */
|
||||
if (referenced) {
|
||||
/* note: channel_put() is in
|
||||
* gk20a_channel_syncpt_update() */
|
||||
|
||||
err = nvhost_intr_register_notifier(
|
||||
sp->host1x_pdev,
|
||||
sp->id, thresh,
|
||||
gk20a_channel_syncpt_update, c);
|
||||
if (err)
|
||||
gk20a_channel_put(referenced);
|
||||
err = nvhost_intr_register_notifier(
|
||||
sp->host1x_pdev,
|
||||
sp->id, thresh,
|
||||
gk20a_channel_syncpt_update, c);
|
||||
if (err)
|
||||
gk20a_channel_put(referenced);
|
||||
|
||||
/* Adding interrupt action should
|
||||
* never fail. A proper error handling
|
||||
* here would require us to decrement
|
||||
* the syncpt max back to its original
|
||||
* value. */
|
||||
WARN(err,
|
||||
"failed to set submit complete interrupt");
|
||||
}
|
||||
/* Adding interrupt action should
|
||||
* never fail. A proper error handling
|
||||
* here would require us to decrement
|
||||
* the syncpt max back to its original
|
||||
* value. */
|
||||
WARN(err,
|
||||
"failed to set submit complete interrupt");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user