Subversion Repositories Kolibri OS

Rev

Rev 1119 | Rev 1125 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1119 Rev 1120
Line 30... Line 30...
30
#include "radeon_drm.h"
30
#include "radeon_drm.h"
31
#include "radeon_reg.h"
31
#include "radeon_reg.h"
32
#include "radeon.h"
32
#include "radeon.h"
33
#include "atom.h"
33
#include "atom.h"
Line 34... Line -...
34
 
-
 
Line 35... Line -...
35
extern void * ring_buffer;
-
 
36
 
34
 
Line 37... Line 35...
37
#if 0
35
 
38
int radeon_debugfs_ib_init(struct radeon_device *rdev);
36
int radeon_debugfs_ib_init(struct radeon_device *rdev);
39
 
37
 
-
 
38
/*
-
 
39
 * IB.
-
 
40
 */
40
/*
41
 
41
 * IB.
42
#if 0
42
 */
43
 
43
int radeon_ib_get(struct radeon_device *rdev, struct radeon_ib **ib)
44
int radeon_ib_get(struct radeon_device *rdev, struct radeon_ib **ib)
44
{
45
{
Line 96... Line 97...
96
		(*ib)->fence = fence;
97
		(*ib)->fence = fence;
97
	}
98
	}
98
	return r;
99
	return r;
99
}
100
}
Line -... Line 101...
-
 
101
 
100
 
102
 
101
void radeon_ib_free(struct radeon_device *rdev, struct radeon_ib **ib)
103
void radeon_ib_free(struct radeon_device *rdev, struct radeon_ib **ib)
102
{
104
{
Line 103... Line 105...
103
	struct radeon_ib *tmp = *ib;
105
	struct radeon_ib *tmp = *ib;
Line 168... Line 170...
168
	radeon_ring_unlock_commit(rdev);
170
	radeon_ring_unlock_commit(rdev);
169
	list_add_tail(&ib->list, &rdev->ib_pool.scheduled_ibs);
171
	list_add_tail(&ib->list, &rdev->ib_pool.scheduled_ibs);
170
	mutex_unlock(&rdev->ib_pool.mutex);
172
	mutex_unlock(&rdev->ib_pool.mutex);
171
	return 0;
173
	return 0;
172
}
174
}
-
 
175
#endif
Line 173... Line 176...
173
 
176
 
174
int radeon_ib_pool_init(struct radeon_device *rdev)
177
int radeon_ib_pool_init(struct radeon_device *rdev)
175
{
178
{
176
	void *ptr;
179
	void *ptr;
Line 208... Line 211...
208
		INIT_LIST_HEAD(&rdev->ib_pool.ibs[i].list);
211
		INIT_LIST_HEAD(&rdev->ib_pool.ibs[i].list);
209
	}
212
	}
210
	bitmap_zero(rdev->ib_pool.alloc_bm, RADEON_IB_POOL_SIZE);
213
	bitmap_zero(rdev->ib_pool.alloc_bm, RADEON_IB_POOL_SIZE);
211
	rdev->ib_pool.ready = true;
214
	rdev->ib_pool.ready = true;
212
	DRM_INFO("radeon: ib pool ready.\n");
215
	DRM_INFO("radeon: ib pool ready.\n");
213
	if (radeon_debugfs_ib_init(rdev)) {
216
//   if (radeon_debugfs_ib_init(rdev)) {
214
		DRM_ERROR("Failed to register debugfs file for IB !\n");
217
//       DRM_ERROR("Failed to register debugfs file for IB !\n");
215
	}
218
//   }
216
	return r;
219
	return r;
217
}
220
}
Line 218... Line 221...
218
 
221
 
