diff --git a/drivers/gpu/nvgpu/common/linux/ioctl_ctrl.c b/drivers/gpu/nvgpu/common/linux/ioctl_ctrl.c index b751a3377..398823f3e 100644 --- a/drivers/gpu/nvgpu/common/linux/ioctl_ctrl.c +++ b/drivers/gpu/nvgpu/common/linux/ioctl_ctrl.c @@ -172,6 +172,8 @@ static struct nvgpu_flags_mapping flags_mapping[] = { NVGPU_ECC_ENABLED_LTC}, {NVGPU_GPU_FLAGS_SUPPORT_TSG_SUBCONTEXTS, NVGPU_SUPPORT_TSG_SUBCONTEXTS}, + {NVGPU_GPU_FLAGS_SUPPORT_SCG, + NVGPU_SUPPORT_SCG}, }; static u64 nvgpu_ctrl_ioctl_gpu_characteristics_flags(struct gk20a *g) diff --git a/drivers/gpu/nvgpu/common/linux/vgpu/gv11b/vgpu_gv11b.c b/drivers/gpu/nvgpu/common/linux/vgpu/gv11b/vgpu_gv11b.c index 749e9e816..285268a6e 100644 --- a/drivers/gpu/nvgpu/common/linux/vgpu/gv11b/vgpu_gv11b.c +++ b/drivers/gpu/nvgpu/common/linux/vgpu/gv11b/vgpu_gv11b.c @@ -35,6 +35,7 @@ int vgpu_gv11b_init_gpu_characteristics(struct gk20a *g) __nvgpu_set_enabled(g, NVGPU_SUPPORT_TSG_SUBCONTEXTS, true); __nvgpu_set_enabled(g, NVGPU_SUPPORT_IO_COHERENCE, true); + __nvgpu_set_enabled(g, NVGPU_SUPPORT_SCG, true); return 0; } diff --git a/drivers/gpu/nvgpu/gv11b/gv11b.c b/drivers/gpu/nvgpu/gv11b/gv11b.c index 709f18dfc..ab4b7fcde 100644 --- a/drivers/gpu/nvgpu/gv11b/gv11b.c +++ b/drivers/gpu/nvgpu/gv11b/gv11b.c @@ -153,5 +153,6 @@ int gv11b_init_gpu_characteristics(struct gk20a *g) gk20a_init_gpu_characteristics(g); __nvgpu_set_enabled(g, NVGPU_SUPPORT_TSG_SUBCONTEXTS, true); __nvgpu_set_enabled(g, NVGPU_SUPPORT_IO_COHERENCE, true); + __nvgpu_set_enabled(g, NVGPU_SUPPORT_SCG, true); return 0; } diff --git a/drivers/gpu/nvgpu/include/nvgpu/enabled.h b/drivers/gpu/nvgpu/include/nvgpu/enabled.h index 4d8dbb08f..edf38a6a8 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/enabled.h +++ b/drivers/gpu/nvgpu/include/nvgpu/enabled.h @@ -150,10 +150,12 @@ struct gk20a; #define NVGPU_SUPPORT_ASPM 62 /* subcontexts are available */ #define NVGPU_SUPPORT_TSG_SUBCONTEXTS 63 +/* Simultaneous Compute and Graphics (SCG) is available */ +#define NVGPU_SUPPORT_SCG 64 /* * Must be greater than the largest bit offset in the above list. */ -#define NVGPU_MAX_ENABLED_BITS 64 +#define NVGPU_MAX_ENABLED_BITS 65 /** * nvgpu_is_enabled - Check if the passed flag is enabled. diff --git a/include/uapi/linux/nvgpu.h b/include/uapi/linux/nvgpu.h index 4ee6a459e..95acc63ca 100644 --- a/include/uapi/linux/nvgpu.h +++ b/include/uapi/linux/nvgpu.h @@ -152,6 +152,8 @@ struct nvgpu_gpu_zbc_query_table_args { #define NVGPU_GPU_FLAGS_SUPPORT_MAP_DIRECT_KIND_CTRL (1ULL << 23) /* NVGPU_GPU_IOCTL_SET_DETERMINISTIC_OPTS is available */ #define NVGPU_GPU_FLAGS_SUPPORT_DETERMINISTIC_OPTS (1ULL << 24) +/* SCG support is available */ +#define NVGPU_GPU_FLAGS_SUPPORT_SCG (1ULL << 25) /* SM LRF ECC is enabled */ #define NVGPU_GPU_FLAGS_ECC_ENABLED_SM_LRF (1ULL << 60) /* SM SHM ECC is enabled */