diff options
Diffstat (limited to 'drivers/gpu/nvgpu')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/channel_gk20a.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c index 0a6a40a8..9796d7c6 100644 --- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c | |||
@@ -1697,9 +1697,8 @@ static void gk20a_channel_timeout_handler(struct work_struct *work) | |||
1697 | /* Need global lock since multiple channels can timeout at a time */ | 1697 | /* Need global lock since multiple channels can timeout at a time */ |
1698 | mutex_lock(&g->ch_wdt_lock); | 1698 | mutex_lock(&g->ch_wdt_lock); |
1699 | 1699 | ||
1700 | gk20a_debug_dump(g->dev); | 1700 | gk20a_err(dev_from_gk20a(g), "Possible job timeout on ch=%d", |
1701 | gk20a_gr_debug_dump(g->dev); | 1701 | ch->hw_chid); |
1702 | |||
1703 | 1702 | ||
1704 | /* Get timed out job and reset the timer */ | 1703 | /* Get timed out job and reset the timer */ |
1705 | mutex_lock(&ch->timeout.lock); | 1704 | mutex_lock(&ch->timeout.lock); |
@@ -1707,14 +1706,23 @@ static void gk20a_channel_timeout_handler(struct work_struct *work) | |||
1707 | ch->timeout.initialized = false; | 1706 | ch->timeout.initialized = false; |
1708 | mutex_unlock(&ch->timeout.lock); | 1707 | mutex_unlock(&ch->timeout.lock); |
1709 | 1708 | ||
1710 | if (gr_gk20a_disable_ctxsw(g)) | 1709 | if (gr_gk20a_disable_ctxsw(g)) { |
1710 | gk20a_err(dev_from_gk20a(g), "Unable to disable ctxsw!"); | ||
1711 | goto fail_unlock; | 1711 | goto fail_unlock; |
1712 | } | ||
1712 | 1713 | ||
1713 | if (gk20a_fence_is_expired(job->post_fence)) | 1714 | if (gk20a_fence_is_expired(job->post_fence)) { |
1715 | gk20a_err(dev_from_gk20a(g), | ||
1716 | "Timed out fence is expired on c=%d!", | ||
1717 | ch->hw_chid); | ||
1714 | goto fail_enable_ctxsw; | 1718 | goto fail_enable_ctxsw; |
1719 | } | ||
1720 | |||
1721 | gk20a_err(dev_from_gk20a(g), "Confirmed: job on channel %d timed out", | ||
1722 | ch->hw_chid); | ||
1715 | 1723 | ||
1716 | gk20a_err(dev_from_gk20a(g), "Job on channel %d timed out\n", | 1724 | gk20a_debug_dump(g->dev); |
1717 | ch->hw_chid); | 1725 | gk20a_gr_debug_dump(g->dev); |
1718 | 1726 | ||
1719 | /* Get failing engine data */ | 1727 | /* Get failing engine data */ |
1720 | engine_id = gk20a_fifo_get_failing_engine_data(g, &id, &is_tsg); | 1728 | engine_id = gk20a_fifo_get_failing_engine_data(g, &id, &is_tsg); |