diff options
author | seshendra Gadagottu <sgadagottu@nvidia.com> | 2017-02-06 18:54:37 -0500 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-02-07 18:16:59 -0500 |
commit | 521253acb761041a5d9ba97a7a789fe02682a03d (patch) | |
tree | 133a2072f8b4069cf07324c491713cee8ea38801 /drivers/gpu | |
parent | 8c3dddd81fb0ab2bd9e8582c0765734432931caf (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/gpu')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a.h | 1 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gr_gk20a.c | 4 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gm20b/gr_gm20b.c | 1 |
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 | } |