summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gv11b/hal_gv11b.c
diff options
context:
space:
mode:
authorSunny He <suhe@nvidia.com>2017-06-27 18:09:58 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-07-27 19:34:37 -0400
commit3c556c5e9573ffa69bfe64ed1401ed4a9141acb3 (patch)
tree27db3b86e0b4b46f1343ac88f01f164ab3599461 /drivers/gpu/nvgpu/gv11b/hal_gv11b.c
parent2b98e1308d49b9c941d8fa6fc87f67108d6d9370 (diff)
gpu: nvgpu: gv11b: Reorg ce2 HAL initialization
Reorganize HAL initialization to remove inheritance and construct the gpu_ops struct at compile time. This patch only covers the ce2 sub-module of the gpu_ops struct. Perform HAL function assignments in hal_gxxxx.c through the population of a chip-specific copy of gpu_ops. Jira NVGPU-74 Change-Id: Ia2d715a471d7e23420691a461e9442780176ea13 Signed-off-by: Sunny He <suhe@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1509633 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gv11b/hal_gv11b.c')
-rw-r--r--drivers/gpu/nvgpu/gv11b/hal_gv11b.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/gv11b/hal_gv11b.c b/drivers/gpu/nvgpu/gv11b/hal_gv11b.c
index 3ebeb205..e585e9b1 100644
--- a/drivers/gpu/nvgpu/gv11b/hal_gv11b.c
+++ b/drivers/gpu/nvgpu/gv11b/hal_gv11b.c
@@ -34,6 +34,7 @@
34 34
35#include "gp10b/ltc_gp10b.h" 35#include "gp10b/ltc_gp10b.h"
36#include "gp10b/mc_gp10b.h" 36#include "gp10b/mc_gp10b.h"
37#include "gp10b/ce_gp10b.h"
37#include "gp10b/priv_ring_gp10b.h" 38#include "gp10b/priv_ring_gp10b.h"
38#include "gp10b/fifo_gp10b.h" 39#include "gp10b/fifo_gp10b.h"
39 40
@@ -160,6 +161,11 @@ static const struct gpu_ops gv11b_ops = {
160 .sync_debugfs = gp10b_ltc_sync_debugfs, 161 .sync_debugfs = gp10b_ltc_sync_debugfs,
161#endif 162#endif
162 }, 163 },
164 .ce2 = {
165 .isr_stall = gv11b_ce_isr,
166 .isr_nonstall = gp10b_ce_nonstall_isr,
167 .get_num_pce = gv11b_ce_get_num_pce,
168 },
163 .clock_gating = { 169 .clock_gating = {
164 .slcg_bus_load_gating_prod = 170 .slcg_bus_load_gating_prod =
165 gv11b_slcg_bus_load_gating_prod, 171 gv11b_slcg_bus_load_gating_prod,
@@ -340,6 +346,7 @@ int gv11b_init_hal(struct gk20a *g)
340 struct nvgpu_gpu_characteristics *c = &g->gpu_characteristics; 346 struct nvgpu_gpu_characteristics *c = &g->gpu_characteristics;
341 347
342 gops->ltc = gv11b_ops.ltc; 348 gops->ltc = gv11b_ops.ltc;
349 gops->ce2 = gv11b_ops.ce2;
343 gops->clock_gating = gv11b_ops.clock_gating; 350 gops->clock_gating = gv11b_ops.clock_gating;
344 gops->fifo = gv11b_ops.fifo; 351 gops->fifo = gv11b_ops.fifo;
345 gops->mc = gv11b_ops.mc; 352 gops->mc = gv11b_ops.mc;
@@ -364,7 +371,6 @@ int gv11b_init_hal(struct gk20a *g)
364 gv11b_init_gr(g); 371 gv11b_init_gr(g);
365 gv11b_init_fecs_trace_ops(gops); 372 gv11b_init_fecs_trace_ops(gops);
366 gv11b_init_fb(gops); 373 gv11b_init_fb(gops);
367 gv11b_init_ce(gops);
368 gv11b_init_gr_ctx(gops); 374 gv11b_init_gr_ctx(gops);
369 gv11b_init_mm(gops); 375 gv11b_init_mm(gops);
370 gv11b_init_pmu_ops(g); 376 gv11b_init_pmu_ops(g);