summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/nvgpu/gm206/bios_gm206.c8
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());