diff options
Diffstat (limited to 'drivers/gpu/nvgpu/common/linux/ioctl_channel.c')
-rw-r--r-- | drivers/gpu/nvgpu/common/linux/ioctl_channel.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/drivers/gpu/nvgpu/common/linux/ioctl_channel.c b/drivers/gpu/nvgpu/common/linux/ioctl_channel.c index 0acaa61d..01355b78 100644 --- a/drivers/gpu/nvgpu/common/linux/ioctl_channel.c +++ b/drivers/gpu/nvgpu/common/linux/ioctl_channel.c | |||
@@ -319,10 +319,21 @@ static int gk20a_channel_cycle_stats_snapshot(struct channel_gk20a *ch, | |||
319 | static int gk20a_channel_set_wdt_status(struct channel_gk20a *ch, | 319 | static int gk20a_channel_set_wdt_status(struct channel_gk20a *ch, |
320 | struct nvgpu_channel_wdt_args *args) | 320 | struct nvgpu_channel_wdt_args *args) |
321 | { | 321 | { |
322 | if (args->wdt_status == NVGPU_IOCTL_CHANNEL_DISABLE_WDT) | 322 | u32 status = args->wdt_status & (NVGPU_IOCTL_CHANNEL_DISABLE_WDT | |
323 | ch->wdt_enabled = false; | 323 | NVGPU_IOCTL_CHANNEL_ENABLE_WDT); |
324 | else if (args->wdt_status == NVGPU_IOCTL_CHANNEL_ENABLE_WDT) | 324 | |
325 | ch->wdt_enabled = true; | 325 | if (status == NVGPU_IOCTL_CHANNEL_DISABLE_WDT) |
326 | ch->timeout.enabled = false; | ||
327 | else if (status == NVGPU_IOCTL_CHANNEL_ENABLE_WDT) | ||
328 | ch->timeout.enabled = true; | ||
329 | else | ||
330 | return -EINVAL; | ||
331 | |||
332 | if (args->wdt_status & NVGPU_IOCTL_CHANNEL_WDT_FLAG_SET_TIMEOUT) | ||
333 | ch->timeout.limit_ms = args->timeout_ms; | ||
334 | |||
335 | ch->timeout.debug_dump = (args->wdt_status & | ||
336 | NVGPU_IOCTL_CHANNEL_WDT_FLAG_DISABLE_DUMP) == 0; | ||
326 | 337 | ||
327 | return 0; | 338 | return 0; |
328 | } | 339 | } |