diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gp106')
-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) |