diff options
author | Arto Merilainen <amerilainen@nvidia.com> | 2014-09-18 04:38:08 -0400 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2015-03-18 15:11:20 -0400 |
commit | bc10e7e47af667c1afa7499e01070a595b006ef6 (patch) | |
tree | e853aa8f7c4afcc069a80e9798c983b4a73828dc /drivers/gpu/nvgpu | |
parent | fc7280ae919fb0acf2e79e9acf75da7dd634764e (diff) |
gpu: nvgpu: gm20b: Require rework for DVFS and rg
Boards require a rework to make railgating and DVFS work realiably.
The information whether the board has been reworked or not will be
available on DTS.
This patch adds a DTS check to the GPU driver initialisation. If the
rework information is not available (or the rework has been marked as
disabled), railgating and DVFS are disabled.
Bug 1555485
Change-Id: Ie86fe35fb94377403472faffcbcaec645b6e40d9
Signed-off-by: Arto Merilainen <amerilainen@nvidia.com>
Reviewed-on: http://git-master/r/500218
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/platform_gk20a_tegra.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/platform_gk20a_tegra.c b/drivers/gpu/nvgpu/gk20a/platform_gk20a_tegra.c index 5dd30e31..bbbbccb4 100644 --- a/drivers/gpu/nvgpu/gk20a/platform_gk20a_tegra.c +++ b/drivers/gpu/nvgpu/gk20a/platform_gk20a_tegra.c | |||
@@ -440,6 +440,18 @@ static int gk20a_tegra_probe(struct platform_device *dev) | |||
440 | *platform = t132_gk20a_tegra_platform; | 440 | *platform = t132_gk20a_tegra_platform; |
441 | } | 441 | } |
442 | 442 | ||
443 | /* WAR for bug 1547668: Disable railgating and scaling irrespective of | ||
444 | * platform data if the rework has not been made. */ | ||
445 | |||
446 | if (tegra_get_chipid() == TEGRA_CHIPID_TEGRA21) { | ||
447 | np = of_find_node_by_path("/gpu-dvfs-rework"); | ||
448 | if (!(np && of_device_is_available(np))) { | ||
449 | platform->can_railgate = false; | ||
450 | platform->devfreq_governor = ""; | ||
451 | dev_warn(&dev->dev, "board does not support scaling or powergating"); | ||
452 | } | ||
453 | } | ||
454 | |||
443 | gk20a_tegra_get_clocks(dev); | 455 | gk20a_tegra_get_clocks(dev); |
444 | 456 | ||
445 | return 0; | 457 | return 0; |