summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorSeshendra Gadagottu <sgadagottu@nvidia.com>2016-03-14 14:50:11 -0400
committerTerje Bergstrom <tbergstrom@nvidia.com>2016-03-14 23:15:17 -0400
commit471c14f76eca230c8b9ab5c92965a545f3d7dce0 (patch)
treee9ce111fe98f710a4d78fd46ab53d8ca2a471bea /drivers
parente689d62d88e30a7f3032ce67e425dd98fc485810 (diff)
gpu: nvgpu: update slcg/blcg prod setiings
Add following missing prod settings: blcg bus blcg ce slcg ce2 slcg chiplet slcg gr Bug 1689806 Change-Id: Ic7c9afdb1fc47ad71ca326384f5d2a4528121abe Signed-off-by: Seshendra Gadagottu <sgadagottu@nvidia.com> Reviewed-on: http://git-master/r/1030987 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a.h1
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c5
-rw-r--r--drivers/gpu/nvgpu/gk20a/gr_gk20a.c16
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:
4217static void gr_gk20a_load_gating_prod(struct gk20a *g) 4217static 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,