From 5e33f58a5ee971cd846f9f2a41ed652a5f2b1523 Mon Sep 17 00:00:00 2001 From: Terje Bergstrom Date: Mon, 1 May 2017 11:12:12 -0700 Subject: gpu: nvgpu: Move ch_wdt_timeout to gk20a Copy watchdog timeout from platform structure to gk20a and use it from gk20a. JIRA NVGPU-16 Change-Id: Iab70253a7f0e1d28f2e3209285b3f4c476ce9279 Signed-off-by: Terje Bergstrom Reviewed-on: http://git-master/r/1473705 Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/common/linux/driver_common.c | 3 +++ drivers/gpu/nvgpu/gk20a/channel_gk20a.c | 7 ++----- drivers/gpu/nvgpu/gk20a/gk20a.h | 1 + 3 files changed, 6 insertions(+), 5 deletions(-) (limited to 'drivers') diff --git a/drivers/gpu/nvgpu/common/linux/driver_common.c b/drivers/gpu/nvgpu/common/linux/driver_common.c index 34bd2062..14d4dd40 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 eafa17fb..8014fd8c 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 74e2c688..c9a2ee93 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; -- cgit v1.2.2