summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Frid <afrid@nvidia.com>2017-04-12 16:33:26 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-04-20 19:14:21 -0400
commit7ff9bb2c71186bd721b31f6c74f4010d723ca816 (patch)
tree4988b2b75b60d6f2aa0345198ed99dba46190f73
parente8e33f4f05d067fdbe6d5114b6111df407447c21 (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>
-rw-r--r--drivers/gpu/nvgpu/gk20a/clk_gk20a.h3
-rw-r--r--drivers/gpu/nvgpu/tegra/linux/platform_gk20a_tegra.c11
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 @@
24enum { 24enum {
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
29enum gpc_pll_mode { 32enum 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)