219
void radeon_ib_pool_fini(struct radeon_device *rdev)
222
void radeon_ib_pool_fini(struct radeon_device *rdev)
220
{
223
{
221
	if (!rdev->ib_pool.ready) {
224
	if (!rdev->ib_pool.ready) {
222
		return;
225
		return;
223
	}
226
	}
224
	mutex_lock(&rdev->ib_pool.mutex);
227
//   mutex_lock(&rdev->ib_pool.mutex);
225
	bitmap_zero(rdev->ib_pool.alloc_bm, RADEON_IB_POOL_SIZE);
228
	bitmap_zero(rdev->ib_pool.alloc_bm, RADEON_IB_POOL_SIZE);
226
	if (rdev->ib_pool.robj) {
229
	if (rdev->ib_pool.robj) {
227
		radeon_object_kunmap(rdev->ib_pool.robj);
230
//       radeon_object_kunmap(rdev->ib_pool.robj);
228
		radeon_object_unref(&rdev->ib_pool.robj);
231
//       radeon_object_unref(&rdev->ib_pool.robj);
229
		rdev->ib_pool.robj = NULL;
232
		rdev->ib_pool.robj = NULL;
230
	}
233
	}
231
	mutex_unlock(&rdev->ib_pool.mutex);
234
//   mutex_unlock(&rdev->ib_pool.mutex);
Line -... Line 235...
-
 
235
}
-
 
236
 
232
}
237
#if 0
233
 
238
 
234
int radeon_ib_test(struct radeon_device *rdev)
239
int radeon_ib_test(struct radeon_device *rdev)
235
{
240
{
236
	struct radeon_ib *ib;
241
	struct radeon_ib *ib;
Line 400... Line 405...
400
 
405
 
401
 
406
 
Line 402... Line -...
402
int radeon_gart_bind(struct radeon_device *rdev, unsigned offset,
-
 
Line 403... Line 407...
403
             int pages, u32_t *pagelist);
407
int radeon_gart_bind(struct radeon_device *rdev, unsigned offset,
404
 
408
             int pages, u32_t *pagelist);
405
#define page_tabs  0xFDC00000
409
 
Line 406... Line 410...
406
 
410
 
Line 407... Line 411...
407
 
411
 
Line 408... Line -...
408
int radeon_ring_init(struct radeon_device *rdev, unsigned ring_size)
-
 
409
{
412
int radeon_ring_init(struct radeon_device *rdev, unsigned ring_size)
410
	int r;
413
{
411
 
414
	int r;
412
    dbgprintf("%s\n",__FUNCTION__);
415
 
413
 
416
    dbgprintf("%s\n",__FUNCTION__);
Line 440... Line 443...
440
			DRM_ERROR("radeon: failed to map ring buffer (%d).\n", r);
443
			DRM_ERROR("radeon: failed to map ring buffer (%d).\n", r);
441
      //     mutex_unlock(&rdev->cp.mutex);
444
      //     mutex_unlock(&rdev->cp.mutex);
442
			return r;
445
			return r;
443
		}
446
		}
444
	}
447
	}
445
#endif
-
 
Line 446... Line -...
446
 
-
 
447
    dbgprintf("ring size %x\n", ring_size);
-
 
448
 
-
 
Line 449... Line 448...
449
    dbgprintf("ring buffer %x\n", rdev->cp.ring );
448
 
Line 450... Line 449...
450
 
449
 
Line 451... Line 450...
451
    rdev->cp.ring  = ring_buffer; //CreateRingBuffer( ring_size, PG_SW );
450
//    rdev->cp.ring  = CreateRingBuffer( ring_size, PG_SW );
Line 452... Line 451...
452
 
451
 
Line 453... Line 452...
453
    dbgprintf("ring buffer %x\n", rdev->cp.ring );
452
    dbgprintf("ring buffer %x\n", rdev->cp.ring );
Line 454... Line 453...
454
 
453
 
Line 455... Line 454...
455
    rdev->cp.gpu_addr = rdev->mc.gtt_location;
454
//    rdev->cp.gpu_addr = rdev->mc.gtt_location;
456
 
455
 
Line 457... Line 456...
457
    u32_t *pagelist =  &((u32_t*)page_tabs)[(u32_t)rdev->cp.ring >> 12];
456
 //   u32_t *pagelist =  &((u32_t*)page_tabs)[(u32_t)rdev->cp.ring >> 12];