diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gp106/sec2_gp106.c')
-rw-r--r-- | drivers/gpu/nvgpu/gp106/sec2_gp106.c | 15 |
1 files changed, 2 insertions, 13 deletions
diff --git a/drivers/gpu/nvgpu/gp106/sec2_gp106.c b/drivers/gpu/nvgpu/gp106/sec2_gp106.c index 06f62a99..20171309 100644 --- a/drivers/gpu/nvgpu/gp106/sec2_gp106.c +++ b/drivers/gpu/nvgpu/gp106/sec2_gp106.c | |||
@@ -57,20 +57,9 @@ int sec2_clear_halt_interrupt_status(struct gk20a *g, unsigned int timeout) | |||
57 | int sec2_wait_for_halt(struct gk20a *g, unsigned int timeout) | 57 | int sec2_wait_for_halt(struct gk20a *g, unsigned int timeout) |
58 | { | 58 | { |
59 | u32 data = 0; | 59 | u32 data = 0; |
60 | int completion = -EBUSY; | 60 | int completion = 0; |
61 | struct nvgpu_timeout to; | ||
62 | |||
63 | nvgpu_timeout_init(g, &to, timeout, NVGPU_TIMER_CPU_TIMER); | ||
64 | do { | ||
65 | data = gk20a_readl(g, psec_falcon_cpuctl_r()); | ||
66 | if (data & psec_falcon_cpuctl_halt_intr_m()) { | ||
67 | /*CPU is halted break*/ | ||
68 | completion = 0; | ||
69 | break; | ||
70 | } | ||
71 | nvgpu_udelay(1); | ||
72 | } while (!nvgpu_timeout_expired(&to)); | ||
73 | 61 | ||
62 | completion = nvgpu_flcn_wait_for_halt(&g->sec2_flcn, timeout); | ||
74 | if (completion) { | 63 | if (completion) { |
75 | nvgpu_err(g, "ACR boot timed out"); | 64 | nvgpu_err(g, "ACR boot timed out"); |
76 | return completion; | 65 | return completion; |