From 471c14f76eca230c8b9ab5c92965a545f3d7dce0 Mon Sep 17 00:00:00 2001 From: Seshendra Gadagottu Date: Mon, 14 Mar 2016 11:50:11 -0700 Subject: 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 Reviewed-on: http://git-master/r/1030987 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom Tested-by: Terje Bergstrom --- drivers/gpu/nvgpu/gk20a/gk20a.h | 1 + drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c | 5 ++++- drivers/gpu/nvgpu/gk20a/gr_gk20a.c | 16 +++++++++++++++- 3 files changed, 20 insertions(+), 2 deletions(-) (limited to 'drivers') 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 { void (*slcg_therm_load_gating_prod)(struct gk20a *g, bool prod); void (*slcg_xbar_load_gating_prod)(struct gk20a *g, bool prod); void (*blcg_bus_load_gating_prod)(struct gk20a *g, bool prod); + void (*blcg_ce_load_gating_prod)(struct gk20a *g, bool prod); void (*blcg_ctxsw_firmware_load_gating_prod)(struct gk20a *g, bool prod); void (*blcg_fb_load_gating_prod)(struct gk20a *g, bool prod); 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 @@ * * GK20A Graphics * - * Copyright (c) 2011-2015, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2016, NVIDIA CORPORATION. All rights reserved. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, @@ -100,6 +100,9 @@ static ssize_t blcg_enable_store(struct device *device, if (g->ops.clock_gating.blcg_bus_load_gating_prod) g->ops.clock_gating.blcg_bus_load_gating_prod(g, g->blcg_enabled); + if (g->ops.clock_gating.blcg_ce_load_gating_prod) + g->ops.clock_gating.blcg_ce_load_gating_prod(g, + g->blcg_enabled); if (g->ops.clock_gating.blcg_ctxsw_firmware_load_gating_prod) g->ops.clock_gating.blcg_ctxsw_firmware_load_gating_prod(g, g->blcg_enabled); 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: static void gr_gk20a_load_gating_prod(struct gk20a *g) { /* slcg prod values */ - g->ops.clock_gating.slcg_gr_load_gating_prod(g, g->slcg_enabled); + if (g->ops.clock_gating.slcg_bus_load_gating_prod) + g->ops.clock_gating.slcg_bus_load_gating_prod(g, + g->slcg_enabled); + if (g->ops.clock_gating.slcg_chiplet_load_gating_prod) + g->ops.clock_gating.slcg_chiplet_load_gating_prod(g, + g->slcg_enabled); + if (g->ops.clock_gating.slcg_gr_load_gating_prod) + g->ops.clock_gating.slcg_gr_load_gating_prod(g, + g->slcg_enabled); if (g->ops.clock_gating.slcg_ctxsw_firmware_load_gating_prod) g->ops.clock_gating.slcg_ctxsw_firmware_load_gating_prod(g, g->slcg_enabled); @@ -4227,6 +4235,12 @@ static void gr_gk20a_load_gating_prod(struct gk20a *g) g->slcg_enabled); /* blcg prod values */ + if (g->ops.clock_gating.blcg_bus_load_gating_prod) + g->ops.clock_gating.blcg_bus_load_gating_prod(g, + g->blcg_enabled); + if (g->ops.clock_gating.blcg_ce_load_gating_prod) + g->ops.clock_gating.blcg_ce_load_gating_prod(g, + g->blcg_enabled); g->ops.clock_gating.blcg_gr_load_gating_prod(g, g->blcg_enabled); if (g->ops.clock_gating.blcg_ctxsw_firmware_load_gating_prod) g->ops.clock_gating.blcg_ctxsw_firmware_load_gating_prod(g, -- cgit v1.2.2