diff options
author | Deepak Nibade <dnibade@nvidia.com> | 2014-11-03 04:05:53 -0500 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2015-03-18 15:12:00 -0400 |
commit | c3661adef806869a7e0df884fc621c48436961d4 (patch) | |
tree | f5dae90d31852f8c49eb9bdab4b206c347dc1149 /drivers/gpu/nvgpu/gk20a/platform_gk20a.h | |
parent | ca95cc76bbaf0d15804d554a9ebfcc708a20c8c4 (diff) |
gpu: nvgpu: fix reset clock in gm20b
To assert reset on GPU, we store "gpu_ref" clock in
platform->clk[0] and use it to assert/deassert reset
But for gm20b, "gpu_ref" is no longer resettable.
To fix this, add two callbacks in gk20a_platform :
.reset_assert and .reset_deassert
Also, add a pointer "clk_reset" to store the clock
which needs to be reset
For gk20a specific implementation, we continue to
reset platform->clk[0]
For gm20b specific implementation, we first request
"gpu_gate" clock, store it and use it to assert reset
Bug 1513685
Bug 1517584
Change-Id: I15a583a4a07eb663b442084be8b8c7d0c7c7a142
Signed-off-by: Deepak Nibade <dnibade@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/platform_gk20a.h')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/platform_gk20a.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/platform_gk20a.h b/drivers/gpu/nvgpu/gk20a/platform_gk20a.h index 0cc04595..5f7285bf 100644 --- a/drivers/gpu/nvgpu/gk20a/platform_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/platform_gk20a.h | |||
@@ -155,6 +155,11 @@ struct gk20a_platform { | |||
155 | */ | 155 | */ |
156 | void (*dump_platform_dependencies)(struct platform_device *dev); | 156 | void (*dump_platform_dependencies)(struct platform_device *dev); |
157 | 157 | ||
158 | /* Callbacks to assert/deassert GPU reset */ | ||
159 | int (*reset_assert)(struct platform_device *pdev); | ||
160 | int (*reset_deassert)(struct platform_device *pdev); | ||
161 | struct clk *clk_reset; | ||
162 | |||
158 | bool virtual_dev; | 163 | bool virtual_dev; |
159 | #ifdef CONFIG_TEGRA_GR_VIRTUALIZATION | 164 | #ifdef CONFIG_TEGRA_GR_VIRTUALIZATION |
160 | u64 virt_handle; | 165 | u64 virt_handle; |