summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a
diff options
context:
space:
mode:
authorAlex Waterman <alexw@nvidia.com>2018-08-21 13:35:06 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2018-09-27 18:04:38 -0400
commit8789cafcfb0d1e16ad0b2c61b047d275f2d684b4 (patch)
tree34092ee2fcedbfbe719c9984c5f5f06807632158 /drivers/gpu/nvgpu/gk20a
parentc6eae929fd74f11ab13d469a38bffd4e8ba50fb5 (diff)
gpu: nvgpu: Standardize HAS_SYNCPOINTs check
Nvgpu uses many ways to check if sync points are enabled. The four ways used to be: platform->has_syncpoints g->has_syncpoints nvgpu_is_enabled(g, NVPGU_HAS_SYNCPOINTS) gk20a_platform_has_syncpoints() This patch standardizes all usage to now be nvgpu_has_syncpoints() which is based on gk20a_platform_has_syncpoints() - just renamed to be general to nvgpu. All usage of the other forms have now been consolidated. However, under the hood nvgpu_has_syncpoints() does check the is_enabled flag. This flag is now set where g->has_syncpoints used to be set based on the platform data. The basic dependency chain is this: nvgpu_has_syncpoints -> NVGPU_HAS_SYNCPOINTS -> platform->has_syncpoints However, note: there are several places where syncpoints can be disabled if some other driver initialization fails (for ex. host1x). Also note that nvgpu_has_syncpoints() also considers a disable variable set by debugfs. Bug 2327574 Change-Id: Ia2375a80f5f2e27285e6175568dd13e6bb25fd33 Signed-off-by: Alex Waterman <alexw@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1803975 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a')
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.c b/drivers/gpu/nvgpu/gk20a/gk20a.c
index 1cad8dcb..39318f66 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.c
@@ -391,7 +391,7 @@ int gk20a_finalize_poweron(struct gk20a *g)
391 } 391 }
392 392
393#if defined(CONFIG_TEGRA_GK20A_NVHOST) 393#if defined(CONFIG_TEGRA_GK20A_NVHOST)
394 if (gk20a_platform_has_syncpoints(g) && g->syncpt_unit_size) { 394 if (nvgpu_has_syncpoints(g) && g->syncpt_unit_size) {
395 if (!nvgpu_mem_is_valid(&g->syncpt_mem)) { 395 if (!nvgpu_mem_is_valid(&g->syncpt_mem)) {
396 nr_pages = DIV_ROUND_UP(g->syncpt_unit_size, PAGE_SIZE); 396 nr_pages = DIV_ROUND_UP(g->syncpt_unit_size, PAGE_SIZE);
397 __nvgpu_mem_create_from_phys(g, &g->syncpt_mem, 397 __nvgpu_mem_create_from_phys(g, &g->syncpt_mem,
@@ -461,10 +461,6 @@ int gk20a_init_gpu_characteristics(struct gk20a *g)
461 __nvgpu_set_enabled(g, NVGPU_SUPPORT_SPARSE_ALLOCS, true); 461 __nvgpu_set_enabled(g, NVGPU_SUPPORT_SPARSE_ALLOCS, true);
462 } 462 }
463 463
464 if (gk20a_platform_has_syncpoints(g)) {
465 __nvgpu_set_enabled(g, NVGPU_HAS_SYNCPOINTS, true);
466 }
467
468 /* 464 /*
469 * Fast submits are supported as long as the user doesn't request 465 * Fast submits are supported as long as the user doesn't request
470 * anything that depends on job tracking. (Here, fast means strictly no 466 * anything that depends on job tracking. (Here, fast means strictly no