diff options
author | Terje Bergstrom <tbergstrom@nvidia.com> | 2014-08-18 05:52:20 -0400 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2015-03-18 15:11:09 -0400 |
commit | 8be2f2bf4c46709f2a900b5ae5d8a61d2548ae3f (patch) | |
tree | 36363f4c66bdf10a9f0915e47e01580022684728 /drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c | |
parent | 8374a3b27d85a8e3c508b2b90dc0aa34311dc95a (diff) |
gpu: nvgpu: gm20b: Regenerate clock gating lists
Regenerate clock gating lists. Add new blocks, and takes them into
use. Also moves some clock gating settings to be applied at the
earliest possible moment right after reset.
Change-Id: I21888186c200f7a477c63bd3332e8ed578f63741
Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-on: http://git-master/r/457698
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c b/drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c index fceed5e9..687147ed 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c +++ b/drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c | |||
@@ -94,7 +94,19 @@ static ssize_t blcg_enable_store(struct device *device, | |||
94 | g->blcg_enabled = false; | 94 | g->blcg_enabled = false; |
95 | 95 | ||
96 | gk20a_busy(g->dev); | 96 | gk20a_busy(g->dev); |
97 | if (g->ops.clock_gating.blcg_bus_load_gating_prod) | ||
98 | g->ops.clock_gating.blcg_bus_load_gating_prod(g, g->blcg_enabled); | ||
99 | if (g->ops.clock_gating.blcg_ctxsw_firmware_load_gating_prod) | ||
100 | g->ops.clock_gating.blcg_ctxsw_firmware_load_gating_prod(g, g->blcg_enabled); | ||
101 | if (g->ops.clock_gating.blcg_fb_load_gating_prod) | ||
102 | g->ops.clock_gating.blcg_fb_load_gating_prod(g, g->blcg_enabled); | ||
103 | if (g->ops.clock_gating.blcg_fifo_load_gating_prod) | ||
104 | g->ops.clock_gating.blcg_fifo_load_gating_prod(g, g->blcg_enabled); | ||
97 | g->ops.clock_gating.blcg_gr_load_gating_prod(g, g->blcg_enabled); | 105 | g->ops.clock_gating.blcg_gr_load_gating_prod(g, g->blcg_enabled); |
106 | if (g->ops.clock_gating.blcg_ltc_load_gating_prod) | ||
107 | g->ops.clock_gating.blcg_ltc_load_gating_prod(g, g->blcg_enabled); | ||
108 | if (g->ops.clock_gating.blcg_pmu_load_gating_prod) | ||
109 | g->ops.clock_gating.blcg_pmu_load_gating_prod(g, g->blcg_enabled); | ||
98 | gk20a_idle(g->dev); | 110 | gk20a_idle(g->dev); |
99 | 111 | ||
100 | dev_info(device, "BLCG is %s.\n", g->blcg_enabled ? "enabled" : | 112 | dev_info(device, "BLCG is %s.\n", g->blcg_enabled ? "enabled" : |
@@ -136,8 +148,28 @@ static ssize_t slcg_enable_store(struct device *device, | |||
136 | * it is added to init, we should add it here too. | 148 | * it is added to init, we should add it here too. |
137 | */ | 149 | */ |
138 | gk20a_busy(g->dev); | 150 | gk20a_busy(g->dev); |
151 | if (g->ops.clock_gating.slcg_bus_load_gating_prod) | ||
152 | g->ops.clock_gating.slcg_bus_load_gating_prod(g, g->slcg_enabled); | ||
153 | if (g->ops.clock_gating.slcg_ce2_load_gating_prod) | ||
154 | g->ops.clock_gating.slcg_ce2_load_gating_prod(g, g->slcg_enabled); | ||
155 | if (g->ops.clock_gating.slcg_chiplet_load_gating_prod) | ||
156 | g->ops.clock_gating.slcg_chiplet_load_gating_prod(g, g->slcg_enabled); | ||
157 | if (g->ops.clock_gating.slcg_ctxsw_firmware_load_gating_prod) | ||
158 | g->ops.clock_gating.slcg_ctxsw_firmware_load_gating_prod(g, g->slcg_enabled); | ||
159 | if (g->ops.clock_gating.slcg_fb_load_gating_prod) | ||
160 | g->ops.clock_gating.slcg_fb_load_gating_prod(g, g->slcg_enabled); | ||
161 | if (g->ops.clock_gating.slcg_fifo_load_gating_prod) | ||
162 | g->ops.clock_gating.slcg_fifo_load_gating_prod(g, g->slcg_enabled); | ||
139 | g->ops.clock_gating.slcg_gr_load_gating_prod(g, g->slcg_enabled); | 163 | g->ops.clock_gating.slcg_gr_load_gating_prod(g, g->slcg_enabled); |
164 | if (g->ops.clock_gating.slcg_ltc_load_gating_prod) | ||
165 | g->ops.clock_gating.slcg_ltc_load_gating_prod(g, g->slcg_enabled); | ||
140 | g->ops.clock_gating.slcg_perf_load_gating_prod(g, g->slcg_enabled); | 166 | g->ops.clock_gating.slcg_perf_load_gating_prod(g, g->slcg_enabled); |
167 | if (g->ops.clock_gating.slcg_priring_load_gating_prod) | ||
168 | g->ops.clock_gating.slcg_priring_load_gating_prod(g, g->slcg_enabled); | ||
169 | if (g->ops.clock_gating.slcg_pmu_load_gating_prod) | ||
170 | g->ops.clock_gating.slcg_pmu_load_gating_prod(g, g->slcg_enabled); | ||
171 | if (g->ops.clock_gating.slcg_xbar_load_gating_prod) | ||
172 | g->ops.clock_gating.slcg_xbar_load_gating_prod(g, g->slcg_enabled); | ||
141 | gk20a_idle(g->dev); | 173 | gk20a_idle(g->dev); |
142 | 174 | ||
143 | dev_info(device, "SLCG is %s.\n", g->slcg_enabled ? "enabled" : | 175 | dev_info(device, "SLCG is %s.\n", g->slcg_enabled ? "enabled" : |