diff options
author | Alex Frid <afrid@nvidia.com> | 2017-04-12 16:33:26 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-04-20 19:14:21 -0400 |
commit | 7ff9bb2c71186bd721b31f6c74f4010d723ca816 (patch) | |
tree | 4988b2b75b60d6f2aa0345198ed99dba46190f73 /drivers/gpu | |
parent | e8e33f4f05d067fdbe6d5114b6111df407447c21 (diff) |
gpu: nvgpu: Set GPC PLL id in platform probe
Set GPC PLL id in Tegra platform probe, to match Tegra SoC.
Bug 1851797
Bug 1867980
Change-Id: Ie6d2625a0009bcb96511aeda8c5af4734cf04929
Signed-off-by: Alex Frid <afrid@nvidia.com>
Reviewed-on: http://git-master/r/1461698
Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/clk_gk20a.h | 3 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/tegra/linux/platform_gk20a_tegra.c | 11 |
2 files changed, 11 insertions, 3 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/clk_gk20a.h b/drivers/gpu/nvgpu/gk20a/clk_gk20a.h index 8260fd4a..eb9ce069 100644 --- a/drivers/gpu/nvgpu/gk20a/clk_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/clk_gk20a.h | |||
@@ -24,6 +24,9 @@ | |||
24 | enum { | 24 | enum { |
25 | /* only one PLL for gk20a */ | 25 | /* only one PLL for gk20a */ |
26 | GK20A_GPC_PLL = 0, | 26 | GK20A_GPC_PLL = 0, |
27 | /* 2 PLL revisions for gm20b */ | ||
28 | GM20B_GPC_PLL_B1, | ||
29 | GM20B_GPC_PLL_C1, | ||
27 | }; | 30 | }; |
28 | 31 | ||
29 | enum gpc_pll_mode { | 32 | enum gpc_pll_mode { |
diff --git a/drivers/gpu/nvgpu/tegra/linux/platform_gk20a_tegra.c b/drivers/gpu/nvgpu/tegra/linux/platform_gk20a_tegra.c index 3e2a0adf..7ce66707 100644 --- a/drivers/gpu/nvgpu/tegra/linux/platform_gk20a_tegra.c +++ b/drivers/gpu/nvgpu/tegra/linux/platform_gk20a_tegra.c | |||
@@ -943,15 +943,20 @@ static int gk20a_tegra_probe(struct device *dev) | |||
943 | platform->can_railgate = false; | 943 | platform->can_railgate = false; |
944 | } | 944 | } |
945 | 945 | ||
946 | /* WAR for bug 1547668: Disable railgating and scaling irrespective of | 946 | platform->g->clk.gpc_pll.id = GK20A_GPC_PLL; |
947 | * platform data if the rework has not been made. */ | ||
948 | |||
949 | if (tegra_get_chip_id() == TEGRA210) { | 947 | if (tegra_get_chip_id() == TEGRA210) { |
948 | /* WAR for bug 1547668: Disable railgating and scaling | ||
949 | irrespective of platform data if the rework was not made. */ | ||
950 | np = of_find_node_by_path("/gpu-dvfs-rework"); | 950 | np = of_find_node_by_path("/gpu-dvfs-rework"); |
951 | if (!(np && of_device_is_available(np))) { | 951 | if (!(np && of_device_is_available(np))) { |
952 | platform->devfreq_governor = ""; | 952 | platform->devfreq_governor = ""; |
953 | dev_warn(dev, "board does not support scaling"); | 953 | dev_warn(dev, "board does not support scaling"); |
954 | } | 954 | } |
955 | platform->g->clk.gpc_pll.id = GM20B_GPC_PLL_B1; | ||
956 | #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 0)) | ||
957 | if (tegra_chip_get_revision() > TEGRA210_REVISION_A04p) | ||
958 | platform->g->clk.gpc_pll.id = GM20B_GPC_PLL_C1; | ||
959 | #endif | ||
955 | } | 960 | } |
956 | 961 | ||
957 | if (tegra_get_chip_id() == TEGRA132) | 962 | if (tegra_get_chip_id() == TEGRA132) |