diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gr_gk20a.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c index d84d4ad5..3115b5c3 100644 --- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c | |||
@@ -345,9 +345,7 @@ static int gr_gk20a_wait_fe_idle(struct gk20a *g, unsigned long end_jiffies, | |||
345 | do { | 345 | do { |
346 | val = gk20a_readl(g, gr_status_r()); | 346 | val = gk20a_readl(g, gr_status_r()); |
347 | 347 | ||
348 | if (!gr_status_fe_method_upper_v(val) && | 348 | if (!gr_status_fe_method_lower_v(val)) { |
349 | !gr_status_fe_method_lower_v(val) && | ||
350 | !gr_status_fe_gi_v(val)) { | ||
351 | gk20a_dbg_fn("done"); | 349 | gk20a_dbg_fn("done"); |
352 | return 0; | 350 | return 0; |
353 | } | 351 | } |
@@ -1407,7 +1405,14 @@ static u32 gk20a_init_sw_bundle(struct gk20a *g) | |||
1407 | int i; | 1405 | int i; |
1408 | unsigned long end_jiffies = jiffies + | 1406 | unsigned long end_jiffies = jiffies + |
1409 | msecs_to_jiffies(gk20a_get_gr_idle_timeout(g)); | 1407 | msecs_to_jiffies(gk20a_get_gr_idle_timeout(g)); |
1408 | u32 fe_go_idle_timeout_save; | ||
1410 | 1409 | ||
1410 | /* save and disable fe_go_idle */ | ||
1411 | fe_go_idle_timeout_save = | ||
1412 | gk20a_readl(g, gr_fe_go_idle_timeout_r()); | ||
1413 | gk20a_writel(g, gr_fe_go_idle_timeout_r(), | ||
1414 | (fe_go_idle_timeout_save & gr_fe_go_idle_timeout_count_f(0)) | | ||
1415 | gr_fe_go_idle_timeout_count_disabled_f()); | ||
1411 | /* enable pipe mode override */ | 1416 | /* enable pipe mode override */ |
1412 | gk20a_writel(g, gr_pipe_bundle_config_r(), | 1417 | gk20a_writel(g, gr_pipe_bundle_config_r(), |
1413 | gr_pipe_bundle_config_override_pipe_mode_enabled_f()); | 1418 | gr_pipe_bundle_config_override_pipe_mode_enabled_f()); |
@@ -1438,6 +1443,9 @@ static u32 gk20a_init_sw_bundle(struct gk20a *g) | |||
1438 | gk20a_writel(g, gr_pipe_bundle_config_r(), | 1443 | gk20a_writel(g, gr_pipe_bundle_config_r(), |
1439 | gr_pipe_bundle_config_override_pipe_mode_disabled_f()); | 1444 | gr_pipe_bundle_config_override_pipe_mode_disabled_f()); |
1440 | 1445 | ||
1446 | /* restore fe_go_idle */ | ||
1447 | gk20a_writel(g, gr_fe_go_idle_timeout_r(), fe_go_idle_timeout_save); | ||
1448 | |||
1441 | return err; | 1449 | return err; |
1442 | } | 1450 | } |
1443 | 1451 | ||