diff options
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon.h')
-rw-r--r-- | drivers/gpu/drm/radeon/radeon.h | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h index b9ee99258602..2fe2f6332d44 100644 --- a/drivers/gpu/drm/radeon/radeon.h +++ b/drivers/gpu/drm/radeon/radeon.h | |||
@@ -348,6 +348,7 @@ int radeon_fence_emit(struct radeon_device *rdev, struct radeon_fence **fence, i | |||
348 | void radeon_fence_process(struct radeon_device *rdev, int ring); | 348 | void radeon_fence_process(struct radeon_device *rdev, int ring); |
349 | bool radeon_fence_signaled(struct radeon_fence *fence); | 349 | bool radeon_fence_signaled(struct radeon_fence *fence); |
350 | int radeon_fence_wait(struct radeon_fence *fence, bool interruptible); | 350 | int radeon_fence_wait(struct radeon_fence *fence, bool interruptible); |
351 | int radeon_fence_wait_locked(struct radeon_fence *fence); | ||
351 | int radeon_fence_wait_next_locked(struct radeon_device *rdev, int ring); | 352 | int radeon_fence_wait_next_locked(struct radeon_device *rdev, int ring); |
352 | int radeon_fence_wait_empty_locked(struct radeon_device *rdev, int ring); | 353 | int radeon_fence_wait_empty_locked(struct radeon_device *rdev, int ring); |
353 | int radeon_fence_wait_any(struct radeon_device *rdev, | 354 | int radeon_fence_wait_any(struct radeon_device *rdev, |
@@ -548,17 +549,20 @@ struct radeon_semaphore { | |||
548 | struct radeon_sa_bo *sa_bo; | 549 | struct radeon_sa_bo *sa_bo; |
549 | signed waiters; | 550 | signed waiters; |
550 | uint64_t gpu_addr; | 551 | uint64_t gpu_addr; |
552 | struct radeon_fence *sync_to[RADEON_NUM_RINGS]; | ||
551 | }; | 553 | }; |
552 | 554 | ||
553 | int radeon_semaphore_create(struct radeon_device *rdev, | 555 | int radeon_semaphore_create(struct radeon_device *rdev, |
554 | struct radeon_semaphore **semaphore); | 556 | struct radeon_semaphore **semaphore); |
555 | void radeon_semaphore_emit_signal(struct radeon_device *rdev, int ring, | 557 | bool radeon_semaphore_emit_signal(struct radeon_device *rdev, int ring, |
556 | struct radeon_semaphore *semaphore); | 558 | struct radeon_semaphore *semaphore); |
557 | void radeon_semaphore_emit_wait(struct radeon_device *rdev, int ring, | 559 | bool radeon_semaphore_emit_wait(struct radeon_device *rdev, int ring, |
558 | struct radeon_semaphore *semaphore); | 560 | struct radeon_semaphore *semaphore); |
561 | void radeon_semaphore_sync_to(struct radeon_semaphore *semaphore, | ||
562 | struct radeon_fence *fence); | ||
559 | int radeon_semaphore_sync_rings(struct radeon_device *rdev, | 563 | int radeon_semaphore_sync_rings(struct radeon_device *rdev, |
560 | struct radeon_semaphore *semaphore, | 564 | struct radeon_semaphore *semaphore, |
561 | int signaler, int waiter); | 565 | int waiting_ring); |
562 | void radeon_semaphore_free(struct radeon_device *rdev, | 566 | void radeon_semaphore_free(struct radeon_device *rdev, |
563 | struct radeon_semaphore **semaphore, | 567 | struct radeon_semaphore **semaphore, |
564 | struct radeon_fence *fence); | 568 | struct radeon_fence *fence); |
@@ -765,7 +769,6 @@ struct radeon_ib { | |||
765 | struct radeon_fence *fence; | 769 | struct radeon_fence *fence; |
766 | struct radeon_vm *vm; | 770 | struct radeon_vm *vm; |
767 | bool is_const_ib; | 771 | bool is_const_ib; |
768 | struct radeon_fence *sync_to[RADEON_NUM_RINGS]; | ||
769 | struct radeon_semaphore *semaphore; | 772 | struct radeon_semaphore *semaphore; |
770 | }; | 773 | }; |
771 | 774 | ||
@@ -921,7 +924,6 @@ int radeon_ib_get(struct radeon_device *rdev, int ring, | |||
921 | struct radeon_ib *ib, struct radeon_vm *vm, | 924 | struct radeon_ib *ib, struct radeon_vm *vm, |
922 | unsigned size); | 925 | unsigned size); |
923 | void radeon_ib_free(struct radeon_device *rdev, struct radeon_ib *ib); | 926 | void radeon_ib_free(struct radeon_device *rdev, struct radeon_ib *ib); |
924 | void radeon_ib_sync_to(struct radeon_ib *ib, struct radeon_fence *fence); | ||
925 | int radeon_ib_schedule(struct radeon_device *rdev, struct radeon_ib *ib, | 927 | int radeon_ib_schedule(struct radeon_device *rdev, struct radeon_ib *ib, |
926 | struct radeon_ib *const_ib); | 928 | struct radeon_ib *const_ib); |
927 | int radeon_ib_pool_init(struct radeon_device *rdev); | 929 | int radeon_ib_pool_init(struct radeon_device *rdev); |
@@ -1638,7 +1640,7 @@ struct radeon_asic_ring { | |||
1638 | /* command emmit functions */ | 1640 | /* command emmit functions */ |
1639 | void (*ib_execute)(struct radeon_device *rdev, struct radeon_ib *ib); | 1641 | void (*ib_execute)(struct radeon_device *rdev, struct radeon_ib *ib); |
1640 | void (*emit_fence)(struct radeon_device *rdev, struct radeon_fence *fence); | 1642 | void (*emit_fence)(struct radeon_device *rdev, struct radeon_fence *fence); |
1641 | void (*emit_semaphore)(struct radeon_device *rdev, struct radeon_ring *cp, | 1643 | bool (*emit_semaphore)(struct radeon_device *rdev, struct radeon_ring *cp, |
1642 | struct radeon_semaphore *semaphore, bool emit_wait); | 1644 | struct radeon_semaphore *semaphore, bool emit_wait); |
1643 | void (*vm_flush)(struct radeon_device *rdev, int ridx, struct radeon_vm *vm); | 1645 | void (*vm_flush)(struct radeon_device *rdev, int ridx, struct radeon_vm *vm); |
1644 | 1646 | ||