summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/platform_gk20a.h
diff options
context:
space:
mode:
authorDeepak Nibade <dnibade@nvidia.com>2014-11-03 04:05:53 -0500
committerDan Willemsen <dwillemsen@nvidia.com>2015-03-18 15:12:00 -0400
commitc3661adef806869a7e0df884fc621c48436961d4 (patch)
treef5dae90d31852f8c49eb9bdab4b206c347dc1149 /drivers/gpu/nvgpu/gk20a/platform_gk20a.h
parentca95cc76bbaf0d15804d554a9ebfcc708a20c8c4 (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.h5
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;