summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/nvgpu/gk20a/mm_gk20a.c10
-rw-r--r--drivers/gpu/nvgpu/gm206/acr_gm206.c3
2 files changed, 13 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
index 4872bb95..bcde1746 100644
--- a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
@@ -940,6 +940,16 @@ int gk20a_init_mm_setup_sw(struct gk20a *g)
940 if (err) 940 if (err)
941 return err; 941 return err;
942 942
943 /*
944 * this requires fixed allocations in vidmem which must be
945 * allocated before all other buffers
946 */
947 if (g->ops.pmu.alloc_blob_space && g->mm.vidmem_is_vidmem) {
948 err = g->ops.pmu.alloc_blob_space(g, 0, &g->acr.ucode_blob);
949 if (err)
950 return err;
951 }
952
943 err = gk20a_alloc_sysmem_flush(g); 953 err = gk20a_alloc_sysmem_flush(g);
944 if (err) 954 if (err)
945 return err; 955 return err;
diff --git a/drivers/gpu/nvgpu/gm206/acr_gm206.c b/drivers/gpu/nvgpu/gm206/acr_gm206.c
index 988761f0..39b30ea6 100644
--- a/drivers/gpu/nvgpu/gm206/acr_gm206.c
+++ b/drivers/gpu/nvgpu/gm206/acr_gm206.c
@@ -58,6 +58,9 @@ int gm206_alloc_blob_space(struct gk20a *g,
58{ 58{
59 struct wpr_carveout_info wpr_inf; 59 struct wpr_carveout_info wpr_inf;
60 60
61 if (mem->size)
62 return 0;
63
61 g->ops.pmu.get_wpr(g, &wpr_inf); 64 g->ops.pmu.get_wpr(g, &wpr_inf);
62 65
63 return gk20a_gmmu_alloc_attr_vid_at(g, 0, wpr_inf.size, mem, 66 return gk20a_gmmu_alloc_attr_vid_at(g, 0, wpr_inf.size, mem,