summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
diff options
context:
space:
mode:
authorTerje Bergstrom <tbergstrom@nvidia.com>2015-10-07 17:52:05 -0400
committerTerje Bergstrom <tbergstrom@nvidia.com>2015-10-20 17:03:52 -0400
commit9165427ef7bb0d303a37214a3f4e68efebaf1418 (patch)
treed832767f766749422f0fda7ea6d960c68d6539ee /drivers/gpu/nvgpu/gk20a/gr_gk20a.c
parentfd97ed15d6a5285f59ca37dba8086f7a2780d3af (diff)
gpu: nvgpu: Hard code FE_GO_IDLE_TIMEOUT
Always use the PROD value for FE_GO_IDLE_TIMEOUT. Change-Id: I455c03ae07b35a8999cd0995e458c421a10e7ca2 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/813958
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/gr_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/gr_gk20a.c18
1 files changed, 6 insertions, 12 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
index 8c667ae7..f01b3f37 100644
--- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
@@ -1400,13 +1400,9 @@ static u32 gk20a_init_sw_bundle(struct gk20a *g)
1400 int i; 1400 int i;
1401 unsigned long end_jiffies = jiffies + 1401 unsigned long end_jiffies = jiffies +
1402 msecs_to_jiffies(gk20a_get_gr_idle_timeout(g)); 1402 msecs_to_jiffies(gk20a_get_gr_idle_timeout(g));
1403 u32 fe_go_idle_timeout_save;
1404 1403
1405 /* save and disable fe_go_idle */ 1404 /* disable fe_go_idle */
1406 fe_go_idle_timeout_save =
1407 gk20a_readl(g, gr_fe_go_idle_timeout_r());
1408 gk20a_writel(g, gr_fe_go_idle_timeout_r(), 1405 gk20a_writel(g, gr_fe_go_idle_timeout_r(),
1409 (fe_go_idle_timeout_save & gr_fe_go_idle_timeout_count_f(0)) |
1410 gr_fe_go_idle_timeout_count_disabled_f()); 1406 gr_fe_go_idle_timeout_count_disabled_f());
1411 /* enable pipe mode override */ 1407 /* enable pipe mode override */
1412 gk20a_writel(g, gr_pipe_bundle_config_r(), 1408 gk20a_writel(g, gr_pipe_bundle_config_r(),
@@ -1439,7 +1435,8 @@ static u32 gk20a_init_sw_bundle(struct gk20a *g)
1439 gr_pipe_bundle_config_override_pipe_mode_disabled_f()); 1435 gr_pipe_bundle_config_override_pipe_mode_disabled_f());
1440 1436
1441 /* restore fe_go_idle */ 1437 /* restore fe_go_idle */
1442 gk20a_writel(g, gr_fe_go_idle_timeout_r(), fe_go_idle_timeout_save); 1438 gk20a_writel(g, gr_fe_go_idle_timeout_r(),
1439 gr_fe_go_idle_timeout_count_prod_f());
1443 1440
1444 return err; 1441 return err;
1445} 1442}
@@ -4077,7 +4074,6 @@ static int gk20a_init_gr_setup_hw(struct gk20a *g)
4077 u64 addr; 4074 u64 addr;
4078 unsigned long end_jiffies = jiffies + 4075 unsigned long end_jiffies = jiffies +
4079 msecs_to_jiffies(gk20a_get_gr_idle_timeout(g)); 4076 msecs_to_jiffies(gk20a_get_gr_idle_timeout(g));
4080 u32 fe_go_idle_timeout_save;
4081 u32 last_method_data = 0; 4077 u32 last_method_data = 0;
4082 u32 i, err; 4078 u32 i, err;
4083 4079
@@ -4166,11 +4162,8 @@ static int gk20a_init_gr_setup_hw(struct gk20a *g)
4166 if (err) 4162 if (err)
4167 goto out; 4163 goto out;
4168 4164
4169 /* save and disable fe_go_idle */ 4165 /* disable fe_go_idle */
4170 fe_go_idle_timeout_save =
4171 gk20a_readl(g, gr_fe_go_idle_timeout_r());
4172 gk20a_writel(g, gr_fe_go_idle_timeout_r(), 4166 gk20a_writel(g, gr_fe_go_idle_timeout_r(),
4173 (fe_go_idle_timeout_save & gr_fe_go_idle_timeout_count_f(0)) |
4174 gr_fe_go_idle_timeout_count_disabled_f()); 4167 gr_fe_go_idle_timeout_count_disabled_f());
4175 4168
4176 /* override a few ctx state registers */ 4169 /* override a few ctx state registers */
@@ -4185,7 +4178,8 @@ static int gk20a_init_gr_setup_hw(struct gk20a *g)
4185 4178
4186restore_fe_go_idle: 4179restore_fe_go_idle:
4187 /* restore fe_go_idle */ 4180 /* restore fe_go_idle */
4188 gk20a_writel(g, gr_fe_go_idle_timeout_r(), fe_go_idle_timeout_save); 4181 gk20a_writel(g, gr_fe_go_idle_timeout_r(),
4182 gr_fe_go_idle_timeout_count_prod_f());
4189 4183
4190 if (err || gr_gk20a_wait_idle(g, end_jiffies, GR_IDLE_CHECK_DEFAULT)) 4184 if (err || gr_gk20a_wait_idle(g, end_jiffies, GR_IDLE_CHECK_DEFAULT))
4191 goto out; 4185 goto out;