Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 1118 → Rev 1119

/drivers/video/drm/radeon/radeon_ring.c
32,6 → 32,8
#include "radeon.h"
#include "atom.h"
 
extern void * ring_buffer;
 
#if 0
int radeon_debugfs_ib_init(struct radeon_device *rdev);
 
287,7 → 289,6
 
#endif
 
 
/*
* Ring.
*/
360,7 → 361,7
unsigned i;
int r;
 
dbgprintf("%s\n\r",__FUNCTION__);
dbgprintf("%s\n",__FUNCTION__);
 
r = radeon_scratch_get(rdev, &scratch);
if (r) {
377,7 → 378,7
radeon_ring_write(rdev, PACKET0(scratch, 0));
radeon_ring_write(rdev, 0xDEADBEEF);
radeon_ring_unlock_commit(rdev);
for (i = 0; i < rdev->usec_timeout; i++) {
for (i = 0; i < 100000; i++) {
tmp = RREG32(scratch);
if (tmp == 0xDEADBEEF) {
break;
384,7 → 385,7
}
DRM_UDELAY(1);
}
if (i < rdev->usec_timeout) {
if (i < 100000) {
DRM_INFO("ring test succeeded in %d usecs\n", i);
} else {
DRM_ERROR("radeon: ring test failed (sracth(0x%04X)=0x%08X)\n",
392,15 → 393,23
r = -EINVAL;
}
radeon_scratch_free(rdev, scratch);
 
dbgprintf("done %s\n",__FUNCTION__);
return r;
}
 
 
int radeon_gart_bind(struct radeon_device *rdev, unsigned offset,
int pages, u32_t *pagelist);
 
#define page_tabs 0xFDC00000
 
 
int radeon_ring_init(struct radeon_device *rdev, unsigned ring_size)
{
int r;
 
dbgprintf("%s\n\r",__FUNCTION__);
dbgprintf("%s\n",__FUNCTION__);
 
rdev->cp.ring_size = ring_size;
 
435,10 → 444,27
}
#endif
 
rdev->cp.ring = CreateRingBuffer( ring_size, PG_SW);
rdev->cp.gpu_addr = GetPgAddr(rdev->cp.ring);
dbgprintf("ring size %x\n", ring_size);
 
dbgprintf("ring buffer %x\n", rdev->cp.ring );
 
rdev->cp.ring = ring_buffer; //CreateRingBuffer( ring_size, PG_SW );
 
dbgprintf("ring buffer %x\n", rdev->cp.ring );
 
rdev->cp.gpu_addr = rdev->mc.gtt_location;
 
u32_t *pagelist = &((u32_t*)page_tabs)[(u32_t)rdev->cp.ring >> 12];
 
dbgprintf("pagelist %x\n", pagelist);
 
radeon_gart_bind(rdev, 0, ring_size / 4096, pagelist);
 
rdev->cp.ptr_mask = (rdev->cp.ring_size / 4) - 1;
rdev->cp.ring_free_dw = rdev->cp.ring_size / 4;
 
dbgprintf("done %s\n",__FUNCTION__);
 
return 0;
}