diff options
author | Mahantesh Kumbar <mkumbar@nvidia.com> | 2015-05-15 07:33:18 -0400 |
---|---|---|
committer | Deepak Nibade <dnibade@nvidia.com> | 2016-12-27 04:52:07 -0500 |
commit | 3e3d83aff1688cb4e5560799de3deb68bd3617c4 (patch) | |
tree | 68229b07e779cca68752970dc8beac692840ebf4 | |
parent | 01ba044bdbbfa831eb9f507230bac0a1ed67e4ce (diff) |
gpu: nvgpu: enable gp10b rail calls to bpmp
Bug 200086985
Change-Id: I9eaa135b96629636a6b949ae1e3874dd3abd5138
Signed-off-by: Mahantesh Kumbar <mkumbar@nvidia.com>
Reviewed-on: http://git-master/r/794723
Reviewed-on: http://git-master/r/743217
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
-rw-r--r-- | drivers/gpu/nvgpu/gp10b/platform_gp10b_tegra.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/drivers/gpu/nvgpu/gp10b/platform_gp10b_tegra.c b/drivers/gpu/nvgpu/gp10b/platform_gp10b_tegra.c index efecb1e3..44b27fe7 100644 --- a/drivers/gpu/nvgpu/gp10b/platform_gp10b_tegra.c +++ b/drivers/gpu/nvgpu/gp10b/platform_gp10b_tegra.c | |||
@@ -63,17 +63,28 @@ static int gp10b_tegra_late_probe(struct platform_device *pdev) | |||
63 | 63 | ||
64 | static bool gp10b_tegra_is_railgated(struct platform_device *pdev) | 64 | static bool gp10b_tegra_is_railgated(struct platform_device *pdev) |
65 | { | 65 | { |
66 | return false; | 66 | bool ret = false; |
67 | |||
68 | if (!tegra_platform_is_linsim()) | ||
69 | ret = !tegra_powergate_is_powered(TEGRA_POWERGATE_GPU); | ||
70 | |||
71 | return ret; | ||
67 | } | 72 | } |
68 | 73 | ||
69 | static int gp10b_tegra_railgate(struct platform_device *pdev) | 74 | static int gp10b_tegra_railgate(struct platform_device *pdev) |
70 | { | 75 | { |
76 | if (!tegra_platform_is_linsim() && | ||
77 | tegra_powergate_is_powered(TEGRA_POWERGATE_GPU)) | ||
78 | tegra_powergate_partition(TEGRA_POWERGATE_GPU); | ||
71 | return 0; | 79 | return 0; |
72 | } | 80 | } |
73 | 81 | ||
74 | static int gp10b_tegra_unrailgate(struct platform_device *pdev) | 82 | static int gp10b_tegra_unrailgate(struct platform_device *pdev) |
75 | { | 83 | { |
76 | return 0; | 84 | int ret = 0; |
85 | if (!tegra_platform_is_linsim()) | ||
86 | ret = tegra_unpowergate_partition(TEGRA_POWERGATE_GPU); | ||
87 | return ret; | ||
77 | } | 88 | } |
78 | 89 | ||
79 | static int gp10b_tegra_suspend(struct device *dev) | 90 | static int gp10b_tegra_suspend(struct device *dev) |
@@ -85,6 +96,11 @@ struct gk20a_platform t18x_gpu_tegra_platform = { | |||
85 | .has_syncpoints = true, | 96 | .has_syncpoints = true, |
86 | 97 | ||
87 | /* power management configuration */ | 98 | /* power management configuration */ |
99 | .railgate_delay = 500, | ||
100 | .clockgate_delay = 50, | ||
101 | |||
102 | /* power management configuration */ | ||
103 | .can_railgate = false, | ||
88 | .enable_elpg = false, | 104 | .enable_elpg = false, |
89 | 105 | ||
90 | .probe = gp10b_tegra_probe, | 106 | .probe = gp10b_tegra_probe, |