summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/clk/clk_arb.c
diff options
context:
space:
mode:
authorDavid Nieto <dmartineznie@nvidia.com>2017-01-16 12:23:46 -0500
committermobile promotions <svcmobile_promotions@nvidia.com>2017-01-18 19:47:42 -0500
commitd505e7f6859e9b73e31546e407262f43fd277415 (patch)
treed6999979f644ffd012819917c05806a705ccfa09 /drivers/gpu/nvgpu/clk/clk_arb.c
parentbf0a666be02a63c78849a36eae37cae6c49aa437 (diff)
gpu: nvgpu: fix failures in VF table update
The variable indicating the size of the buffer for GPC vf points was not reset before the query, thus sporadic failures could happen if the number of available VF points changed on an update Maximum number of points increased to 256. This is the maximum that can fit in the boardobj table bug 200269804 Change-Id: Icb4ae386135a9bb40d4345eb73c5584fecd79147 Signed-off-by: David Nieto <dmartineznie@nvidia.com> Reviewed-on: http://git-master/r/1286028 Reviewed-on: http://git-master/r/1287589 Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com> Reviewed-by: Thomas Fleury <tfleury@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/clk/clk_arb.c')
-rw-r--r--drivers/gpu/nvgpu/clk/clk_arb.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/gpu/nvgpu/clk/clk_arb.c b/drivers/gpu/nvgpu/clk/clk_arb.c
index d6cbe137..2dee209e 100644
--- a/drivers/gpu/nvgpu/clk/clk_arb.c
+++ b/drivers/gpu/nvgpu/clk/clk_arb.c
@@ -24,7 +24,7 @@
24#include "clk/clk_arb.h" 24#include "clk/clk_arb.h"
25 25
26 26
27#define MAX_F_POINTS 127 27#define MAX_F_POINTS 256
28#define DEFAULT_EVENT_NUMBER 32 28#define DEFAULT_EVENT_NUMBER 32
29 29
30struct nvgpu_clk_dev; 30struct nvgpu_clk_dev;
@@ -685,6 +685,9 @@ static int nvgpu_clk_arb_update_vf_table(struct nvgpu_clk_arb *arb)
685 goto exit_vf_table; 685 goto exit_vf_table;
686 } 686 }
687 687
688 table->gpc2clk_num_points = MAX_F_POINTS;
689 table->mclk_num_points = MAX_F_POINTS;
690
688 if (clk_domain_get_f_points(arb->g, NVGPU_GPU_CLK_DOMAIN_GPC2CLK, 691 if (clk_domain_get_f_points(arb->g, NVGPU_GPU_CLK_DOMAIN_GPC2CLK,
689 &table->gpc2clk_num_points, arb->gpc2clk_f_points)) { 692 &table->gpc2clk_num_points, arb->gpc2clk_f_points)) {
690 gk20a_err(dev_from_gk20a(g), 693 gk20a_err(dev_from_gk20a(g),
@@ -692,9 +695,6 @@ static int nvgpu_clk_arb_update_vf_table(struct nvgpu_clk_arb *arb)
692 goto exit_vf_table; 695 goto exit_vf_table;
693 } 696 }
694 697
695 table->gpc2clk_num_points = MAX_F_POINTS;
696 table->mclk_num_points = MAX_F_POINTS;
697
698 if (clk_domain_get_f_points(arb->g, NVGPU_GPU_CLK_DOMAIN_MCLK, 698 if (clk_domain_get_f_points(arb->g, NVGPU_GPU_CLK_DOMAIN_MCLK,
699 &table->mclk_num_points, arb->mclk_f_points)) { 699 &table->mclk_num_points, arb->mclk_f_points)) {
700 gk20a_err(dev_from_gk20a(g), 700 gk20a_err(dev_from_gk20a(g),