summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Zhao <rizhao@nvidia.com>2018-04-26 19:45:07 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2018-05-20 13:34:42 -0400
commit152eeae163e6e2115af2dd194df95217dd37b6bf (patch)
tree896db6a1a4ded4b9628a2a73572e83f869181b53
parentc8b659496d973d8ee01aea4fe018a58691ab5eaf (diff)
gpu: nvgpu: vgpu: call nvgpu_init_ltc_support
vgpu needs to call nvgpu_init_ltc_support to floor sweep and set ltc_count. And set gops.ltc.set_enabled to null as guest is not allowed to change ltc settings. Jira VQRM-2345 Change-Id: I83517d631aa947db4a0a4c312f0cecda9ba03973 Signed-off-by: Richard Zhao <rizhao@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1703626 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
-rw-r--r--drivers/gpu/nvgpu/common/linux/vgpu/vgpu_linux.c7
-rw-r--r--drivers/gpu/nvgpu/common/ltc.c3
-rw-r--r--drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c2
-rw-r--r--drivers/gpu/nvgpu/vgpu/gv11b/vgpu_hal_gv11b.c2
4 files changed, 12 insertions, 2 deletions
diff --git a/drivers/gpu/nvgpu/common/linux/vgpu/vgpu_linux.c b/drivers/gpu/nvgpu/common/linux/vgpu/vgpu_linux.c
index c5572603..90fbc079 100644
--- a/drivers/gpu/nvgpu/common/linux/vgpu/vgpu_linux.c
+++ b/drivers/gpu/nvgpu/common/linux/vgpu/vgpu_linux.c
@@ -31,6 +31,7 @@
31#include <nvgpu/soc.h> 31#include <nvgpu/soc.h>
32#include <nvgpu/ctxsw_trace.h> 32#include <nvgpu/ctxsw_trace.h>
33#include <nvgpu/defaults.h> 33#include <nvgpu/defaults.h>
34#include <nvgpu/ltc.h>
34 35
35#include "vgpu_linux.h" 36#include "vgpu_linux.h"
36#include "vgpu/fecs_trace_vgpu.h" 37#include "vgpu/fecs_trace_vgpu.h"
@@ -177,6 +178,12 @@ int vgpu_pm_finalize_poweron(struct device *dev)
177 if (g->ops.ltc.init_fs_state) 178 if (g->ops.ltc.init_fs_state)
178 g->ops.ltc.init_fs_state(g); 179 g->ops.ltc.init_fs_state(g);
179 180
181 err = nvgpu_init_ltc_support(g);
182 if (err) {
183 nvgpu_err(g, "failed to init ltc");
184 goto done;
185 }
186
180 err = vgpu_init_mm_support(g); 187 err = vgpu_init_mm_support(g);
181 if (err) { 188 if (err) {
182 nvgpu_err(g, "failed to init gk20a mm"); 189 nvgpu_err(g, "failed to init gk20a mm");
diff --git a/drivers/gpu/nvgpu/common/ltc.c b/drivers/gpu/nvgpu/common/ltc.c
index 024c2e49..dec4a80c 100644
--- a/drivers/gpu/nvgpu/common/ltc.c
+++ b/drivers/gpu/nvgpu/common/ltc.c
@@ -42,6 +42,9 @@ int nvgpu_init_ltc_support(struct gk20a *g)
42 42
43void nvgpu_ltc_sync_enabled(struct gk20a *g) 43void nvgpu_ltc_sync_enabled(struct gk20a *g)
44{ 44{
45 if (!g->ops.ltc.set_enabled)
46 return;
47
45 nvgpu_spinlock_acquire(&g->ltc_enabled_lock); 48 nvgpu_spinlock_acquire(&g->ltc_enabled_lock);
46 if (g->mm.ltc_enabled_current != g->mm.ltc_enabled_target) { 49 if (g->mm.ltc_enabled_current != g->mm.ltc_enabled_target) {
47 g->ops.ltc.set_enabled(g, g->mm.ltc_enabled_target); 50 g->ops.ltc.set_enabled(g, g->mm.ltc_enabled_target);
diff --git a/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c b/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c
index 708c52a1..7810ab42 100644
--- a/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c
+++ b/drivers/gpu/nvgpu/vgpu/gp10b/vgpu_hal_gp10b.c
@@ -86,7 +86,7 @@ static const struct gpu_ops vgpu_gp10b_ops = {
86 .isr = gp10b_ltc_isr, 86 .isr = gp10b_ltc_isr,
87 .cbc_fix_config = gm20b_ltc_cbc_fix_config, 87 .cbc_fix_config = gm20b_ltc_cbc_fix_config,
88 .flush = gm20b_flush_ltc, 88 .flush = gm20b_flush_ltc,
89 .set_enabled = gp10b_ltc_set_enabled, 89 .set_enabled = NULL,
90 }, 90 },
91 .ce2 = { 91 .ce2 = {
92 .isr_stall = gp10b_ce_isr, 92 .isr_stall = gp10b_ce_isr,
diff --git a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_hal_gv11b.c b/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_hal_gv11b.c
index 9fe76573..72db457b 100644
--- a/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_hal_gv11b.c
+++ b/drivers/gpu/nvgpu/vgpu/gv11b/vgpu_hal_gv11b.c
@@ -104,7 +104,7 @@ static const struct gpu_ops vgpu_gv11b_ops = {
104 .cbc_ctrl = NULL, 104 .cbc_ctrl = NULL,
105 .isr = gv11b_ltc_isr, 105 .isr = gv11b_ltc_isr,
106 .flush = gm20b_flush_ltc, 106 .flush = gm20b_flush_ltc,
107 .set_enabled = gp10b_ltc_set_enabled, 107 .set_enabled = NULL,
108 }, 108 },
109 .ce2 = { 109 .ce2 = {
110 .isr_stall = gv11b_ce_isr, 110 .isr_stall = gv11b_ce_isr,