summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/common/linux/ioctl_channel.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/common/linux/ioctl_channel.c')
-rw-r--r--drivers/gpu/nvgpu/common/linux/ioctl_channel.c19
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,
319static int gk20a_channel_set_wdt_status(struct channel_gk20a *ch, 319static 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}