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/include | |
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/include')
-rw-r--r-- | drivers/gpu/nvgpu/include/nvgpu/gk20a.h | 10 |
1 files changed, 1 insertions, 9 deletions
diff --git a/drivers/gpu/nvgpu/include/nvgpu/gk20a.h b/drivers/gpu/nvgpu/include/nvgpu/gk20a.h index 8d7ccfa8..8627fddd 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/gk20a.h +++ b/drivers/gpu/nvgpu/include/nvgpu/gk20a.h | |||
@@ -1485,7 +1485,6 @@ struct gk20a { | |||
1485 | unsigned int aggressive_sync_destroy_thresh; | 1485 | unsigned int aggressive_sync_destroy_thresh; |
1486 | bool aggressive_sync_destroy; | 1486 | bool aggressive_sync_destroy; |
1487 | 1487 | ||
1488 | bool has_syncpoints; | ||
1489 | /* Debugfs knob for forcing syncpt support off in runtime. */ | 1488 | /* Debugfs knob for forcing syncpt support off in runtime. */ |
1490 | u32 disable_syncpoints; | 1489 | u32 disable_syncpoints; |
1491 | 1490 | ||
@@ -1758,13 +1757,6 @@ void nvgpu_wait_for_deferred_interrupts(struct gk20a *g); | |||
1758 | struct gk20a * __must_check gk20a_get(struct gk20a *g); | 1757 | struct gk20a * __must_check gk20a_get(struct gk20a *g); |
1759 | void gk20a_put(struct gk20a *g); | 1758 | void gk20a_put(struct gk20a *g); |
1760 | 1759 | ||
1761 | static inline bool gk20a_platform_has_syncpoints(struct gk20a *g) | 1760 | bool nvgpu_has_syncpoints(struct gk20a *g); |
1762 | { | ||
1763 | #ifdef CONFIG_TEGRA_GK20A_NVHOST | ||
1764 | return g->has_syncpoints && !g->disable_syncpoints; | ||
1765 | #else | ||
1766 | return false; | ||
1767 | #endif | ||
1768 | } | ||
1769 | 1761 | ||
1770 | #endif /* GK20A_H */ | 1762 | #endif /* GK20A_H */ |