From 6be1d64a594f912221e1bbe8e05c80ff0901216c Mon Sep 17 00:00:00 2001 From: Richard Zhao Date: Tue, 29 Sep 2020 22:31:59 -0700 Subject: [PATCH] gpu: nvgpu: vgpu: fixed build errors for k5.9 - enable pm qos only on CONFIG_GK20A_PM_QOS enabled - removed setting of devfreq->min_freq/max_freq. It's not support on k5.9. For K4.14, we won't need it since the scale core code has setup the freq table. Jira GVSCI-7221 Signed-off-by: Richard Zhao Change-Id: I78fef76dfb82296250065065510cd1f044308bdf Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2421647 Reviewed-by: automaticguardword Reviewed-by: Deepak Nibade Reviewed-by: Sagar Kamble Reviewed-by: Aparna Das Reviewed-by: mobile promotions Tested-by: mobile promotions GVS: Gerrit_Virtual_Submit --- drivers/gpu/nvgpu/os/linux/vgpu/vgpu_linux.c | 25 +++++++------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/drivers/gpu/nvgpu/os/linux/vgpu/vgpu_linux.c b/drivers/gpu/nvgpu/os/linux/vgpu/vgpu_linux.c index 624dbe74f..a793223a5 100644 --- a/drivers/gpu/nvgpu/os/linux/vgpu/vgpu_linux.c +++ b/drivers/gpu/nvgpu/os/linux/vgpu/vgpu_linux.c @@ -234,6 +234,8 @@ done: return err; } +#ifdef CONFIG_GK20A_PM_QOS + static int vgpu_qos_notify(struct notifier_block *nb, unsigned long n, void *data) { @@ -286,13 +288,11 @@ static void vgpu_pm_qos_remove(struct device *dev) g->scale_profile = NULL; } +#endif + static int vgpu_pm_init(struct device *dev) { struct gk20a *g = get_gk20a(dev); - struct gk20a_platform *platform = gk20a_get_platform(dev); - struct nvgpu_os_linux *l = nvgpu_os_linux_from_gk20a(g); - unsigned long *freqs; - int num_freqs; int err = 0; nvgpu_log_fn(g, " "); @@ -305,22 +305,11 @@ static int vgpu_pm_init(struct device *dev) if (IS_ENABLED(CONFIG_GK20A_DEVFREQ)) gk20a_scale_init(dev); - if (l->devfreq) { - /* set min/max frequency based on frequency table */ - err = platform->get_clk_freqs(dev, &freqs, &num_freqs); - if (err) - return err; - - if (num_freqs < 1) - return -EINVAL; - - l->devfreq->min_freq = freqs[0]; - l->devfreq->max_freq = freqs[num_freqs - 1]; - } - +#ifdef CONFIG_GK20A_PM_QOS err = vgpu_pm_qos_init(dev); if (err) return err; +#endif return err; } @@ -494,7 +483,9 @@ int vgpu_remove(struct platform_device *pdev) gk20a_dma_buf_priv_list_clear(l); nvgpu_mutex_destroy(&l->dmabuf_priv_list_lock); +#ifdef CONFIG_GK20A_PM_QOS vgpu_pm_qos_remove(dev); +#endif if (g->remove_support) g->remove_support(g);