diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/gk20a.c')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.c b/drivers/gpu/nvgpu/gk20a/gk20a.c index 8ea2929f..7f110821 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gk20a.c | |||
@@ -461,6 +461,25 @@ int gk20a_init_gpu_characteristics(struct gk20a *g) | |||
461 | if (gk20a_platform_has_syncpoints(g)) | 461 | if (gk20a_platform_has_syncpoints(g)) |
462 | gpu->flags |= NVGPU_GPU_FLAGS_HAS_SYNCPOINTS; | 462 | gpu->flags |= NVGPU_GPU_FLAGS_HAS_SYNCPOINTS; |
463 | 463 | ||
464 | /* | ||
465 | * Railgating needs job tracking which prevents fast submits. They're | ||
466 | * supported otherwise, provided that the user doesn't request anything | ||
467 | * that depends on job tracking. (Here, fast means strictly no | ||
468 | * metadata, just the gpfifo contents are copied and gp_put updated). | ||
469 | */ | ||
470 | if (!platform->can_railgate) | ||
471 | gpu->flags |= NVGPU_GPU_FLAGS_SUPPORT_DETERMINISTIC_SUBMIT_NO_JOBTRACKING; | ||
472 | |||
473 | /* | ||
474 | * Railgating and sync framework require deferred job cleanup which | ||
475 | * prevents deterministic submits. They're supported otherwise, | ||
476 | * provided that the user doesn't request anything that depends on | ||
477 | * deferred cleanup. | ||
478 | */ | ||
479 | if (!platform->can_railgate | ||
480 | && !gk20a_channel_sync_needs_sync_framework(g)) | ||
481 | gpu->flags |= NVGPU_GPU_FLAGS_SUPPORT_DETERMINISTIC_SUBMIT_FULL; | ||
482 | |||
464 | gpu->flags |= NVGPU_GPU_FLAGS_SUPPORT_USERSPACE_MANAGED_AS; | 483 | gpu->flags |= NVGPU_GPU_FLAGS_SUPPORT_USERSPACE_MANAGED_AS; |
465 | gpu->flags |= NVGPU_GPU_FLAGS_SUPPORT_TSG; | 484 | gpu->flags |= NVGPU_GPU_FLAGS_SUPPORT_TSG; |
466 | gpu->flags |= NVGPU_GPU_FLAGS_SUPPORT_MAP_COMPBITS; | 485 | gpu->flags |= NVGPU_GPU_FLAGS_SUPPORT_MAP_COMPBITS; |