diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a.h | 1 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c | 5 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gr_gk20a.c | 16 |
3 files changed, 20 insertions, 2 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h index 340f358a..afdbeef7 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/gk20a.h | |||
@@ -236,6 +236,7 @@ struct gpu_ops { | |||
236 | void (*slcg_therm_load_gating_prod)(struct gk20a *g, bool prod); | 236 | void (*slcg_therm_load_gating_prod)(struct gk20a *g, bool prod); |
237 | void (*slcg_xbar_load_gating_prod)(struct gk20a *g, bool prod); | 237 | void (*slcg_xbar_load_gating_prod)(struct gk20a *g, bool prod); |
238 | void (*blcg_bus_load_gating_prod)(struct gk20a *g, bool prod); | 238 | void (*blcg_bus_load_gating_prod)(struct gk20a *g, bool prod); |
239 | void (*blcg_ce_load_gating_prod)(struct gk20a *g, bool prod); | ||
239 | void (*blcg_ctxsw_firmware_load_gating_prod)(struct gk20a *g, bool prod); | 240 | void (*blcg_ctxsw_firmware_load_gating_prod)(struct gk20a *g, bool prod); |
240 | void (*blcg_fb_load_gating_prod)(struct gk20a *g, bool prod); | 241 | void (*blcg_fb_load_gating_prod)(struct gk20a *g, bool prod); |
241 | void (*blcg_fifo_load_gating_prod)(struct gk20a *g, bool prod); | 242 | void (*blcg_fifo_load_gating_prod)(struct gk20a *g, bool prod); |
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c b/drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c index 2d803d0e..aabe572b 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c +++ b/drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c | |||
@@ -3,7 +3,7 @@ | |||
3 | * | 3 | * |
4 | * GK20A Graphics | 4 | * GK20A Graphics |
5 | * | 5 | * |
6 | * Copyright (c) 2011-2015, NVIDIA CORPORATION. All rights reserved. | 6 | * Copyright (c) 2011-2016, NVIDIA CORPORATION. All rights reserved. |
7 | * | 7 | * |
8 | * This program is free software; you can redistribute it and/or modify it | 8 | * This program is free software; you can redistribute it and/or modify it |
9 | * under the terms and conditions of the GNU General Public License, | 9 | * under the terms and conditions of the GNU General Public License, |
@@ -100,6 +100,9 @@ static ssize_t blcg_enable_store(struct device *device, | |||
100 | 100 | ||
101 | if (g->ops.clock_gating.blcg_bus_load_gating_prod) | 101 | if (g->ops.clock_gating.blcg_bus_load_gating_prod) |
102 | g->ops.clock_gating.blcg_bus_load_gating_prod(g, g->blcg_enabled); | 102 | g->ops.clock_gating.blcg_bus_load_gating_prod(g, g->blcg_enabled); |
103 | if (g->ops.clock_gating.blcg_ce_load_gating_prod) | ||
104 | g->ops.clock_gating.blcg_ce_load_gating_prod(g, | ||
105 | g->blcg_enabled); | ||
103 | if (g->ops.clock_gating.blcg_ctxsw_firmware_load_gating_prod) | 106 | if (g->ops.clock_gating.blcg_ctxsw_firmware_load_gating_prod) |
104 | g->ops.clock_gating.blcg_ctxsw_firmware_load_gating_prod(g, g->blcg_enabled); | 107 | g->ops.clock_gating.blcg_ctxsw_firmware_load_gating_prod(g, g->blcg_enabled); |
105 | if (g->ops.clock_gating.blcg_fb_load_gating_prod) | 108 | if (g->ops.clock_gating.blcg_fb_load_gating_prod) |
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c index 7e37a965..60bba0b8 100644 --- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c | |||
@@ -4217,7 +4217,15 @@ out: | |||
4217 | static void gr_gk20a_load_gating_prod(struct gk20a *g) | 4217 | static void gr_gk20a_load_gating_prod(struct gk20a *g) |
4218 | { | 4218 | { |
4219 | /* slcg prod values */ | 4219 | /* slcg prod values */ |
4220 | g->ops.clock_gating.slcg_gr_load_gating_prod(g, g->slcg_enabled); | 4220 | if (g->ops.clock_gating.slcg_bus_load_gating_prod) |
4221 | g->ops.clock_gating.slcg_bus_load_gating_prod(g, | ||
4222 | g->slcg_enabled); | ||
4223 | if (g->ops.clock_gating.slcg_chiplet_load_gating_prod) | ||
4224 | g->ops.clock_gating.slcg_chiplet_load_gating_prod(g, | ||
4225 | g->slcg_enabled); | ||
4226 | if (g->ops.clock_gating.slcg_gr_load_gating_prod) | ||
4227 | g->ops.clock_gating.slcg_gr_load_gating_prod(g, | ||
4228 | g->slcg_enabled); | ||
4221 | if (g->ops.clock_gating.slcg_ctxsw_firmware_load_gating_prod) | 4229 | if (g->ops.clock_gating.slcg_ctxsw_firmware_load_gating_prod) |
4222 | g->ops.clock_gating.slcg_ctxsw_firmware_load_gating_prod(g, | 4230 | g->ops.clock_gating.slcg_ctxsw_firmware_load_gating_prod(g, |
4223 | g->slcg_enabled); | 4231 | g->slcg_enabled); |
@@ -4227,6 +4235,12 @@ static void gr_gk20a_load_gating_prod(struct gk20a *g) | |||
4227 | g->slcg_enabled); | 4235 | g->slcg_enabled); |
4228 | 4236 | ||
4229 | /* blcg prod values */ | 4237 | /* blcg prod values */ |
4238 | if (g->ops.clock_gating.blcg_bus_load_gating_prod) | ||
4239 | g->ops.clock_gating.blcg_bus_load_gating_prod(g, | ||
4240 | g->blcg_enabled); | ||
4241 | if (g->ops.clock_gating.blcg_ce_load_gating_prod) | ||
4242 | g->ops.clock_gating.blcg_ce_load_gating_prod(g, | ||
4243 | g->blcg_enabled); | ||
4230 | g->ops.clock_gating.blcg_gr_load_gating_prod(g, g->blcg_enabled); | 4244 | g->ops.clock_gating.blcg_gr_load_gating_prod(g, g->blcg_enabled); |
4231 | if (g->ops.clock_gating.blcg_ctxsw_firmware_load_gating_prod) | 4245 | if (g->ops.clock_gating.blcg_ctxsw_firmware_load_gating_prod) |
4232 | g->ops.clock_gating.blcg_ctxsw_firmware_load_gating_prod(g, | 4246 | g->ops.clock_gating.blcg_ctxsw_firmware_load_gating_prod(g, |