diff options
author | Deepak Goyal <dgoyal@nvidia.com> | 2017-09-22 02:38:10 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-10-04 05:24:30 -0400 |
commit | 0e8aee1c1a38abbc2dccf3f604a9843cf38071e0 (patch) | |
tree | d7da679255e79a3c48041af1e78bc8d7374d47d2 /drivers/gpu/nvgpu/common | |
parent | edb116661348f1bc843849cdcc318fa47cf9724a (diff) |
gpu: nvgpu: skip clk gating prog for sim/emu.
For Simualtion/Emulation platforms,clock gating
should be skipped as it is not supported.
Added new flags "can_"X"lcg" to check platform
capability before doing SLCG,BLCG and ELCG.
Bug 200314250
Change-Id: I4124d444a77a4c06df8c1d82c6038bfd457f3db0
Signed-off-by: Deepak Goyal <dgoyal@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1566049
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/common')
-rw-r--r-- | drivers/gpu/nvgpu/common/linux/driver_common.c | 8 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/common/linux/pci.c | 18 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/common/linux/platform_gk20a_tegra.c | 3 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/common/linux/platform_gp10b_tegra.c | 3 |
4 files changed, 32 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/common/linux/driver_common.c b/drivers/gpu/nvgpu/common/linux/driver_common.c index e8530c05..5f2961f4 100644 --- a/drivers/gpu/nvgpu/common/linux/driver_common.c +++ b/drivers/gpu/nvgpu/common/linux/driver_common.c | |||
@@ -116,6 +116,14 @@ static void nvgpu_init_pm_vars(struct gk20a *g) | |||
116 | nvgpu_platform_is_silicon(g) ? platform->enable_mscg : false; | 116 | nvgpu_platform_is_silicon(g) ? platform->enable_mscg : false; |
117 | g->can_elpg = | 117 | g->can_elpg = |
118 | nvgpu_platform_is_silicon(g) ? platform->can_elpg_init : false; | 118 | nvgpu_platform_is_silicon(g) ? platform->can_elpg_init : false; |
119 | |||
120 | __nvgpu_set_enabled(g, NVGPU_GPU_CAN_ELCG, | ||
121 | nvgpu_platform_is_silicon(g) ? platform->can_elcg : false); | ||
122 | __nvgpu_set_enabled(g, NVGPU_GPU_CAN_SLCG, | ||
123 | nvgpu_platform_is_silicon(g) ? platform->can_slcg : false); | ||
124 | __nvgpu_set_enabled(g, NVGPU_GPU_CAN_BLCG, | ||
125 | nvgpu_platform_is_silicon(g) ? platform->can_blcg : false); | ||
126 | |||
119 | g->default_pri_timeout = platform->default_pri_timeout; | 127 | g->default_pri_timeout = platform->default_pri_timeout; |
120 | g->aggressive_sync_destroy = platform->aggressive_sync_destroy; | 128 | g->aggressive_sync_destroy = platform->aggressive_sync_destroy; |
121 | g->aggressive_sync_destroy_thresh = platform->aggressive_sync_destroy_thresh; | 129 | g->aggressive_sync_destroy_thresh = platform->aggressive_sync_destroy_thresh; |
diff --git a/drivers/gpu/nvgpu/common/linux/pci.c b/drivers/gpu/nvgpu/common/linux/pci.c index 1a7d1842..6e3e02e5 100644 --- a/drivers/gpu/nvgpu/common/linux/pci.c +++ b/drivers/gpu/nvgpu/common/linux/pci.c | |||
@@ -79,6 +79,9 @@ static struct gk20a_platform nvgpu_pci_device[] = { | |||
79 | .enable_slcg = true, | 79 | .enable_slcg = true, |
80 | .enable_blcg = true, | 80 | .enable_blcg = true, |
81 | .enable_mscg = true, | 81 | .enable_mscg = true, |
82 | .can_slcg = true, | ||
83 | .can_blcg = true, | ||
84 | .can_elcg = true, | ||
82 | .default_pri_timeout = 0x3ff, | 85 | .default_pri_timeout = 0x3ff, |
83 | 86 | ||
84 | .disable_aspm = true, | 87 | .disable_aspm = true, |
@@ -112,6 +115,9 @@ static struct gk20a_platform nvgpu_pci_device[] = { | |||
112 | .enable_slcg = true, | 115 | .enable_slcg = true, |
113 | .enable_blcg = true, | 116 | .enable_blcg = true, |
114 | .enable_mscg = true, | 117 | .enable_mscg = true, |
118 | .can_slcg = true, | ||
119 | .can_blcg = true, | ||
120 | .can_elcg = true, | ||
115 | .default_pri_timeout = 0x3ff, | 121 | .default_pri_timeout = 0x3ff, |
116 | 122 | ||
117 | .disable_aspm = true, | 123 | .disable_aspm = true, |
@@ -145,6 +151,9 @@ static struct gk20a_platform nvgpu_pci_device[] = { | |||
145 | .enable_slcg = true, | 151 | .enable_slcg = true, |
146 | .enable_blcg = true, | 152 | .enable_blcg = true, |
147 | .enable_mscg = true, | 153 | .enable_mscg = true, |
154 | .can_slcg = true, | ||
155 | .can_blcg = true, | ||
156 | .can_elcg = true, | ||
148 | .default_pri_timeout = 0x3ff, | 157 | .default_pri_timeout = 0x3ff, |
149 | 158 | ||
150 | .disable_aspm = true, | 159 | .disable_aspm = true, |
@@ -178,6 +187,9 @@ static struct gk20a_platform nvgpu_pci_device[] = { | |||
178 | .enable_slcg = true, | 187 | .enable_slcg = true, |
179 | .enable_blcg = true, | 188 | .enable_blcg = true, |
180 | .enable_mscg = true, | 189 | .enable_mscg = true, |
190 | .can_slcg = true, | ||
191 | .can_blcg = true, | ||
192 | .can_elcg = true, | ||
181 | .default_pri_timeout = 0x3ff, | 193 | .default_pri_timeout = 0x3ff, |
182 | 194 | ||
183 | .disable_aspm = true, | 195 | .disable_aspm = true, |
@@ -211,6 +223,9 @@ static struct gk20a_platform nvgpu_pci_device[] = { | |||
211 | .enable_slcg = false, | 223 | .enable_slcg = false, |
212 | .enable_blcg = false, | 224 | .enable_blcg = false, |
213 | .enable_mscg = false, | 225 | .enable_mscg = false, |
226 | .can_slcg = false, | ||
227 | .can_blcg = false, | ||
228 | .can_elcg = false, | ||
214 | .default_pri_timeout = 0x3ff, | 229 | .default_pri_timeout = 0x3ff, |
215 | 230 | ||
216 | .disable_aspm = true, | 231 | .disable_aspm = true, |
@@ -241,6 +256,9 @@ static struct gk20a_platform nvgpu_pci_device[] = { | |||
241 | .enable_slcg = false, | 256 | .enable_slcg = false, |
242 | .enable_blcg = false, | 257 | .enable_blcg = false, |
243 | .enable_mscg = false, | 258 | .enable_mscg = false, |
259 | .can_slcg = false, | ||
260 | .can_blcg = false, | ||
261 | .can_elcg = false, | ||
244 | .default_pri_timeout = 0x3ff, | 262 | .default_pri_timeout = 0x3ff, |
245 | 263 | ||
246 | .disable_aspm = true, | 264 | .disable_aspm = true, |
diff --git a/drivers/gpu/nvgpu/common/linux/platform_gk20a_tegra.c b/drivers/gpu/nvgpu/common/linux/platform_gk20a_tegra.c index 2c556d8a..6379d8ef 100644 --- a/drivers/gpu/nvgpu/common/linux/platform_gk20a_tegra.c +++ b/drivers/gpu/nvgpu/common/linux/platform_gk20a_tegra.c | |||
@@ -911,6 +911,9 @@ struct gk20a_platform gm20b_tegra_platform = { | |||
911 | .enable_slcg = true, | 911 | .enable_slcg = true, |
912 | .enable_blcg = true, | 912 | .enable_blcg = true, |
913 | .enable_elcg = true, | 913 | .enable_elcg = true, |
914 | .can_slcg = true, | ||
915 | .can_blcg = true, | ||
916 | .can_elcg = true, | ||
914 | .enable_elpg = true, | 917 | .enable_elpg = true, |
915 | .enable_aelpg = true, | 918 | .enable_aelpg = true, |
916 | .enable_perfmon = true, | 919 | .enable_perfmon = true, |
diff --git a/drivers/gpu/nvgpu/common/linux/platform_gp10b_tegra.c b/drivers/gpu/nvgpu/common/linux/platform_gp10b_tegra.c index bdb7fb3f..c1ff34e3 100644 --- a/drivers/gpu/nvgpu/common/linux/platform_gp10b_tegra.c +++ b/drivers/gpu/nvgpu/common/linux/platform_gp10b_tegra.c | |||
@@ -373,6 +373,9 @@ struct gk20a_platform gp10b_tegra_platform = { | |||
373 | .enable_blcg = true, | 373 | .enable_blcg = true, |
374 | .enable_slcg = true, | 374 | .enable_slcg = true, |
375 | .enable_elcg = true, | 375 | .enable_elcg = true, |
376 | .can_slcg = true, | ||
377 | .can_blcg = true, | ||
378 | .can_elcg = true, | ||
376 | .enable_aelpg = true, | 379 | .enable_aelpg = true, |
377 | .enable_perfmon = true, | 380 | .enable_perfmon = true, |
378 | 381 | ||