diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/channel_gk20a.c')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/channel_gk20a.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c index e6a39b20..92b4b3de 100644 --- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c | |||
@@ -1573,6 +1573,21 @@ static void gk20a_channel_timeout_stop(struct channel_gk20a *ch) | |||
1573 | mutex_unlock(&ch->timeout.lock); | 1573 | mutex_unlock(&ch->timeout.lock); |
1574 | } | 1574 | } |
1575 | 1575 | ||
1576 | void gk20a_channel_timeout_stop_all_channels(struct gk20a *g) | ||
1577 | { | ||
1578 | u32 chid; | ||
1579 | struct fifo_gk20a *f = &g->fifo; | ||
1580 | |||
1581 | for (chid = 0; chid < f->num_channels; chid++) { | ||
1582 | struct channel_gk20a *ch = &f->channel[chid]; | ||
1583 | |||
1584 | if (gk20a_channel_get(ch)) { | ||
1585 | gk20a_channel_timeout_stop(ch); | ||
1586 | gk20a_channel_put(ch); | ||
1587 | } | ||
1588 | } | ||
1589 | } | ||
1590 | |||
1576 | static void gk20a_channel_timeout_handler(struct work_struct *work) | 1591 | static void gk20a_channel_timeout_handler(struct work_struct *work) |
1577 | { | 1592 | { |
1578 | struct channel_gk20a_job *job; | 1593 | struct channel_gk20a_job *job; |