diff options
Diffstat (limited to 'drivers/gpu/nvgpu/common/linux')
-rw-r--r-- | drivers/gpu/nvgpu/common/linux/channel.c | 22 |
1 files changed, 1 insertions, 21 deletions
diff --git a/drivers/gpu/nvgpu/common/linux/channel.c b/drivers/gpu/nvgpu/common/linux/channel.c index 35fb3023..a725cd6b 100644 --- a/drivers/gpu/nvgpu/common/linux/channel.c +++ b/drivers/gpu/nvgpu/common/linux/channel.c | |||
@@ -720,8 +720,7 @@ int gk20a_submit_channel_gpfifo(struct channel_gk20a *c, | |||
720 | return -EINVAL; | 720 | return -EINVAL; |
721 | 721 | ||
722 | if ((flags & (NVGPU_SUBMIT_GPFIFO_FLAGS_FENCE_WAIT | | 722 | if ((flags & (NVGPU_SUBMIT_GPFIFO_FLAGS_FENCE_WAIT | |
723 | NVGPU_SUBMIT_GPFIFO_FLAGS_FENCE_GET | | 723 | NVGPU_SUBMIT_GPFIFO_FLAGS_FENCE_GET)) && |
724 | NVGPU_SUBMIT_GPFIFO_FLAGS_USER_FENCE_UPDATE)) && | ||
725 | !fence) | 724 | !fence) |
726 | return -EINVAL; | 725 | return -EINVAL; |
727 | 726 | ||
@@ -758,16 +757,6 @@ int gk20a_submit_channel_gpfifo(struct channel_gk20a *c, | |||
758 | (g->can_railgate && !c->deterministic) || | 757 | (g->can_railgate && !c->deterministic) || |
759 | !skip_buffer_refcounting; | 758 | !skip_buffer_refcounting; |
760 | 759 | ||
761 | /* | ||
762 | * If User is adding increments to the pushbuffer and doing all job | ||
763 | * tracking, then no need for kernel tracking here | ||
764 | * User should ensure that all pre-requisites for fast submit are met | ||
765 | * Fail the submit if that's not the case | ||
766 | */ | ||
767 | if (need_job_tracking && | ||
768 | (flags & NVGPU_SUBMIT_GPFIFO_FLAGS_USER_FENCE_UPDATE)) | ||
769 | return -EINVAL; | ||
770 | |||
771 | if (need_job_tracking) { | 760 | if (need_job_tracking) { |
772 | bool need_sync_framework = false; | 761 | bool need_sync_framework = false; |
773 | 762 | ||
@@ -879,15 +868,6 @@ int gk20a_submit_channel_gpfifo(struct channel_gk20a *c, | |||
879 | goto clean_up; | 868 | goto clean_up; |
880 | } | 869 | } |
881 | 870 | ||
882 | if (flags & NVGPU_SUBMIT_GPFIFO_FLAGS_USER_FENCE_UPDATE) { | ||
883 | /* | ||
884 | * User space adds increments in the pushbuffer, so just | ||
885 | * handle the threshold book keeping in kernel by adding | ||
886 | * number of syncpoint increments to threshold | ||
887 | */ | ||
888 | c->sync->add_user_incrs(c->sync, fence->value); | ||
889 | } | ||
890 | |||
891 | if (need_job_tracking) { | 871 | if (need_job_tracking) { |
892 | err = channel_gk20a_alloc_job(c, &job); | 872 | err = channel_gk20a_alloc_job(c, &job); |
893 | if (err) | 873 | if (err) |