diff --git a/drivers/gpu/nvgpu/common/linux/driver_common.c b/drivers/gpu/nvgpu/common/linux/driver_common.c index 34bd2062f..14d4dd400 100644 --- a/drivers/gpu/nvgpu/common/linux/driver_common.c +++ b/drivers/gpu/nvgpu/common/linux/driver_common.c @@ -61,6 +61,8 @@ static void nvgpu_init_vars(struct gk20a *g) static void nvgpu_init_timeout(struct gk20a *g) { + struct gk20a_platform *platform = dev_get_drvdata(g->dev); + g->gr_idle_timeout_default = CONFIG_GK20A_DEFAULT_TIMEOUT; if (nvgpu_platform_is_silicon(g)) g->timeouts_enabled = true; @@ -68,6 +70,7 @@ static void nvgpu_init_timeout(struct gk20a *g) g->gr_idle_timeout_default = GK20A_TIMEOUT_FPGA; g->timeouts_enabled = true; } + g->ch_wdt_timeout_ms = platform->ch_wdt_timeout_ms; } static void nvgpu_init_timeslice(struct gk20a *g) diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c index eafa17fbe..8014fd8cb 100644 --- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c @@ -1377,8 +1377,7 @@ bool gk20a_channel_update_and_check_timeout(struct channel_gk20a *ch, static u32 gk20a_get_channel_watchdog_timeout(struct channel_gk20a *ch) { - struct gk20a_platform *platform = gk20a_get_platform(ch->g->dev); - return platform->ch_wdt_timeout_ms; + return ch->g->ch_wdt_timeout_ms; } static u32 get_gp_free_count(struct channel_gk20a *c) @@ -1490,9 +1489,7 @@ static void __gk20a_channel_timeout_start(struct channel_gk20a *ch) */ static void gk20a_channel_timeout_start(struct channel_gk20a *ch) { - struct gk20a_platform *platform = gk20a_get_platform(ch->g->dev); - - if (!ch->g->timeouts_enabled || !platform->ch_wdt_timeout_ms) + if (!ch->g->timeouts_enabled || !gk20a_get_channel_watchdog_timeout(ch)) return; if (!ch->wdt_enabled) diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h index 74e2c688a..c9a2ee937 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/gk20a.h @@ -976,6 +976,7 @@ struct gk20a { #else bool timeouts_enabled; #endif + unsigned int ch_wdt_timeout_ms; struct nvgpu_mutex poweroff_lock;