summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDeepak Nibade <dnibade@nvidia.com>2018-01-16 06:33:34 -0500
committerSeema Khowala <seemaj@nvidia.com>2018-01-30 16:03:28 -0500
commita9644aa4435a72e5c7e768f85ffb98802940cab4 (patch)
tree915f7d8c8320a4649f08f45ee4ae36418a834fbf
parent87acd01edfd2f2a3746e2166940147f545edd7bb (diff)
gpu: nvgpu: cause early VPR resize for gv11b
Patch 7240b3c2 enabled secure allocation for gv11b But since we allocate secure buffers in poweron path, and secure allocation needs GPU to be in off state, this results in deadlock in poweron path To solve this, we already cause early VPR resize for older chips by calling gk20a_tegra_secure_page_alloc() from late_probe Implement same for gv11b. Add late_probe callback and add a call to gk20a_tegra_secure_page_alloc() Bug 2038249 Change-Id: I8c17b069962b26edbd0639a7c0d6c2fdaa352935 Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1648831 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Seshendra Gadagottu <sgadagottu@nvidia.com> Tested-by: Seshendra Gadagottu <sgadagottu@nvidia.com> Reviewed-by: Alex Waterman <alexw@nvidia.com> Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Seema Khowala <seemaj@nvidia.com>
-rw-r--r--drivers/gpu/nvgpu/common/linux/platform_gv11b_tegra.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/common/linux/platform_gv11b_tegra.c b/drivers/gpu/nvgpu/common/linux/platform_gv11b_tegra.c
index 3bd01b2b..16593f6b 100644
--- a/drivers/gpu/nvgpu/common/linux/platform_gv11b_tegra.c
+++ b/drivers/gpu/nvgpu/common/linux/platform_gv11b_tegra.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * GV11B Tegra Platform Interface 2 * GV11B Tegra Platform Interface
3 * 3 *
4 * Copyright (c) 2016-2017, NVIDIA CORPORATION. All rights reserved. 4 * Copyright (c) 2016-2018, NVIDIA CORPORATION. All rights reserved.
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify it 6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms and conditions of the GNU General Public License, 7 * under the terms and conditions of the GNU General Public License,
@@ -97,6 +97,13 @@ static int gv11b_tegra_probe(struct device *dev)
97 return 0; 97 return 0;
98} 98}
99 99
100static int gv11b_tegra_late_probe(struct device *dev)
101{
102 /* Cause early VPR resize */
103 gk20a_tegra_secure_page_alloc(dev);
104 return 0;
105}
106
100static int gv11b_tegra_remove(struct device *dev) 107static int gv11b_tegra_remove(struct device *dev)
101{ 108{
102 gp10b_tegra_remove(dev); 109 gp10b_tegra_remove(dev);
@@ -198,6 +205,7 @@ struct gk20a_platform gv11b_tegra_platform = {
198 .ch_wdt_timeout_ms = 5000, 205 .ch_wdt_timeout_ms = 5000,
199 206
200 .probe = gv11b_tegra_probe, 207 .probe = gv11b_tegra_probe,
208 .late_probe = gv11b_tegra_late_probe,
201 .remove = gv11b_tegra_remove, 209 .remove = gv11b_tegra_remove,
202 210
203 .enable_slcg = false, 211 .enable_slcg = false,