diff --git a/drivers/gpu/nvgpu/gk20a/platform_gk20a.h b/drivers/gpu/nvgpu/gk20a/platform_gk20a.h index de7bbd06e..c0b847e5e 100644 --- a/drivers/gpu/nvgpu/gk20a/platform_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/platform_gk20a.h @@ -227,6 +227,9 @@ struct gk20a_platform { /* minimum supported VBIOS version */ u32 vbios_min_version; + + /* true if we run preos microcode on this board */ + bool run_preos; }; static inline struct gk20a_platform *gk20a_get_platform( diff --git a/drivers/gpu/nvgpu/gm206/bios_gm206.c b/drivers/gpu/nvgpu/gm206/bios_gm206.c index aa40f410b..2f1a32d3c 100644 --- a/drivers/gpu/nvgpu/gm206/bios_gm206.c +++ b/drivers/gpu/nvgpu/gm206/bios_gm206.c @@ -918,10 +918,12 @@ static int gm206_bios_init(struct gk20a *g) return err; } - err = gm206_bios_preos(g); - if (err) { - gk20a_err(g->dev, "pre-os failed"); - return err; + if (platform->run_preos) { + err = gm206_bios_preos(g); + if (err) { + gk20a_err(g->dev, "pre-os failed"); + return err; + } } return 0;