diff options
author | Seema Khowala <seemaj@nvidia.com> | 2017-10-30 17:15:51 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2018-05-18 22:54:33 -0400 |
commit | 982fcfa737be54fd0ab16792faf97a2741e34907 (patch) | |
tree | 6c45741a08156d43d2ea09a4136c104609989e42 /drivers/gpu/nvgpu/common/linux/driver_common.c | |
parent | ac687c95d383c3fb0165e6535893510409559a8e (diff) |
gpu: nvgpu: Add timeouts_disabled_refcount for enabling timeout
-timeouts will be enabled only when timeouts_disabled_refcount
will reach 0
-timeouts_enabled debugfs will change from u32 type to file type
to avoid race enabling/disabling timeout from debugfs and ioctl
-unify setting timeouts_enabled from debugfs and ioctl
Bug 1982434
Change-Id: I54bab778f1ae533872146dfb8d80deafd2a685c7
Signed-off-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1588690
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/common/linux/driver_common.c')
-rw-r--r-- | drivers/gpu/nvgpu/common/linux/driver_common.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/gpu/nvgpu/common/linux/driver_common.c b/drivers/gpu/nvgpu/common/linux/driver_common.c index 769f7e03..edc8aca8 100644 --- a/drivers/gpu/nvgpu/common/linux/driver_common.c +++ b/drivers/gpu/nvgpu/common/linux/driver_common.c | |||
@@ -96,12 +96,15 @@ static void nvgpu_init_timeout(struct gk20a *g) | |||
96 | { | 96 | { |
97 | struct gk20a_platform *platform = dev_get_drvdata(dev_from_gk20a(g)); | 97 | struct gk20a_platform *platform = dev_get_drvdata(dev_from_gk20a(g)); |
98 | 98 | ||
99 | g->gr_idle_timeout_default = NVGPU_DEFAULT_GR_IDLE_TIMEOUT; | 99 | g->timeouts_disabled_by_user = false; |
100 | if (nvgpu_platform_is_silicon(g)) | 100 | nvgpu_atomic_set(&g->timeouts_disabled_refcount, 0); |
101 | g->timeouts_enabled = true; | 101 | |
102 | else if (nvgpu_platform_is_fpga(g)) { | 102 | if (nvgpu_platform_is_silicon(g)) { |
103 | g->gr_idle_timeout_default = NVGPU_DEFAULT_GR_IDLE_TIMEOUT; | ||
104 | } else if (nvgpu_platform_is_fpga(g)) { | ||
103 | g->gr_idle_timeout_default = GK20A_TIMEOUT_FPGA; | 105 | g->gr_idle_timeout_default = GK20A_TIMEOUT_FPGA; |
104 | g->timeouts_enabled = true; | 106 | } else { |
107 | g->gr_idle_timeout_default = (u32)ULONG_MAX; | ||
105 | } | 108 | } |
106 | g->ch_wdt_timeout_ms = platform->ch_wdt_timeout_ms; | 109 | g->ch_wdt_timeout_ms = platform->ch_wdt_timeout_ms; |
107 | } | 110 | } |