diff options
-rw-r--r-- | drivers/gpu/nvgpu/Makefile | 4 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gp106/hal_gp106.c | 18 |
2 files changed, 18 insertions, 4 deletions
diff --git a/drivers/gpu/nvgpu/Makefile b/drivers/gpu/nvgpu/Makefile index 7e4c259b..1579e6eb 100644 --- a/drivers/gpu/nvgpu/Makefile +++ b/drivers/gpu/nvgpu/Makefile | |||
@@ -23,7 +23,9 @@ nvgpu-y += \ | |||
23 | $(nvgpu-t18x)/gp106/mm_gp106.o \ | 23 | $(nvgpu-t18x)/gp106/mm_gp106.o \ |
24 | $(nvgpu-t18x)/gp106/pmu_gp106.o \ | 24 | $(nvgpu-t18x)/gp106/pmu_gp106.o \ |
25 | $(nvgpu-t18x)/gp106/gr_gp106.o \ | 25 | $(nvgpu-t18x)/gp106/gr_gp106.o \ |
26 | $(nvgpu-t18x)/gp106/gr_ctx_gp106.o | 26 | $(nvgpu-t18x)/gp106/gr_ctx_gp106.o \ |
27 | $(nvgpu-t18x)/gp106/acr_gp106.o \ | ||
28 | $(nvgpu-t18x)/gp106/sec2_gp106.o | ||
27 | 29 | ||
28 | nvgpu-$(CONFIG_TEGRA_GK20A) += $(nvgpu-t18x)/gp10b/platform_gp10b_tegra.o | 30 | nvgpu-$(CONFIG_TEGRA_GK20A) += $(nvgpu-t18x)/gp10b/platform_gp10b_tegra.o |
29 | 31 | ||
diff --git a/drivers/gpu/nvgpu/gp106/hal_gp106.c b/drivers/gpu/nvgpu/gp106/hal_gp106.c index 7ef72d72..1b22547d 100644 --- a/drivers/gpu/nvgpu/gp106/hal_gp106.c +++ b/drivers/gpu/nvgpu/gp106/hal_gp106.c | |||
@@ -180,13 +180,14 @@ int gp106_init_hal(struct gk20a *g) | |||
180 | { | 180 | { |
181 | struct gpu_ops *gops = &g->ops; | 181 | struct gpu_ops *gops = &g->ops; |
182 | struct nvgpu_gpu_characteristics *c = &g->gpu_characteristics; | 182 | struct nvgpu_gpu_characteristics *c = &g->gpu_characteristics; |
183 | u32 ver = g->gpu_characteristics.arch + g->gpu_characteristics.impl; | ||
183 | 184 | ||
184 | gk20a_dbg_fn(""); | 185 | gk20a_dbg_fn(""); |
185 | 186 | ||
186 | *gops = gp106_ops; | 187 | *gops = gp106_ops; |
187 | 188 | ||
188 | gops->privsecurity = 0; | 189 | gops->privsecurity = 1; |
189 | gops->securegpccs = 0; | 190 | gops->securegpccs = 1; |
190 | 191 | ||
191 | gp10b_init_mc(gops); | 192 | gp10b_init_mc(gops); |
192 | gp106_init_gr(gops); | 193 | gp106_init_gr(gops); |
@@ -202,9 +203,20 @@ int gp106_init_hal(struct gk20a *g) | |||
202 | gp10b_init_cde_ops(gops); | 203 | gp10b_init_cde_ops(gops); |
203 | gp10b_init_therm_ops(gops); | 204 | gp10b_init_therm_ops(gops); |
204 | gm206_init_bios(gops); | 205 | gm206_init_bios(gops); |
205 | gops->name = "gp106"; | 206 | switch(ver){ |
207 | case NVGPU_GPUID_GP106: | ||
208 | gops->name = "gp106"; | ||
209 | break; | ||
210 | case NVGPU_GPUID_GP104: | ||
211 | gops->name = "gp104"; | ||
212 | break; | ||
213 | default: | ||
214 | gk20a_err(g->dev, "no support for %x", ver); | ||
215 | BUG(); | ||
216 | } | ||
206 | gops->get_litter_value = gp106_get_litter_value; | 217 | gops->get_litter_value = gp106_get_litter_value; |
207 | gops->chip_init_gpu_characteristics = gk20a_init_gpu_characteristics; | 218 | gops->chip_init_gpu_characteristics = gk20a_init_gpu_characteristics; |
219 | gops->gr_ctx.use_dma_for_fw_bootstrap = true; | ||
208 | 220 | ||
209 | c->twod_class = FERMI_TWOD_A; | 221 | c->twod_class = FERMI_TWOD_A; |
210 | c->threed_class = PASCAL_B; | 222 | c->threed_class = PASCAL_B; |