diff options
author | Deepak Nibade <dnibade@nvidia.com> | 2018-02-13 07:02:38 -0500 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2018-02-26 06:48:11 -0500 |
commit | 8d5536271f989e01018a543016340a3d76a2fae2 (patch) | |
tree | c4981034e75b1933862b35518157c0897027e2b7 /drivers/gpu/nvgpu/common/linux/nvhost.c | |
parent | 180604fec0bde1710923e78a3877d49892cbf883 (diff) |
gpu: nvgpu: add user API to get a syncpoint
Add new user API NVGPU_IOCTL_CHANNEL_GET_USER_SYNCPOINT which will expose
per-channel allocated syncpoint to user space
API will also return current value of the syncpoint
On supported platforms, this API will also return a RW semaphore address
(corresponding to syncpoint shim) to user space
Add new characteristics flag NVGPU_GPU_FLAGS_SUPPORT_USER_SYNCPOINT to indicate
support for this new API
Add new flag NVGPU_SUPPORT_USER_SYNCPOINT for use of core driver
Set this flag for GV11B and GP10B for now
Add a new API (*syncpt_address) in struct gk20a_channel_sync to get GPU_VA
address of a syncpoint
Add new API nvgpu_nvhost_syncpt_read_maxval() which will read and return MAX
value of syncpoint
Bug 200326065
Jira NVGPU-179
Change-Id: I9da6f17b85996f4fc6731c0bf94fca6f3181c3e0
Signed-off-by: Deepak Nibade <dnibade@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1658009
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Konsta Holtta <kholtta@nvidia.com>
Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/common/linux/nvhost.c')
-rw-r--r-- | drivers/gpu/nvgpu/common/linux/nvhost.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/common/linux/nvhost.c b/drivers/gpu/nvgpu/common/linux/nvhost.c index e0f83612..94bbfd70 100644 --- a/drivers/gpu/nvgpu/common/linux/nvhost.c +++ b/drivers/gpu/nvgpu/common/linux/nvhost.c | |||
@@ -152,6 +152,12 @@ int nvgpu_nvhost_syncpt_read_ext_check( | |||
152 | return nvhost_syncpt_read_ext_check(nvhost_dev->host1x_pdev, id, val); | 152 | return nvhost_syncpt_read_ext_check(nvhost_dev->host1x_pdev, id, val); |
153 | } | 153 | } |
154 | 154 | ||
155 | u32 nvgpu_nvhost_syncpt_read_maxval( | ||
156 | struct nvgpu_nvhost_dev *nvhost_dev, u32 id) | ||
157 | { | ||
158 | return nvhost_syncpt_read_maxval(nvhost_dev->host1x_pdev, id); | ||
159 | } | ||
160 | |||
155 | int nvgpu_nvhost_create_symlink(struct gk20a *g) | 161 | int nvgpu_nvhost_create_symlink(struct gk20a *g) |
156 | { | 162 | { |
157 | struct device *dev = dev_from_gk20a(g); | 163 | struct device *dev = dev_from_gk20a(g); |