diff options
author | Alex Waterman <alexw@nvidia.com> | 2018-08-21 13:35:06 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2018-09-27 18:04:38 -0400 |
commit | 8789cafcfb0d1e16ad0b2c61b047d275f2d684b4 (patch) | |
tree | 34092ee2fcedbfbe719c9984c5f5f06807632158 /drivers/gpu/nvgpu/gk20a/gk20a.c | |
parent | c6eae929fd74f11ab13d469a38bffd4e8ba50fb5 (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/gk20a.c')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a.c | 6 |
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 |