diff options
Diffstat (limited to 'drivers/gpu/nvgpu')
-rw-r--r-- | drivers/gpu/nvgpu/gm206/bios_gm206.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/gpu/nvgpu/gm206/bios_gm206.c b/drivers/gpu/nvgpu/gm206/bios_gm206.c index 1f3de0b7..304de68e 100644 --- a/drivers/gpu/nvgpu/gm206/bios_gm206.c +++ b/drivers/gpu/nvgpu/gm206/bios_gm206.c | |||
@@ -704,7 +704,7 @@ static int gm206_bios_devinit(struct gk20a *g) | |||
704 | { | 704 | { |
705 | int retries = PMU_BOOT_TIMEOUT_MAX / PMU_BOOT_TIMEOUT_DEFAULT; | 705 | int retries = PMU_BOOT_TIMEOUT_MAX / PMU_BOOT_TIMEOUT_DEFAULT; |
706 | int err = 0; | 706 | int err = 0; |
707 | int val; | 707 | int devinit_completed; |
708 | 708 | ||
709 | gk20a_dbg_fn(""); | 709 | gk20a_dbg_fn(""); |
710 | g->ops.pmu.reset(g); | 710 | g->ops.pmu.reset(g); |
@@ -752,10 +752,12 @@ static int gm206_bios_devinit(struct gk20a *g) | |||
752 | 752 | ||
753 | retries = PMU_BOOT_TIMEOUT_MAX / PMU_BOOT_TIMEOUT_DEFAULT; | 753 | retries = PMU_BOOT_TIMEOUT_MAX / PMU_BOOT_TIMEOUT_DEFAULT; |
754 | do { | 754 | do { |
755 | val = top_scratch1_devinit_completed_v( | 755 | devinit_completed = pwr_falcon_cpuctl_halt_intr_v( |
756 | gk20a_readl(g, pwr_falcon_cpuctl_r())) && | ||
757 | top_scratch1_devinit_completed_v( | ||
756 | gk20a_readl(g, top_scratch1_r())); | 758 | gk20a_readl(g, top_scratch1_r())); |
757 | udelay(PMU_BOOT_TIMEOUT_DEFAULT); | 759 | udelay(PMU_BOOT_TIMEOUT_DEFAULT); |
758 | } while (!val && retries--); | 760 | } while (!devinit_completed && retries--); |
759 | 761 | ||
760 | gk20a_writel(g, pwr_falcon_irqsclr_r(), | 762 | gk20a_writel(g, pwr_falcon_irqsclr_r(), |
761 | pwr_falcon_irqstat_halt_true_f()); | 763 | pwr_falcon_irqstat_halt_true_f()); |