summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/channel_sync_gk20a.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/channel_sync_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/channel_sync_gk20a.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/channel_sync_gk20a.c b/drivers/gpu/nvgpu/gk20a/channel_sync_gk20a.c
index e965a329..18d61faa 100644
--- a/drivers/gpu/nvgpu/gk20a/channel_sync_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/channel_sync_gk20a.c
@@ -301,6 +301,13 @@ static u64 gk20a_channel_syncpt_address(struct gk20a_channel_sync *s)
301 return sp->syncpt_buf.gpu_va; 301 return sp->syncpt_buf.gpu_va;
302} 302}
303 303
304static u32 gk20a_channel_add_user_incrs(struct gk20a_channel_sync *s, u32 val)
305{
306 struct gk20a_channel_syncpt *sp =
307 container_of(s, struct gk20a_channel_syncpt, ops);
308 return nvgpu_nvhost_syncpt_incr_max_ext(sp->nvhost_dev, sp->id, val);
309}
310
304static void gk20a_channel_syncpt_destroy(struct gk20a_channel_sync *s) 311static void gk20a_channel_syncpt_destroy(struct gk20a_channel_sync *s)
305{ 312{
306 struct gk20a_channel_syncpt *sp = 313 struct gk20a_channel_syncpt *sp =
@@ -353,6 +360,7 @@ gk20a_channel_syncpt_create(struct channel_gk20a *c)
353 sp->ops.signal_timeline = gk20a_channel_syncpt_signal_timeline; 360 sp->ops.signal_timeline = gk20a_channel_syncpt_signal_timeline;
354 sp->ops.syncpt_id = gk20a_channel_syncpt_id; 361 sp->ops.syncpt_id = gk20a_channel_syncpt_id;
355 sp->ops.syncpt_address = gk20a_channel_syncpt_address; 362 sp->ops.syncpt_address = gk20a_channel_syncpt_address;
363 sp->ops.add_user_incrs = gk20a_channel_add_user_incrs;
356 sp->ops.destroy = gk20a_channel_syncpt_destroy; 364 sp->ops.destroy = gk20a_channel_syncpt_destroy;
357 365
358 return &sp->ops; 366 return &sp->ops;
@@ -878,6 +886,12 @@ static u64 gk20a_channel_semaphore_syncpt_address(struct gk20a_channel_sync *s)
878 return 0; 886 return 0;
879} 887}
880 888
889static u32 gk20a_channel_semaphore_add_user_incrs(struct gk20a_channel_sync *s,
890 u32 val)
891{
892 return 0;
893}
894
881static void gk20a_channel_semaphore_destroy(struct gk20a_channel_sync *s) 895static void gk20a_channel_semaphore_destroy(struct gk20a_channel_sync *s)
882{ 896{
883 struct gk20a_channel_semaphore *sema = 897 struct gk20a_channel_semaphore *sema =
@@ -930,6 +944,7 @@ gk20a_channel_semaphore_create(struct channel_gk20a *c)
930 sema->ops.signal_timeline = gk20a_channel_semaphore_signal_timeline; 944 sema->ops.signal_timeline = gk20a_channel_semaphore_signal_timeline;
931 sema->ops.syncpt_id = gk20a_channel_semaphore_syncpt_id; 945 sema->ops.syncpt_id = gk20a_channel_semaphore_syncpt_id;
932 sema->ops.syncpt_address = gk20a_channel_semaphore_syncpt_address; 946 sema->ops.syncpt_address = gk20a_channel_semaphore_syncpt_address;
947 sema->ops.add_user_incrs = gk20a_channel_semaphore_add_user_incrs;
933 sema->ops.destroy = gk20a_channel_semaphore_destroy; 948 sema->ops.destroy = gk20a_channel_semaphore_destroy;
934 949
935 return &sema->ops; 950 return &sema->ops;