diff options
author | Deepak Nibade <dnibade@nvidia.com> | 2018-01-16 06:33:34 -0500 |
---|---|---|
committer | Seema Khowala <seemaj@nvidia.com> | 2018-01-30 16:03:28 -0500 |
commit | a9644aa4435a72e5c7e768f85ffb98802940cab4 (patch) | |
tree | 915f7d8c8320a4649f08f45ee4ae36418a834fbf /drivers/gpu | |
parent | 87acd01edfd2f2a3746e2166940147f545edd7bb (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>
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/nvgpu/common/linux/platform_gv11b_tegra.c | 10 |
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 | ||
100 | static 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 | |||
100 | static int gv11b_tegra_remove(struct device *dev) | 107 | static 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, |