From c76b5a5c5e6fa4d5d616cc899683ca5f552f3597 Mon Sep 17 00:00:00 2001 From: Omprakash Shewale Date: Tue, 11 Jan 2022 04:12:03 -0800 Subject: [PATCH] Revert "gpu: nvgpu: enable CONFIG_NVGPU_VPR for all kernels" This reverts commit 6b72b2a4e722700c5f9558d7e7f548fdb2bc5129. JIRA LS-458 Bug 200754700 Change-Id: I920431d82364f50c25c16fe6af6a084240f6a0ec Signed-off-by: Omprakash Shewale Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2652864 --- drivers/gpu/nvgpu/Makefile.linux.configs | 3 +++ drivers/gpu/nvgpu/include/nvgpu/vpr.h | 14 +------------- drivers/gpu/nvgpu/os/linux/module.c | 11 ++++------- drivers/gpu/nvgpu/os/linux/platform_gk20a_tegra.c | 10 ++-------- drivers/gpu/nvgpu/os/linux/vpr.c | 9 +-------- 5 files changed, 11 insertions(+), 36 deletions(-) diff --git a/drivers/gpu/nvgpu/Makefile.linux.configs b/drivers/gpu/nvgpu/Makefile.linux.configs index 66137d9f3..db36282b3 100644 --- a/drivers/gpu/nvgpu/Makefile.linux.configs +++ b/drivers/gpu/nvgpu/Makefile.linux.configs @@ -127,7 +127,10 @@ ifeq ($(CONFIG_TEGRA_GR_VIRTUALIZATION),y) CONFIG_NVGPU_GR_VIRTUALIZATION := y endif +# Support for NVGPU VPR +ifeq ($(CONFIG_TEGRA_VPR),y) CONFIG_NVGPU_VPR := y +endif # Support Tegra fuse ifeq ($(CONFIG_TEGRA_KFUSE),y) diff --git a/drivers/gpu/nvgpu/include/nvgpu/vpr.h b/drivers/gpu/nvgpu/include/nvgpu/vpr.h index 18a77c9e3..d069efe64 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/vpr.h +++ b/drivers/gpu/nvgpu/include/nvgpu/vpr.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2022, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2019-2020, NVIDIA CORPORATION. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -25,18 +25,6 @@ #include -#ifdef __KERNEL__ -#include - -/* - * VPR resize is enabled only on 4.9 kernel because kernel core mm changes to - * support it are intrusive and they can't be upstreamed easily. Upstream - * kernel will have support for static VPR. Note that static VPR is - * supported on all kernels. - */ -#define NVGPU_VPR_RESIZE_SUPPORTED (LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)) -#endif /* __KERNEL__ */ - #ifdef CONFIG_NVGPU_VPR bool nvgpu_is_vpr_resize_enabled(void); #else diff --git a/drivers/gpu/nvgpu/os/linux/module.c b/drivers/gpu/nvgpu/os/linux/module.c index 2cda3df33..21ffbe243 100644 --- a/drivers/gpu/nvgpu/os/linux/module.c +++ b/drivers/gpu/nvgpu/os/linux/module.c @@ -1,7 +1,7 @@ /* * GK20A Graphics * - * Copyright (c) 2011-2022, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2011-2021, NVIDIA CORPORATION. All rights reserved. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, @@ -26,10 +26,7 @@ #include #include #include - -#include - -#if NVGPU_VPR_RESIZE_SUPPORTED +#ifdef CONFIG_NVGPU_VPR #include #endif #include @@ -1007,7 +1004,7 @@ void gk20a_remove_support(struct gk20a *g) struct nvgpu_os_linux *l = nvgpu_os_linux_from_gk20a(g); struct sim_nvgpu_linux *sim_linux; -#if NVGPU_VPR_RESIZE_SUPPORTED +#ifdef CONFIG_NVGPU_VPR if (nvgpu_is_enabled(g, NVGPU_SUPPORT_VPR)) { tegra_unregister_idle_unidle(gk20a_do_idle); } @@ -1082,7 +1079,7 @@ static int gk20a_init_support(struct platform_device *pdev) void __iomem *addr; int err = -ENOMEM; -#if NVGPU_VPR_RESIZE_SUPPORTED +#ifdef CONFIG_NVGPU_VPR tegra_register_idle_unidle(gk20a_do_idle, gk20a_do_unidle, g); #endif diff --git a/drivers/gpu/nvgpu/os/linux/platform_gk20a_tegra.c b/drivers/gpu/nvgpu/os/linux/platform_gk20a_tegra.c index de1b4e825..62f25b538 100644 --- a/drivers/gpu/nvgpu/os/linux/platform_gk20a_tegra.c +++ b/drivers/gpu/nvgpu/os/linux/platform_gk20a_tegra.c @@ -1,7 +1,7 @@ /* * GK20A Tegra Platform Interface * - * Copyright (c) 2014-2022, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2014-2021, NVIDIA CORPORATION. All rights reserved. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, @@ -21,12 +21,10 @@ #include #include #include -#include - #if defined(CONFIG_TEGRA_DVFS) #include #endif -#if defined(CONFIG_NVGPU_TEGRA_FUSE) || NVGPU_VPR_RESIZE_SUPPORTED +#if defined(CONFIG_NVGPU_TEGRA_FUSE) || defined(CONFIG_NVGPU_VPR) #include #endif @@ -695,9 +693,7 @@ int gk20a_tegra_init_secure_alloc(struct gk20a_platform *platform) * On simulation platform, VPR is only supported with * vdk frontdoor boot and gpu frontdoor mode. */ -#if NVGPU_VPR_RESIZE_SUPPORTED tegra_unregister_idle_unidle(gk20a_do_idle); -#endif nvgpu_log_info(g, "VPR is not supported on simulation platform"); return 0; @@ -720,9 +716,7 @@ int gk20a_tegra_init_secure_alloc(struct gk20a_platform *platform) /* Some platforms disable VPR. In that case VPR allocations always * fail. Just disable VPR usage in nvgpu in that case. */ if (dma_mapping_error(&tegra_vpr_dev, iova)) { -#if NVGPU_VPR_RESIZE_SUPPORTED tegra_unregister_idle_unidle(gk20a_do_idle); -#endif return 0; } diff --git a/drivers/gpu/nvgpu/os/linux/vpr.c b/drivers/gpu/nvgpu/os/linux/vpr.c index fadd0383e..d51c42054 100644 --- a/drivers/gpu/nvgpu/os/linux/vpr.c +++ b/drivers/gpu/nvgpu/os/linux/vpr.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2022, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2019, NVIDIA CORPORATION. All rights reserved. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, @@ -14,16 +14,9 @@ #include #include - -#if NVGPU_VPR_RESIZE_SUPPORTED #include -#endif bool nvgpu_is_vpr_resize_enabled(void) { -#if NVGPU_VPR_RESIZE_SUPPORTED return tegra_is_vpr_resize_enabled(); -#else - return false; -#endif }