diff options
author | David Nieto <dmartineznie@nvidia.com> | 2017-01-16 12:23:46 -0500 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-01-18 19:47:42 -0500 |
commit | d505e7f6859e9b73e31546e407262f43fd277415 (patch) | |
tree | d6999979f644ffd012819917c05806a705ccfa09 /drivers | |
parent | bf0a666be02a63c78849a36eae37cae6c49aa437 (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')
-rw-r--r-- | drivers/gpu/nvgpu/clk/clk_arb.c | 8 |
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 | ||
30 | struct nvgpu_clk_dev; | 30 | struct 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), |