diff options
author | Terje Bergstrom <tbergstrom@nvidia.com> | 2014-10-23 08:13:08 -0400 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2015-03-18 15:11:50 -0400 |
commit | cc8e05c21533769d78f098149edb02e1f4394398 (patch) | |
tree | 18a0d39ef5c7c20e61328cc3eaf279178581b043 /drivers/gpu | |
parent | fcf4a107996af1be341952447b0237338c0b76ea (diff) |
gpu: nvgpu: Fix build without Tegra clk framework
Do not build clock code if TEGRA_CLK_FRAMEWORK is not defined. Also
make GK20A_DEVFREQ depend on TEGRA_CLK_FRAMEWORK, and build scaling
governor only if GK20A_DEVFREQ is enabled.
Bug 1567274
Change-Id: I6ea1462e7a110fb46c9d66ceda71167cff19699e
Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-on: http://git-master/r/562475
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/nvgpu/Kconfig | 1 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/Makefile | 10 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/clk_gk20a.h | 7 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a.c | 3 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a_scale.h | 7 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gm20b/clk_gm20b.h | 4 |
6 files changed, 28 insertions, 4 deletions
diff --git a/drivers/gpu/nvgpu/Kconfig b/drivers/gpu/nvgpu/Kconfig index 88c3130d..6797a719 100644 --- a/drivers/gpu/nvgpu/Kconfig +++ b/drivers/gpu/nvgpu/Kconfig | |||
@@ -44,6 +44,7 @@ config GK20A_PERFMON | |||
44 | decrease frequency if idle). | 44 | decrease frequency if idle). |
45 | 45 | ||
46 | config GK20A_DEVFREQ | 46 | config GK20A_DEVFREQ |
47 | depends on TEGRA_CLK_FRAMEWORK | ||
47 | bool "Use Devfreq" | 48 | bool "Use Devfreq" |
48 | help | 49 | help |
49 | Select this to use devfreq based scaling. | 50 | Select this to use devfreq based scaling. |
diff --git a/drivers/gpu/nvgpu/Makefile b/drivers/gpu/nvgpu/Makefile index 5d98b98b..cf5d65cc 100644 --- a/drivers/gpu/nvgpu/Makefile +++ b/drivers/gpu/nvgpu/Makefile | |||
@@ -25,12 +25,10 @@ nvgpu-y := \ | |||
25 | gk20a/priv_ring_gk20a.o \ | 25 | gk20a/priv_ring_gk20a.o \ |
26 | gk20a/semaphore_gk20a.o \ | 26 | gk20a/semaphore_gk20a.o \ |
27 | gk20a/fence_gk20a.o \ | 27 | gk20a/fence_gk20a.o \ |
28 | gk20a/clk_gk20a.o \ | ||
29 | gk20a/therm_gk20a.o \ | 28 | gk20a/therm_gk20a.o \ |
30 | gk20a/gr_ctx_gk20a_sim.o \ | 29 | gk20a/gr_ctx_gk20a_sim.o \ |
31 | gk20a/gr_ctx_gk20a.o \ | 30 | gk20a/gr_ctx_gk20a.o \ |
32 | gk20a/gk20a_gating_reglist.o \ | 31 | gk20a/gk20a_gating_reglist.o \ |
33 | gk20a/gk20a_scale.o \ | ||
34 | gk20a/gk20a_sysfs.o \ | 32 | gk20a/gk20a_sysfs.o \ |
35 | gk20a/ltc_gk20a.o \ | 33 | gk20a/ltc_gk20a.o \ |
36 | gk20a/fb_gk20a.o \ | 34 | gk20a/fb_gk20a.o \ |
@@ -50,7 +48,6 @@ nvgpu-y := \ | |||
50 | gm20b/gm20b_gating_reglist.o \ | 48 | gm20b/gm20b_gating_reglist.o \ |
51 | gm20b/acr_gm20b.o \ | 49 | gm20b/acr_gm20b.o \ |
52 | gm20b/pmu_gm20b.o \ | 50 | gm20b/pmu_gm20b.o \ |
53 | gm20b/clk_gm20b.o \ | ||
54 | gm20b/mm_gm20b.o \ | 51 | gm20b/mm_gm20b.o \ |
55 | gm20b/regops_gm20b.o | 52 | gm20b/regops_gm20b.o |
56 | 53 | ||
@@ -64,3 +61,10 @@ nvgpu-$(CONFIG_TEGRA_GR_VIRTUALIZATION) += \ | |||
64 | vgpu/fifo_vgpu.o \ | 61 | vgpu/fifo_vgpu.o \ |
65 | vgpu/mm_vgpu.o \ | 62 | vgpu/mm_vgpu.o \ |
66 | vgpu/vgpu.o | 63 | vgpu/vgpu.o |
64 | |||
65 | nvgpu-$(CONFIG_TEGRA_CLK_FRAMEWORK) += \ | ||
66 | gm20b/clk_gm20b.o \ | ||
67 | gk20a/clk_gk20a.o | ||
68 | |||
69 | nvgpu-$(CONFIG_GK20A_DEVFREQ) += \ | ||
70 | gk20a/gk20a_scale.o | ||
diff --git a/drivers/gpu/nvgpu/gk20a/clk_gk20a.h b/drivers/gpu/nvgpu/gk20a/clk_gk20a.h index 255c1a7c..c766fc46 100644 --- a/drivers/gpu/nvgpu/gk20a/clk_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/clk_gk20a.h | |||
@@ -77,6 +77,13 @@ struct clk_gk20a { | |||
77 | bool debugfs_set; | 77 | bool debugfs_set; |
78 | }; | 78 | }; |
79 | 79 | ||
80 | struct gpu_ops; | ||
81 | #ifdef CONFIG_TEGRA_CLK_FRAMEWORK | ||
82 | void gk20a_init_clk_ops(struct gpu_ops *gops); | ||
83 | #else | ||
84 | static inline void gk20a_init_clk_ops(struct gpu_ops *gops) {} | ||
85 | #endif | ||
86 | |||
80 | /* APIs used for both GK20A and GM20B */ | 87 | /* APIs used for both GK20A and GM20B */ |
81 | unsigned long gk20a_clk_get_rate(struct gk20a *g); | 88 | unsigned long gk20a_clk_get_rate(struct gk20a *g); |
82 | int gk20a_clk_set_rate(struct gk20a *g, unsigned long rate); | 89 | int gk20a_clk_set_rate(struct gk20a *g, unsigned long rate); |
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.c b/drivers/gpu/nvgpu/gk20a/gk20a.c index 5641818e..c91a316a 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gk20a.c | |||
@@ -765,7 +765,8 @@ static int gk20a_pm_prepare_poweroff(struct device *dev) | |||
765 | ret |= gk20a_fifo_suspend(g); | 765 | ret |= gk20a_fifo_suspend(g); |
766 | 766 | ||
767 | /* Disable GPCPLL */ | 767 | /* Disable GPCPLL */ |
768 | ret |= g->ops.clk.suspend_clk_support(g); | 768 | if (g->ops.clk.suspend_clk_support) |
769 | ret |= g->ops.clk.suspend_clk_support(g); | ||
769 | 770 | ||
770 | g->power_on = false; | 771 | g->power_on = false; |
771 | 772 | ||
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a_scale.h b/drivers/gpu/nvgpu/gk20a/gk20a_scale.h index 561ecaed..81c23b68 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a_scale.h +++ b/drivers/gpu/nvgpu/gk20a/gk20a_scale.h | |||
@@ -37,6 +37,7 @@ struct gk20a_scale_profile { | |||
37 | void gk20a_scale_init(struct platform_device *); | 37 | void gk20a_scale_init(struct platform_device *); |
38 | void gk20a_scale_hw_init(struct platform_device *pdev); | 38 | void gk20a_scale_hw_init(struct platform_device *pdev); |
39 | 39 | ||
40 | #ifdef CONFIG_GK20A_DEVFREQ | ||
40 | /* | 41 | /* |
41 | * call when performing submit to notify scaling mechanism that the module is | 42 | * call when performing submit to notify scaling mechanism that the module is |
42 | * in use | 43 | * in use |
@@ -46,5 +47,11 @@ void gk20a_scale_notify_idle(struct platform_device *); | |||
46 | 47 | ||
47 | void gk20a_scale_suspend(struct platform_device *); | 48 | void gk20a_scale_suspend(struct platform_device *); |
48 | void gk20a_scale_resume(struct platform_device *); | 49 | void gk20a_scale_resume(struct platform_device *); |
50 | #else | ||
51 | static inline void gk20a_scale_notify_busy(struct platform_device *pdev) {} | ||
52 | static inline void gk20a_scale_notify_idle(struct platform_device *pdev) {} | ||
53 | static inline void gk20a_scale_suspend(struct platform_device *pdev) {} | ||
54 | static inline void gk20a_scale_resume(struct platform_device *pdev) {} | ||
55 | #endif | ||
49 | 56 | ||
50 | #endif | 57 | #endif |
diff --git a/drivers/gpu/nvgpu/gm20b/clk_gm20b.h b/drivers/gpu/nvgpu/gm20b/clk_gm20b.h index cac5708c..84a2ce9a 100644 --- a/drivers/gpu/nvgpu/gm20b/clk_gm20b.h +++ b/drivers/gpu/nvgpu/gm20b/clk_gm20b.h | |||
@@ -21,6 +21,10 @@ | |||
21 | 21 | ||
22 | #include <linux/mutex.h> | 22 | #include <linux/mutex.h> |
23 | 23 | ||
24 | #ifdef CONFIG_TEGRA_CLK_FRAMEWORK | ||
24 | void gm20b_init_clk_ops(struct gpu_ops *gops); | 25 | void gm20b_init_clk_ops(struct gpu_ops *gops); |
26 | #else | ||
27 | static inline void gm20b_init_clk_ops(struct gpu_ops *gops) {} | ||
28 | #endif | ||
25 | 29 | ||
26 | #endif /* _NVHOST_CLK_GM20B_H_ */ | 30 | #endif /* _NVHOST_CLK_GM20B_H_ */ |