Rev 6104 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 6104 | Rev 6938 | ||
---|---|---|---|
Line 109... | Line 109... | ||
109 | */ |
109 | */ |
110 | int radeon_fence_emit(struct radeon_device *rdev, |
110 | int radeon_fence_emit(struct radeon_device *rdev, |
111 | struct radeon_fence **fence, |
111 | struct radeon_fence **fence, |
112 | int ring) |
112 | int ring) |
113 | { |
113 | { |
114 | u64 seq = ++rdev->fence_drv[ring].sync_seq[ring]; |
114 | u64 seq; |
Line 115... | Line 115... | ||
115 | 115 | ||
116 | /* we are protected by the ring emission mutex */ |
116 | /* we are protected by the ring emission mutex */ |
117 | *fence = kmalloc(sizeof(struct radeon_fence), GFP_KERNEL); |
117 | *fence = kmalloc(sizeof(struct radeon_fence), GFP_KERNEL); |
118 | if ((*fence) == NULL) { |
118 | if ((*fence) == NULL) { |
119 | return -ENOMEM; |
119 | return -ENOMEM; |
120 | } |
120 | } |
121 | (*fence)->rdev = rdev; |
121 | (*fence)->rdev = rdev; |
122 | (*fence)->seq = seq; |
122 | (*fence)->seq = seq = ++rdev->fence_drv[ring].sync_seq[ring]; |
123 | (*fence)->ring = ring; |
123 | (*fence)->ring = ring; |
124 | (*fence)->is_vm_update = false; |
124 | (*fence)->is_vm_update = false; |
125 | fence_init(&(*fence)->base, &radeon_fence_ops, |
125 | fence_init(&(*fence)->base, &radeon_fence_ops, |
126 | &rdev->fence_queue.lock, rdev->fence_context + ring, seq); |
126 | &rdev->fence_queue.lock, rdev->fence_context + ring, seq); |