summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a
diff options
context:
space:
mode:
authorArto Merilainen <amerilainen@nvidia.com>2014-09-18 04:38:08 -0400
committerDan Willemsen <dwillemsen@nvidia.com>2015-03-18 15:11:20 -0400
commitbc10e7e47af667c1afa7499e01070a595b006ef6 (patch)
treee853aa8f7c4afcc069a80e9798c983b4a73828dc /drivers/gpu/nvgpu/gk20a
parentfc7280ae919fb0acf2e79e9acf75da7dd634764e (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/gk20a')
-rw-r--r--drivers/gpu/nvgpu/gk20a/platform_gk20a_tegra.c12
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;