summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/common/linux/driver_common.c
diff options
context:
space:
mode:
authorSeema Khowala <seemaj@nvidia.com>2017-10-30 17:15:51 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2018-05-18 22:54:33 -0400
commit982fcfa737be54fd0ab16792faf97a2741e34907 (patch)
tree6c45741a08156d43d2ea09a4136c104609989e42 /drivers/gpu/nvgpu/common/linux/driver_common.c
parentac687c95d383c3fb0165e6535893510409559a8e (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.c13
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}