diff options
author | Lakshmanan M <lm@nvidia.com> | 2016-06-02 00:04:46 -0400 |
---|---|---|
committer | Terje Bergstrom <tbergstrom@nvidia.com> | 2016-06-07 15:31:34 -0400 |
commit | 6299b00beb9dabdd53c211b02658d022827b3232 (patch) | |
tree | 941d8dd8aae8f7f8c73329e182984c36a5a9bf88 /drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c | |
parent | 3d7263d3cafdcfc57a6d6b9f829562845d116294 (diff) |
gpu: nvgpu: Add multiple engine and runlist support
This CL covers the following modification,
1) Added multiple engine_info support
2) Added multiple runlist_info support
3) Initial changes for ASYNC CE support
4) Added ASYNC CE interrupt handling support
for gm206 GPU family
5) Added generic mechanism to identify the
CE engine pri_base address for gm206
(CE0, CE1 and CE2)
6) Removed hard coded engine_id logic and
made generic way
7) Code cleanup for readability
JIRA DNVGPU-26
Change-Id: I2c3846c40bcc8d10c2dfb225caa4105fc9123b65
Signed-off-by: Lakshmanan M <lm@nvidia.com>
Reviewed-on: http://git-master/r/1155963
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c b/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c index 6b9238e9..5e57502e 100644 --- a/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c | |||
@@ -1102,11 +1102,10 @@ static int dbg_set_powergate(struct dbg_session_gk20a *dbg_s, | |||
1102 | false); | 1102 | false); |
1103 | g->ops.clock_gating.slcg_ltc_load_gating_prod(g, | 1103 | g->ops.clock_gating.slcg_ltc_load_gating_prod(g, |
1104 | false); | 1104 | false); |
1105 | gr_gk20a_init_blcg_mode(g, BLCG_RUN, ENGINE_GR_GK20A); | ||
1106 | 1105 | ||
1106 | gr_gk20a_init_cg_mode(g, BLCG_MODE, BLCG_RUN); | ||
1107 | g->elcg_enabled = false; | 1107 | g->elcg_enabled = false; |
1108 | gr_gk20a_init_elcg_mode(g, ELCG_RUN, ENGINE_GR_GK20A); | 1108 | gr_gk20a_init_cg_mode(g, ELCG_MODE, ELCG_RUN); |
1109 | gr_gk20a_init_elcg_mode(g, ELCG_RUN, ENGINE_CE2_GK20A); | ||
1110 | 1109 | ||
1111 | } | 1110 | } |
1112 | 1111 | ||
@@ -1126,9 +1125,8 @@ static int dbg_set_powergate(struct dbg_session_gk20a *dbg_s, | |||
1126 | --g->dbg_powergating_disabled_refcount == 0) { | 1125 | --g->dbg_powergating_disabled_refcount == 0) { |
1127 | 1126 | ||
1128 | g->elcg_enabled = true; | 1127 | g->elcg_enabled = true; |
1129 | gr_gk20a_init_elcg_mode(g, ELCG_AUTO, ENGINE_CE2_GK20A); | 1128 | gr_gk20a_init_cg_mode(g, ELCG_MODE, ELCG_AUTO); |
1130 | gr_gk20a_init_elcg_mode(g, ELCG_AUTO, ENGINE_GR_GK20A); | 1129 | gr_gk20a_init_cg_mode(g, BLCG_MODE, BLCG_AUTO); |
1131 | gr_gk20a_init_blcg_mode(g, BLCG_AUTO, ENGINE_GR_GK20A); | ||
1132 | 1130 | ||
1133 | g->ops.clock_gating.slcg_ltc_load_gating_prod(g, | 1131 | g->ops.clock_gating.slcg_ltc_load_gating_prod(g, |
1134 | g->slcg_enabled); | 1132 | g->slcg_enabled); |