summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorseshendra Gadagottu <sgadagottu@nvidia.com>2017-02-06 18:54:37 -0500
committermobile promotions <svcmobile_promotions@nvidia.com>2017-02-07 18:16:59 -0500
commit521253acb761041a5d9ba97a7a789fe02682a03d (patch)
tree133a2072f8b4069cf07324c491713cee8ea38801 /drivers
parent8c3dddd81fb0ab2bd9e8582c0765734432931caf (diff)
gpu: nvgpu: implement chip specific init_elcg_mode
Added function pointer to implement chip specific init_elcg mode and updated this pointer for legacy chips. JIRA GV11B-58 Change-Id: I3fff4f771eaa5dad98a3d8166c9127ecd6b745e4 Signed-off-by: seshendra Gadagottu <sgadagottu@nvidia.com> Reviewed-on: http://git-master/r/1300120 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a.h1
-rw-r--r--drivers/gpu/nvgpu/gk20a/gr_gk20a.c4
-rw-r--r--drivers/gpu/nvgpu/gm20b/gr_gm20b.c1
3 files changed, 5 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h
index 2f6e83a4..19fa4e26 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.h
@@ -337,6 +337,7 @@ struct gpu_ops {
337 struct mem_desc *mem, u64 gpu_va); 337 struct mem_desc *mem, u64 gpu_va);
338 void (*write_pm_ptr)(struct gk20a *g, 338 void (*write_pm_ptr)(struct gk20a *g,
339 struct mem_desc *mem, u64 gpu_va); 339 struct mem_desc *mem, u64 gpu_va);
340 void (*init_elcg_mode)(struct gk20a *g, u32 mode, u32 engine);
340 } gr; 341 } gr;
341 const char *name; 342 const char *name;
342 struct { 343 struct {
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
index 488a6fcb..5802cb68 100644
--- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
@@ -4455,7 +4455,8 @@ void gr_gk20a_init_cg_mode(struct gk20a *g, u32 cgmode, u32 mode_config)
4455 gr_gk20a_init_blcg_mode(g, mode_config, active_engine_id); 4455 gr_gk20a_init_blcg_mode(g, mode_config, active_engine_id);
4456 break; 4456 break;
4457 } else if (cgmode == ELCG_MODE) 4457 } else if (cgmode == ELCG_MODE)
4458 gr_gk20a_init_elcg_mode(g, mode_config, active_engine_id); 4458 g->ops.gr.init_elcg_mode(g, mode_config,
4459 active_engine_id);
4459 else 4460 else
4460 gk20a_err(dev_from_gk20a(g), "invalid cg mode %d %d", cgmode, mode_config); 4461 gk20a_err(dev_from_gk20a(g), "invalid cg mode %d %d", cgmode, mode_config);
4461 } 4462 }
@@ -9316,4 +9317,5 @@ void gk20a_init_gr_ops(struct gpu_ops *gops)
9316 gops->gr.commit_inst = gr_gk20a_commit_inst; 9317 gops->gr.commit_inst = gr_gk20a_commit_inst;
9317 gops->gr.write_zcull_ptr = gr_gk20a_write_zcull_ptr; 9318 gops->gr.write_zcull_ptr = gr_gk20a_write_zcull_ptr;
9318 gops->gr.write_pm_ptr = gr_gk20a_write_pm_ptr; 9319 gops->gr.write_pm_ptr = gr_gk20a_write_pm_ptr;
9320 gops->gr.init_elcg_mode = gr_gk20a_init_elcg_mode;
9319} 9321}
diff --git a/drivers/gpu/nvgpu/gm20b/gr_gm20b.c b/drivers/gpu/nvgpu/gm20b/gr_gm20b.c
index 391fb8a2..0e0d3f62 100644
--- a/drivers/gpu/nvgpu/gm20b/gr_gm20b.c
+++ b/drivers/gpu/nvgpu/gm20b/gr_gm20b.c
@@ -1605,5 +1605,6 @@ void gm20b_init_gr(struct gpu_ops *gops)
1605 gops->gr.commit_inst = gr_gk20a_commit_inst; 1605 gops->gr.commit_inst = gr_gk20a_commit_inst;
1606 gops->gr.write_zcull_ptr = gr_gk20a_write_zcull_ptr; 1606 gops->gr.write_zcull_ptr = gr_gk20a_write_zcull_ptr;
1607 gops->gr.write_pm_ptr = gr_gk20a_write_pm_ptr; 1607 gops->gr.write_pm_ptr = gr_gk20a_write_pm_ptr;
1608 gops->gr.init_elcg_mode = gr_gk20a_init_elcg_mode;
1608 1609
1609} 1610}