diff options
author | Konsta Holtta <kholtta@nvidia.com> | 2016-06-16 04:55:03 -0400 |
---|---|---|
committer | Deepak Nibade <dnibade@nvidia.com> | 2016-12-27 04:56:17 -0500 |
commit | dfc2f7e5df52410c2b7c744419f0b94496827bd9 (patch) | |
tree | 8ec97d5e6373a43335ee5b98c66f4e006ad742eb | |
parent | 14e0681fe5bb39b1773c06c51bc56101a9a1ca40 (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>
-rw-r--r-- | drivers/gpu/nvgpu/gp106/acr_gp106.c | 23 |
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) | |||
91 | int gp106_alloc_blob_space(struct gk20a *g, | 91 | int 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 | |||
116 | free_sgt: | ||
117 | gk20a_free_sgtable(&mem->sgt); | ||
118 | return err; | ||
119 | } | 100 | } |
120 | 101 | ||
121 | void gp106_init_secure_pmu(struct gpu_ops *gops) | 102 | void gp106_init_secure_pmu(struct gpu_ops *gops) |