summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/common
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/common')
-rw-r--r--drivers/gpu/nvgpu/common/linux/soc.c31
-rw-r--r--drivers/gpu/nvgpu/common/linux/timers.c5
-rw-r--r--drivers/gpu/nvgpu/common/nvgpu_common.c15
3 files changed, 42 insertions, 9 deletions
diff --git a/drivers/gpu/nvgpu/common/linux/soc.c b/drivers/gpu/nvgpu/common/linux/soc.c
new file mode 100644
index 00000000..d2bb5275
--- /dev/null
+++ b/drivers/gpu/nvgpu/common/linux/soc.c
@@ -0,0 +1,31 @@
1/*
2 * Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved.
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms and conditions of the GNU General Public License,
6 * version 2, as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope it will be useful, but WITHOUT
9 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
11 * more details.
12 */
13
14#include <soc/tegra/chip-id.h>
15
16#include <nvgpu/soc.h>
17
18bool nvgpu_platform_is_silicon(struct gk20a *g)
19{
20 return tegra_platform_is_silicon();
21}
22
23bool nvgpu_platform_is_simulation(struct gk20a *g)
24{
25 return tegra_platform_is_linsim() || tegra_platform_is_vdk();
26}
27
28bool nvgpu_is_hypervisor_mode(struct gk20a *g)
29{
30 return is_tegra_hypervisor_mode();
31}
diff --git a/drivers/gpu/nvgpu/common/linux/timers.c b/drivers/gpu/nvgpu/common/linux/timers.c
index 07eb357a..9fe84b50 100644
--- a/drivers/gpu/nvgpu/common/linux/timers.c
+++ b/drivers/gpu/nvgpu/common/linux/timers.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved. 2 * Copyright (c) 2016-2017, NVIDIA CORPORATION. All rights reserved.
3 * 3 *
4 * This program is free software; you can redistribute it and/or modify it 4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms and conditions of the GNU General Public License, 5 * under the terms and conditions of the GNU General Public License,
@@ -18,6 +18,7 @@
18#include <linux/delay.h> 18#include <linux/delay.h>
19 19
20#include <nvgpu/timers.h> 20#include <nvgpu/timers.h>
21#include <nvgpu/soc.h>
21 22
22#include "gk20a/gk20a.h" 23#include "gk20a/gk20a.h"
23 24
@@ -31,7 +32,7 @@ static int nvgpu_timeout_is_pre_silicon(struct nvgpu_timeout *timeout)
31 if (timeout->flags & NVGPU_TIMER_NO_PRE_SI) 32 if (timeout->flags & NVGPU_TIMER_NO_PRE_SI)
32 return 0; 33 return 0;
33 34
34 return !tegra_platform_is_silicon(); 35 return !nvgpu_platform_is_silicon(timeout->g);
35} 36}
36 37
37/** 38/**
diff --git a/drivers/gpu/nvgpu/common/nvgpu_common.c b/drivers/gpu/nvgpu/common/nvgpu_common.c
index a07a8f7d..f8f4a636 100644
--- a/drivers/gpu/nvgpu/common/nvgpu_common.c
+++ b/drivers/gpu/nvgpu/common/nvgpu_common.c
@@ -19,6 +19,7 @@
19 19
20#include <nvgpu/kmem.h> 20#include <nvgpu/kmem.h>
21#include <nvgpu/nvgpu_common.h> 21#include <nvgpu/nvgpu_common.h>
22#include <nvgpu/soc.h>
22 23
23#include "gk20a/gk20a_scale.h" 24#include "gk20a/gk20a_scale.h"
24#include "gk20a/gk20a.h" 25#include "gk20a/gk20a.h"
@@ -60,7 +61,7 @@ static void nvgpu_init_vars(struct gk20a *g)
60static void nvgpu_init_timeout(struct gk20a *g) 61static void nvgpu_init_timeout(struct gk20a *g)
61{ 62{
62 g->gr_idle_timeout_default = CONFIG_GK20A_DEFAULT_TIMEOUT; 63 g->gr_idle_timeout_default = CONFIG_GK20A_DEFAULT_TIMEOUT;
63 if (tegra_platform_is_silicon()) 64 if (nvgpu_platform_is_silicon(g))
64 g->timeouts_enabled = true; 65 g->timeouts_enabled = true;
65} 66}
66 67
@@ -85,17 +86,17 @@ static void nvgpu_init_pm_vars(struct gk20a *g)
85 * power features and for silicon platforms, read from platform data 86 * power features and for silicon platforms, read from platform data
86 */ 87 */
87 g->slcg_enabled = 88 g->slcg_enabled =
88 tegra_platform_is_silicon() ? platform->enable_slcg : false; 89 nvgpu_platform_is_silicon(g) ? platform->enable_slcg : false;
89 g->blcg_enabled = 90 g->blcg_enabled =
90 tegra_platform_is_silicon() ? platform->enable_blcg : false; 91 nvgpu_platform_is_silicon(g) ? platform->enable_blcg : false;
91 g->elcg_enabled = 92 g->elcg_enabled =
92 tegra_platform_is_silicon() ? platform->enable_elcg : false; 93 nvgpu_platform_is_silicon(g) ? platform->enable_elcg : false;
93 g->elpg_enabled = 94 g->elpg_enabled =
94 tegra_platform_is_silicon() ? platform->enable_elpg : false; 95 nvgpu_platform_is_silicon(g) ? platform->enable_elpg : false;
95 g->aelpg_enabled = 96 g->aelpg_enabled =
96 tegra_platform_is_silicon() ? platform->enable_aelpg : false; 97 nvgpu_platform_is_silicon(g) ? platform->enable_aelpg : false;
97 g->mscg_enabled = 98 g->mscg_enabled =
98 tegra_platform_is_silicon() ? platform->enable_mscg : false; 99 nvgpu_platform_is_silicon(g) ? platform->enable_mscg : false;
99 100
100 /* set default values to aelpg parameters */ 101 /* set default values to aelpg parameters */
101 g->pmu.aelpg_param[0] = APCTRL_SAMPLING_PERIOD_PG_DEFAULT_US; 102 g->pmu.aelpg_param[0] = APCTRL_SAMPLING_PERIOD_PG_DEFAULT_US;