Subversion Repositories Kolibri OS

Rev

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;