diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gpu/nvgpu/gp10b/gp10b_gating_reglist.c | 20 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gp10b/gp10b_gating_reglist.h | 8 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gp10b/hal_gp10b.c | 6 |
3 files changed, 32 insertions, 2 deletions
diff --git a/drivers/gpu/nvgpu/gp10b/gp10b_gating_reglist.c b/drivers/gpu/nvgpu/gp10b/gp10b_gating_reglist.c index 6bcd9f35..4719b13e 100644 --- a/drivers/gpu/nvgpu/gp10b/gp10b_gating_reglist.c +++ b/drivers/gpu/nvgpu/gp10b/gp10b_gating_reglist.c | |||
@@ -163,6 +163,11 @@ static const struct gating_desc gp10b_blcg_bus[] = { | |||
163 | {.addr = 0x00001c00, .prod = 0x00000042, .disable = 0x00000000}, | 163 | {.addr = 0x00001c00, .prod = 0x00000042, .disable = 0x00000000}, |
164 | }; | 164 | }; |
165 | 165 | ||
166 | /* blcg ce */ | ||
167 | static const struct gating_desc gp10b_blcg_ce[] = { | ||
168 | {.addr = 0x00104200, .prod = 0x00008242, .disable = 0x00000000}, | ||
169 | }; | ||
170 | |||
166 | /* blcg ctxsw prog */ | 171 | /* blcg ctxsw prog */ |
167 | static const struct gating_desc gp10b_blcg_ctxsw_prog[] = { | 172 | static const struct gating_desc gp10b_blcg_ctxsw_prog[] = { |
168 | }; | 173 | }; |
@@ -483,6 +488,21 @@ void gp10b_blcg_bus_load_gating_prod(struct gk20a *g, | |||
483 | } | 488 | } |
484 | } | 489 | } |
485 | 490 | ||
491 | void gp10b_blcg_ce_load_gating_prod(struct gk20a *g, | ||
492 | bool prod) | ||
493 | { | ||
494 | u32 i; | ||
495 | u32 size = sizeof(gp10b_blcg_ce) / sizeof(struct gating_desc); | ||
496 | for (i = 0; i < size; i++) { | ||
497 | if (prod) | ||
498 | gk20a_writel(g, gp10b_blcg_ce[i].addr, | ||
499 | gp10b_blcg_ce[i].prod); | ||
500 | else | ||
501 | gk20a_writel(g, gp10b_blcg_ce[i].addr, | ||
502 | gp10b_blcg_ce[i].disable); | ||
503 | } | ||
504 | } | ||
505 | |||
486 | void gp10b_blcg_ctxsw_firmware_load_gating_prod(struct gk20a *g, | 506 | void gp10b_blcg_ctxsw_firmware_load_gating_prod(struct gk20a *g, |
487 | bool prod) | 507 | bool prod) |
488 | { | 508 | { |
diff --git a/drivers/gpu/nvgpu/gp10b/gp10b_gating_reglist.h b/drivers/gpu/nvgpu/gp10b/gp10b_gating_reglist.h index 465a0b4d..e4080def 100644 --- a/drivers/gpu/nvgpu/gp10b/gp10b_gating_reglist.h +++ b/drivers/gpu/nvgpu/gp10b/gp10b_gating_reglist.h | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) 2015, NVIDIA Corporation. All rights reserved. | 2 | * Copyright (c) 2015-2016, NVIDIA Corporation. All rights reserved. |
3 | * | 3 | * |
4 | * This program is free software; you can redistribute it and/or modify it | 4 | * This program is free software; you can redistribute it and/or modify it |
5 | * under the terms and conditions of the GNU General Public License, | 5 | * under the terms and conditions of the GNU General Public License, |
@@ -19,6 +19,9 @@ | |||
19 | void gp10b_slcg_bus_load_gating_prod(struct gk20a *g, | 19 | void gp10b_slcg_bus_load_gating_prod(struct gk20a *g, |
20 | bool prod); | 20 | bool prod); |
21 | 21 | ||
22 | void gp10b_slcg_ce2_load_gating_prod(struct gk20a *g, | ||
23 | bool prod); | ||
24 | |||
22 | void gp10b_slcg_chiplet_load_gating_prod(struct gk20a *g, | 25 | void gp10b_slcg_chiplet_load_gating_prod(struct gk20a *g, |
23 | bool prod); | 26 | bool prod); |
24 | 27 | ||
@@ -58,6 +61,9 @@ void gp10b_slcg_xbar_load_gating_prod(struct gk20a *g, | |||
58 | void gp10b_blcg_bus_load_gating_prod(struct gk20a *g, | 61 | void gp10b_blcg_bus_load_gating_prod(struct gk20a *g, |
59 | bool prod); | 62 | bool prod); |
60 | 63 | ||
64 | void gp10b_blcg_ce_load_gating_prod(struct gk20a *g, | ||
65 | bool prod); | ||
66 | |||
61 | void gp10b_blcg_ctxsw_firmware_load_gating_prod(struct gk20a *g, | 67 | void gp10b_blcg_ctxsw_firmware_load_gating_prod(struct gk20a *g, |
62 | bool prod); | 68 | bool prod); |
63 | 69 | ||
diff --git a/drivers/gpu/nvgpu/gp10b/hal_gp10b.c b/drivers/gpu/nvgpu/gp10b/hal_gp10b.c index 544be96b..37fad41a 100644 --- a/drivers/gpu/nvgpu/gp10b/hal_gp10b.c +++ b/drivers/gpu/nvgpu/gp10b/hal_gp10b.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * GP10B Tegra HAL interface | 2 | * GP10B Tegra HAL interface |
3 | * | 3 | * |
4 | * Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved. | 4 | * Copyright (c) 2014-2016, NVIDIA CORPORATION. All rights reserved. |
5 | * | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify it | 6 | * This program is free software; you can redistribute it and/or modify it |
7 | * under the terms and conditions of the GNU General Public License, | 7 | * under the terms and conditions of the GNU General Public License, |
@@ -47,6 +47,8 @@ static struct gpu_ops gp10b_ops = { | |||
47 | .clock_gating = { | 47 | .clock_gating = { |
48 | .slcg_bus_load_gating_prod = | 48 | .slcg_bus_load_gating_prod = |
49 | gp10b_slcg_bus_load_gating_prod, | 49 | gp10b_slcg_bus_load_gating_prod, |
50 | .slcg_ce2_load_gating_prod = | ||
51 | gp10b_slcg_ce2_load_gating_prod, | ||
50 | .slcg_chiplet_load_gating_prod = | 52 | .slcg_chiplet_load_gating_prod = |
51 | gp10b_slcg_chiplet_load_gating_prod, | 53 | gp10b_slcg_chiplet_load_gating_prod, |
52 | .slcg_ctxsw_firmware_load_gating_prod = | 54 | .slcg_ctxsw_firmware_load_gating_prod = |
@@ -71,6 +73,8 @@ static struct gpu_ops gp10b_ops = { | |||
71 | gp10b_slcg_xbar_load_gating_prod, | 73 | gp10b_slcg_xbar_load_gating_prod, |
72 | .blcg_bus_load_gating_prod = | 74 | .blcg_bus_load_gating_prod = |
73 | gp10b_blcg_bus_load_gating_prod, | 75 | gp10b_blcg_bus_load_gating_prod, |
76 | .blcg_ce_load_gating_prod = | ||
77 | gp10b_blcg_ce_load_gating_prod, | ||
74 | .blcg_ctxsw_firmware_load_gating_prod = | 78 | .blcg_ctxsw_firmware_load_gating_prod = |
75 | gp10b_blcg_ctxsw_firmware_load_gating_prod, | 79 | gp10b_blcg_ctxsw_firmware_load_gating_prod, |
76 | .blcg_fb_load_gating_prod = | 80 | .blcg_fb_load_gating_prod = |