summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gp106/acr_gp106.c
diff options
context:
space:
mode:
authorKonsta Holtta <kholtta@nvidia.com>2016-06-16 04:55:03 -0400
committerDeepak Nibade <dnibade@nvidia.com>2016-12-27 04:56:17 -0500
commitdfc2f7e5df52410c2b7c744419f0b94496827bd9 (patch)
tree8ec97d5e6373a43335ee5b98c66f4e006ad742eb /drivers/gpu/nvgpu/gp106/acr_gp106.c
parent14e0681fe5bb39b1773c06c51bc56101a9a1ca40 (diff)
gpu: ngpu: gp106: use vidmem allocator for ucode blob
Use the general video memory allocator for reserving wpr space for acr ucode blob instead of crafting a mem_desc manually. Jira DNVGPU-16 Change-Id: I9d34b3b964eb9ab781fcebecd15ba81643c5452d Signed-off-by: Konsta Holtta <kholtta@nvidia.com> Reviewed-on: http://git-master/r/1165642 GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gp106/acr_gp106.c')
-rw-r--r--drivers/gpu/nvgpu/gp106/acr_gp106.c23
1 files changed, 2 insertions, 21 deletions
diff --git a/drivers/gpu/nvgpu/gp106/acr_gp106.c b/drivers/gpu/nvgpu/gp106/acr_gp106.c
index 0b4b86f4..0e49214e 100644
--- a/drivers/gpu/nvgpu/gp106/acr_gp106.c
+++ b/drivers/gpu/nvgpu/gp106/acr_gp106.c
@@ -91,31 +91,12 @@ static void flcn64_set_dma(struct falc_u64 *dma_addr, u64 value)
91int gp106_alloc_blob_space(struct gk20a *g, 91int gp106_alloc_blob_space(struct gk20a *g,
92 size_t size, struct mem_desc *mem) 92 size_t size, struct mem_desc *mem)
93{ 93{
94 int err = 0;
95 struct wpr_carveout_info wpr_inf; 94 struct wpr_carveout_info wpr_inf;
96 95
97 g->ops.pmu.get_wpr(g, &wpr_inf); 96 g->ops.pmu.get_wpr(g, &wpr_inf);
98 97
99 mem->aperture = APERTURE_VIDMEM; 98 return gk20a_gmmu_alloc_attr_vid_at(g, 0, wpr_inf.size, mem,
100 mem->sgt = kzalloc(sizeof(*mem->sgt), GFP_KERNEL); 99 wpr_inf.nonwpr_base);
101 if (!mem->sgt) {
102 gk20a_err(dev_from_gk20a(g), "failed to allocate memory\n");
103 return -ENOMEM;
104 }
105
106 err = sg_alloc_table(mem->sgt, 1, GFP_KERNEL);
107 if (err) {
108 gk20a_err(dev_from_gk20a(g), "failed to allocate sg_table\n");
109 goto free_sgt;
110 }
111
112 sg_dma_address(mem->sgt->sgl) = wpr_inf.nonwpr_base;
113
114 return err;
115
116free_sgt:
117 gk20a_free_sgtable(&mem->sgt);
118 return err;
119} 100}
120 101
121void gp106_init_secure_pmu(struct gpu_ops *gops) 102void gp106_init_secure_pmu(struct gpu_ops *gops)