From 63e8de51065b344e8e62f8527716c108f683cff3 Mon Sep 17 00:00:00 2001 From: Debarshi Dutta Date: Wed, 23 Nov 2022 10:30:28 +0530 Subject: [PATCH] gpu: nvgpu: Remove NVGPU_SUPPORT_NVS_CTRL_FIFO Now that we are planning to enable CTRL_FIFO support with NVS, there is no need for a separate enabled flag for the same. CTRL_FIFO support is instead determined by the presence of NVGPU_SUPPORT_NVS enable flag alone. For non-auto platforms, Control-Fifo can be disabled by restricting access to /dev/nvsched_ctrl_fifo. Jira NVGPU-8619 Signed-off-by: Debarshi Dutta Change-Id: I9dbec60e5668f38e1460c43800584e88b16a2550 Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2814435 Tested-by: mobile promotions Reviewed-by: mobile promotions --- drivers/gpu/nvgpu/common/nvs/nvs_sched.c | 2 +- drivers/gpu/nvgpu/include/nvgpu/enabled.h | 1 - drivers/gpu/nvgpu/os/linux/driver_common.c | 1 - drivers/gpu/nvgpu/os/linux/ioctl_ctrl.c | 2 -- drivers/gpu/nvgpu/os/linux/ioctl_nvs.c | 4 ++-- include/uapi/linux/nvgpu-ctrl.h | 2 -- userspace/units/nvs/nvgpu-nvs.c | 1 - 7 files changed, 3 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/nvgpu/common/nvs/nvs_sched.c b/drivers/gpu/nvgpu/common/nvs/nvs_sched.c index 00d1557f1..2196b2d22 100644 --- a/drivers/gpu/nvgpu/common/nvs/nvs_sched.c +++ b/drivers/gpu/nvgpu/common/nvs/nvs_sched.c @@ -710,7 +710,7 @@ int nvgpu_nvs_open(struct gk20a *g) nvgpu_atomic64_set(&g->scheduler->id_counter, 0); nvgpu_smp_wmb(); - if (nvgpu_is_enabled(g, NVGPU_SUPPORT_NVS_CTRL_FIFO)) { + if (nvgpu_is_enabled(g, NVGPU_SUPPORT_NVS)) { g->sched_ctrl_fifo = nvgpu_nvs_ctrl_fifo_create(g); if (g->sched_ctrl_fifo == NULL) { err = -ENOMEM; diff --git a/drivers/gpu/nvgpu/include/nvgpu/enabled.h b/drivers/gpu/nvgpu/include/nvgpu/enabled.h index bb8074eae..00b92863a 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/enabled.h +++ b/drivers/gpu/nvgpu/include/nvgpu/enabled.h @@ -221,7 +221,6 @@ struct gk20a; DEFINE_FLAG(NVGPU_SUPPORT_ROP_IN_GPC, "ROP is part of GPC"), \ DEFINE_FLAG(NVGPU_SUPPORT_BUFFER_METADATA, "Buffer metadata support"), \ DEFINE_FLAG(NVGPU_SUPPORT_NVS, "Domain scheduler support"), \ - DEFINE_FLAG(NVGPU_SUPPORT_NVS_CTRL_FIFO, "Domain scheduler control support"), \ DEFINE_FLAG(NVGPU_SUPPORT_TEGRA_RAW, \ "TEGRA_RAW format support"), \ DEFINE_FLAG(NVGPU_SUPPORT_EMULATE_MODE, \ diff --git a/drivers/gpu/nvgpu/os/linux/driver_common.c b/drivers/gpu/nvgpu/os/linux/driver_common.c index 68ed1bd0b..964ee98c3 100644 --- a/drivers/gpu/nvgpu/os/linux/driver_common.c +++ b/drivers/gpu/nvgpu/os/linux/driver_common.c @@ -137,7 +137,6 @@ static void nvgpu_init_vars(struct gk20a *g) nvgpu_set_enabled(g, NVGPU_HAS_SYNCPOINTS, platform->has_syncpoints); nvgpu_set_enabled(g, NVGPU_SUPPORT_NVS, true); - nvgpu_set_enabled(g, NVGPU_SUPPORT_NVS_CTRL_FIFO, true); } static void nvgpu_init_max_comptag(struct gk20a *g) diff --git a/drivers/gpu/nvgpu/os/linux/ioctl_ctrl.c b/drivers/gpu/nvgpu/os/linux/ioctl_ctrl.c index 673a5b7bf..12b98dfef 100644 --- a/drivers/gpu/nvgpu/os/linux/ioctl_ctrl.c +++ b/drivers/gpu/nvgpu/os/linux/ioctl_ctrl.c @@ -338,8 +338,6 @@ static struct nvgpu_flags_mapping flags_mapping[] = { NVGPU_SUPPORT_BUFFER_METADATA}, {NVGPU_GPU_FLAGS_SUPPORT_NVS, NVGPU_SUPPORT_NVS}, - {NVGPU_GPU_FLAGS_SUPPORT_NVS_SCHED_CTRL_FIFO, - NVGPU_SUPPORT_NVS_CTRL_FIFO}, {NVGPU_GPU_FLAGS_SCHED_EXIT_WAIT_FOR_ERRBAR_SUPPORTED, NVGPU_SCHED_EXIT_WAIT_FOR_ERRBAR_SUPPORTED}, {NVGPU_GPU_FLAGS_MULTI_PROCESS_TSG_SHARING, diff --git a/drivers/gpu/nvgpu/os/linux/ioctl_nvs.c b/drivers/gpu/nvgpu/os/linux/ioctl_nvs.c index 54e60d95f..d13fe792f 100644 --- a/drivers/gpu/nvgpu/os/linux/ioctl_nvs.c +++ b/drivers/gpu/nvgpu/os/linux/ioctl_nvs.c @@ -628,7 +628,7 @@ int nvgpu_nvs_ctrl_fifo_ops_open(struct inode *inode, struct file *filp) return err; } - if (!nvgpu_is_enabled(g, NVGPU_SUPPORT_NVS_CTRL_FIFO)) { + if (!nvgpu_is_enabled(g, NVGPU_SUPPORT_NVS)) { gk20a_idle(g); return -EOPNOTSUPP; } @@ -1115,7 +1115,7 @@ long nvgpu_nvs_ctrl_fifo_ops_ioctl(struct file *filp, unsigned int cmd, unsigned struct nvgpu_nvs_ctrl_fifo_scheduler_characteristics_args *args = (struct nvgpu_nvs_ctrl_fifo_scheduler_characteristics_args *)buf; - if (!nvgpu_is_enabled(g, NVGPU_SUPPORT_NVS_CTRL_FIFO)) { + if (!nvgpu_is_enabled(g, NVGPU_SUPPORT_NVS)) { err = -EOPNOTSUPP; return err; } diff --git a/include/uapi/linux/nvgpu-ctrl.h b/include/uapi/linux/nvgpu-ctrl.h index 057a378d4..2d3b691fc 100644 --- a/include/uapi/linux/nvgpu-ctrl.h +++ b/include/uapi/linux/nvgpu-ctrl.h @@ -201,8 +201,6 @@ struct nvgpu_gpu_zbc_query_table_args { #define NVGPU_GPU_FLAGS_SUPPORT_VAB (1ULL << 52) /* The NVS scheduler interface is usable */ #define NVGPU_GPU_FLAGS_SUPPORT_NVS (1ULL << 53) -/* The NVS control fifo interface is usable */ -#define NVGPU_GPU_FLAGS_SUPPORT_NVS_SCHED_CTRL_FIFO (1ULL << 54) /* Flag to indicate whether implicit ERRBAR is supported */ #define NVGPU_GPU_FLAGS_SCHED_EXIT_WAIT_FOR_ERRBAR_SUPPORTED (1ULL << 55) /* Flag to indicate whether multi-process TSG sharing is supported */ diff --git a/userspace/units/nvs/nvgpu-nvs.c b/userspace/units/nvs/nvgpu-nvs.c index 00c415519..f3ad2cfba 100644 --- a/userspace/units/nvs/nvgpu-nvs.c +++ b/userspace/units/nvs/nvgpu-nvs.c @@ -332,7 +332,6 @@ int test_nvs_setup_sw(struct unit_module *m, NVGPU_SETUP_BIND_FLAGS_USERMODE_SUPPORT; nvgpu_set_enabled(g, NVGPU_SUPPORT_NVS, true); - nvgpu_set_enabled(g, NVGPU_SUPPORT_NVS_CTRL_FIFO, true); err = nvgpu_nvs_init(g);