Rev 1963 | Rev 2005 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1963 | Rev 2004 | ||
---|---|---|---|
Line 36... | Line 36... | ||
36 | int radeon_debugfs_ib_init(struct radeon_device *rdev); |
36 | int radeon_debugfs_ib_init(struct radeon_device *rdev); |
Line 37... | Line 37... | ||
37 | 37 | ||
38 | /* |
38 | /* |
39 | * IB. |
39 | * IB. |
40 | */ |
- | |
41 | - | ||
42 | #if 0 |
- | |
43 | 40 | */ |
|
44 | int radeon_ib_get(struct radeon_device *rdev, struct radeon_ib **ib) |
41 | int radeon_ib_get(struct radeon_device *rdev, struct radeon_ib **ib) |
45 | { |
42 | { |
46 | struct radeon_fence *fence; |
43 | struct radeon_fence *fence; |
47 | struct radeon_ib *nib; |
44 | struct radeon_ib *nib; |
Line 72... | Line 69... | ||
72 | radeon_fence_unref(&fence); |
69 | radeon_fence_unref(&fence); |
73 | return -EBUSY; |
70 | return -EBUSY; |
74 | } |
71 | } |
75 | rdev->ib_pool.head_id = (nib->idx + 1) & (RADEON_IB_POOL_SIZE - 1); |
72 | rdev->ib_pool.head_id = (nib->idx + 1) & (RADEON_IB_POOL_SIZE - 1); |
76 | nib->free = false; |
73 | nib->free = false; |
77 | if (nib->fence) { |
74 | // if (nib->fence) { |
78 | mutex_unlock(&rdev->ib_pool.mutex); |
75 | // mutex_unlock(&rdev->ib_pool.mutex); |
79 | r = radeon_fence_wait(nib->fence, false); |
76 | // r = radeon_fence_wait(nib->fence, false); |
80 | if (r) { |
77 | // if (r) { |
81 | dev_err(rdev->dev, "error waiting fence of IB(%u:0x%016lX:%u)\n", |
78 | // dev_err(rdev->dev, "error waiting fence of IB(%u:0x%016lX:%u)\n", |
82 | nib->idx, (unsigned long)nib->gpu_addr, nib->length_dw); |
79 | // nib->idx, (unsigned long)nib->gpu_addr, nib->length_dw); |
83 | mutex_lock(&rdev->ib_pool.mutex); |
80 | // mutex_lock(&rdev->ib_pool.mutex); |
84 | nib->free = true; |
81 | // nib->free = true; |
85 | mutex_unlock(&rdev->ib_pool.mutex); |
82 | // mutex_unlock(&rdev->ib_pool.mutex); |
86 | radeon_fence_unref(&fence); |
83 | // radeon_fence_unref(&fence); |
87 | return r; |
84 | // return r; |
88 | } |
85 | // } |
89 | mutex_lock(&rdev->ib_pool.mutex); |
86 | // mutex_lock(&rdev->ib_pool.mutex); |
90 | } |
87 | // } |
91 | radeon_fence_unref(&nib->fence); |
88 | radeon_fence_unref(&nib->fence); |
92 | nib->fence = fence; |
89 | nib->fence = fence; |
93 | nib->length_dw = 0; |
90 | nib->length_dw = 0; |
94 | mutex_unlock(&rdev->ib_pool.mutex); |
91 | mutex_unlock(&rdev->ib_pool.mutex); |
95 | *ib = nib; |
92 | *ib = nib; |
Line 134... | Line 131... | ||
134 | ib->free = true; |
131 | ib->free = true; |
135 | mutex_unlock(&rdev->ib_pool.mutex); |
132 | mutex_unlock(&rdev->ib_pool.mutex); |
136 | radeon_ring_unlock_commit(rdev); |
133 | radeon_ring_unlock_commit(rdev); |
137 | return 0; |
134 | return 0; |
138 | } |
135 | } |
139 | #endif |
- | |
Line 140... | Line 136... | ||
140 | 136 | ||
141 | int radeon_ib_pool_init(struct radeon_device *rdev) |
137 | int radeon_ib_pool_init(struct radeon_device *rdev) |
142 | { |
138 | { |
143 | void *ptr; |
139 | void *ptr; |