Commit f712812e authored by Alex Deucher's avatar Alex Deucher Committed by Dave Airlie

drm/radeon/kms: make ring_start, ring_test, and ib_test per ring

Each ring type may need a different variant.
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Reviewed-by: Christian König<christian.koenig@amd.com>
Reviewed-by: default avatarMichel Dänzer <michel.daenzer@amd.com>
Reviewed-by: default avatarJerome Glisse <jglisse@redhat.com>
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent dfb276f0
...@@ -1539,7 +1539,7 @@ int evergreen_cp_resume(struct radeon_device *rdev) ...@@ -1539,7 +1539,7 @@ int evergreen_cp_resume(struct radeon_device *rdev)
evergreen_cp_start(rdev); evergreen_cp_start(rdev);
ring->ready = true; ring->ready = true;
r = radeon_ring_test(rdev, ring); r = radeon_ring_test(rdev, RADEON_RING_TYPE_GFX_INDEX, ring);
if (r) { if (r) {
ring->ready = false; ring->ready = false;
return r; return r;
...@@ -3237,7 +3237,7 @@ static int evergreen_startup(struct radeon_device *rdev) ...@@ -3237,7 +3237,7 @@ static int evergreen_startup(struct radeon_device *rdev)
if (r) if (r)
return r; return r;
r = r600_ib_test(rdev, RADEON_RING_TYPE_GFX_INDEX); r = radeon_ib_test(rdev, RADEON_RING_TYPE_GFX_INDEX, &rdev->ring[RADEON_RING_TYPE_GFX_INDEX]);
if (r) { if (r) {
DRM_ERROR("radeon: failed testing IB (%d).\n", r); DRM_ERROR("radeon: failed testing IB (%d).\n", r);
rdev->accel_working = false; rdev->accel_working = false;
......
...@@ -1318,7 +1318,7 @@ int cayman_cp_resume(struct radeon_device *rdev) ...@@ -1318,7 +1318,7 @@ int cayman_cp_resume(struct radeon_device *rdev)
rdev->ring[CAYMAN_RING_TYPE_CP1_INDEX].ready = false; rdev->ring[CAYMAN_RING_TYPE_CP1_INDEX].ready = false;
rdev->ring[CAYMAN_RING_TYPE_CP2_INDEX].ready = false; rdev->ring[CAYMAN_RING_TYPE_CP2_INDEX].ready = false;
/* this only test cp0 */ /* this only test cp0 */
r = radeon_ring_test(rdev, &rdev->ring[RADEON_RING_TYPE_GFX_INDEX]); r = radeon_ring_test(rdev, RADEON_RING_TYPE_GFX_INDEX, &rdev->ring[RADEON_RING_TYPE_GFX_INDEX]);
if (r) { if (r) {
rdev->ring[RADEON_RING_TYPE_GFX_INDEX].ready = false; rdev->ring[RADEON_RING_TYPE_GFX_INDEX].ready = false;
rdev->ring[CAYMAN_RING_TYPE_CP1_INDEX].ready = false; rdev->ring[CAYMAN_RING_TYPE_CP1_INDEX].ready = false;
...@@ -1518,7 +1518,7 @@ static int cayman_startup(struct radeon_device *rdev) ...@@ -1518,7 +1518,7 @@ static int cayman_startup(struct radeon_device *rdev)
if (r) if (r)
return r; return r;
r = r600_ib_test(rdev, RADEON_RING_TYPE_GFX_INDEX); r = radeon_ib_test(rdev, RADEON_RING_TYPE_GFX_INDEX, &rdev->ring[RADEON_RING_TYPE_GFX_INDEX]);
if (r) { if (r) {
DRM_ERROR("radeon: failed testing IB (%d).\n", r); DRM_ERROR("radeon: failed testing IB (%d).\n", r);
rdev->accel_working = false; rdev->accel_working = false;
......
...@@ -970,9 +970,8 @@ static int r100_cp_wait_for_idle(struct radeon_device *rdev) ...@@ -970,9 +970,8 @@ static int r100_cp_wait_for_idle(struct radeon_device *rdev)
return -1; return -1;
} }
void r100_ring_start(struct radeon_device *rdev) void r100_ring_start(struct radeon_device *rdev, struct radeon_ring *ring)
{ {
struct radeon_ring *ring = &rdev->ring[RADEON_RING_TYPE_GFX_INDEX];
int r; int r;
r = radeon_ring_lock(rdev, ring, 2); r = radeon_ring_lock(rdev, ring, 2);
...@@ -1183,8 +1182,8 @@ int r100_cp_init(struct radeon_device *rdev, unsigned ring_size) ...@@ -1183,8 +1182,8 @@ int r100_cp_init(struct radeon_device *rdev, unsigned ring_size)
WREG32(RADEON_CP_RB_WPTR_DELAY, 0); WREG32(RADEON_CP_RB_WPTR_DELAY, 0);
WREG32(RADEON_CP_CSQ_MODE, 0x00004D4D); WREG32(RADEON_CP_CSQ_MODE, 0x00004D4D);
WREG32(RADEON_CP_CSQ_CNTL, RADEON_CSQ_PRIBM_INDBM); WREG32(RADEON_CP_CSQ_CNTL, RADEON_CSQ_PRIBM_INDBM);
radeon_ring_start(rdev); radeon_ring_start(rdev, RADEON_RING_TYPE_GFX_INDEX, &rdev->ring[RADEON_RING_TYPE_GFX_INDEX]);
r = radeon_ring_test(rdev, ring); r = radeon_ring_test(rdev, RADEON_RING_TYPE_GFX_INDEX, ring);
if (r) { if (r) {
DRM_ERROR("radeon: cp isn't working (%d).\n", r); DRM_ERROR("radeon: cp isn't working (%d).\n", r);
return r; return r;
...@@ -3743,7 +3742,7 @@ void r100_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib) ...@@ -3743,7 +3742,7 @@ void r100_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib)
radeon_ring_write(ring, ib->length_dw); radeon_ring_write(ring, ib->length_dw);
} }
int r100_ib_test(struct radeon_device *rdev) int r100_ib_test(struct radeon_device *rdev, struct radeon_ring *ring)
{ {
struct radeon_ib *ib; struct radeon_ib *ib;
uint32_t scratch; uint32_t scratch;
...@@ -3968,7 +3967,7 @@ static int r100_startup(struct radeon_device *rdev) ...@@ -3968,7 +3967,7 @@ static int r100_startup(struct radeon_device *rdev)
if (r) if (r)
return r; return r;
r = r100_ib_test(rdev); r = radeon_ib_test(rdev, RADEON_RING_TYPE_GFX_INDEX, &rdev->ring[RADEON_RING_TYPE_GFX_INDEX]);
if (r) { if (r) {
dev_err(rdev->dev, "failed testing IB (%d).\n", r); dev_err(rdev->dev, "failed testing IB (%d).\n", r);
rdev->accel_working = false; rdev->accel_working = false;
......
...@@ -206,9 +206,8 @@ void r300_fence_ring_emit(struct radeon_device *rdev, ...@@ -206,9 +206,8 @@ void r300_fence_ring_emit(struct radeon_device *rdev,
radeon_ring_write(ring, RADEON_SW_INT_FIRE); radeon_ring_write(ring, RADEON_SW_INT_FIRE);
} }
void r300_ring_start(struct radeon_device *rdev) void r300_ring_start(struct radeon_device *rdev, struct radeon_ring *ring)
{ {
struct radeon_ring *ring = &rdev->ring[RADEON_RING_TYPE_GFX_INDEX];
unsigned gb_tile_config; unsigned gb_tile_config;
int r; int r;
...@@ -1419,7 +1418,7 @@ static int r300_startup(struct radeon_device *rdev) ...@@ -1419,7 +1418,7 @@ static int r300_startup(struct radeon_device *rdev)
if (r) if (r)
return r; return r;
r = r100_ib_test(rdev); r = radeon_ib_test(rdev, RADEON_RING_TYPE_GFX_INDEX, &rdev->ring[RADEON_RING_TYPE_GFX_INDEX]);
if (r) { if (r) {
dev_err(rdev->dev, "failed testing IB (%d).\n", r); dev_err(rdev->dev, "failed testing IB (%d).\n", r);
rdev->accel_working = false; rdev->accel_working = false;
......
...@@ -279,7 +279,7 @@ static int r420_startup(struct radeon_device *rdev) ...@@ -279,7 +279,7 @@ static int r420_startup(struct radeon_device *rdev)
if (r) if (r)
return r; return r;
r = r100_ib_test(rdev); r = radeon_ib_test(rdev, RADEON_RING_TYPE_GFX_INDEX, &rdev->ring[RADEON_RING_TYPE_GFX_INDEX]);
if (r) { if (r) {
dev_err(rdev->dev, "failed testing IB (%d).\n", r); dev_err(rdev->dev, "failed testing IB (%d).\n", r);
rdev->accel_working = false; rdev->accel_working = false;
......
...@@ -207,7 +207,7 @@ static int r520_startup(struct radeon_device *rdev) ...@@ -207,7 +207,7 @@ static int r520_startup(struct radeon_device *rdev)
if (r) if (r)
return r; return r;
r = r100_ib_test(rdev); r = radeon_ib_test(rdev, RADEON_RING_TYPE_GFX_INDEX, &rdev->ring[RADEON_RING_TYPE_GFX_INDEX]);
if (r) { if (r) {
dev_err(rdev->dev, "failed testing IB (%d).\n", r); dev_err(rdev->dev, "failed testing IB (%d).\n", r);
rdev->accel_working = false; rdev->accel_working = false;
......
...@@ -2226,7 +2226,7 @@ int r600_cp_resume(struct radeon_device *rdev) ...@@ -2226,7 +2226,7 @@ int r600_cp_resume(struct radeon_device *rdev)
r600_cp_start(rdev); r600_cp_start(rdev);
ring->ready = true; ring->ready = true;
r = radeon_ring_test(rdev, ring); r = radeon_ring_test(rdev, RADEON_RING_TYPE_GFX_INDEX, ring);
if (r) { if (r) {
ring->ready = false; ring->ready = false;
return r; return r;
...@@ -2490,7 +2490,7 @@ int r600_startup(struct radeon_device *rdev) ...@@ -2490,7 +2490,7 @@ int r600_startup(struct radeon_device *rdev)
if (r) if (r)
return r; return r;
r = r600_ib_test(rdev, RADEON_RING_TYPE_GFX_INDEX); r = radeon_ib_test(rdev, RADEON_RING_TYPE_GFX_INDEX, &rdev->ring[RADEON_RING_TYPE_GFX_INDEX]);
if (r) { if (r) {
DRM_ERROR("radeon: failed testing IB (%d).\n", r); DRM_ERROR("radeon: failed testing IB (%d).\n", r);
rdev->accel_working = false; rdev->accel_working = false;
...@@ -2697,13 +2697,14 @@ void r600_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib) ...@@ -2697,13 +2697,14 @@ void r600_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib)
radeon_ring_write(ring, ib->length_dw); radeon_ring_write(ring, ib->length_dw);
} }
int r600_ib_test(struct radeon_device *rdev, int ring) int r600_ib_test(struct radeon_device *rdev, struct radeon_ring *ring)
{ {
struct radeon_ib *ib; struct radeon_ib *ib;
uint32_t scratch; uint32_t scratch;
uint32_t tmp = 0; uint32_t tmp = 0;
unsigned i; unsigned i;
int r; int r;
int ring_index = radeon_ring_index(rdev, ring);
r = radeon_scratch_get(rdev, &scratch); r = radeon_scratch_get(rdev, &scratch);
if (r) { if (r) {
...@@ -2711,7 +2712,7 @@ int r600_ib_test(struct radeon_device *rdev, int ring) ...@@ -2711,7 +2712,7 @@ int r600_ib_test(struct radeon_device *rdev, int ring)
return r; return r;
} }
WREG32(scratch, 0xCAFEDEAD); WREG32(scratch, 0xCAFEDEAD);
r = radeon_ib_get(rdev, ring, &ib, 256); r = radeon_ib_get(rdev, ring_index, &ib, 256);
if (r) { if (r) {
DRM_ERROR("radeon: failed to get ib (%d).\n", r); DRM_ERROR("radeon: failed to get ib (%d).\n", r);
return r; return r;
......
...@@ -783,7 +783,6 @@ int radeon_ib_pool_init(struct radeon_device *rdev); ...@@ -783,7 +783,6 @@ int radeon_ib_pool_init(struct radeon_device *rdev);
void radeon_ib_pool_fini(struct radeon_device *rdev); void radeon_ib_pool_fini(struct radeon_device *rdev);
int radeon_ib_pool_start(struct radeon_device *rdev); int radeon_ib_pool_start(struct radeon_device *rdev);
int radeon_ib_pool_suspend(struct radeon_device *rdev); int radeon_ib_pool_suspend(struct radeon_device *rdev);
int radeon_ib_test(struct radeon_device *rdev);
/* Ring access between begin & end cannot sleep */ /* Ring access between begin & end cannot sleep */
int radeon_ring_index(struct radeon_device *rdev, struct radeon_ring *cp); int radeon_ring_index(struct radeon_device *rdev, struct radeon_ring *cp);
void radeon_ring_free_size(struct radeon_device *rdev, struct radeon_ring *cp); void radeon_ring_free_size(struct radeon_device *rdev, struct radeon_ring *cp);
...@@ -1136,8 +1135,6 @@ struct radeon_asic { ...@@ -1136,8 +1135,6 @@ struct radeon_asic {
int (*asic_reset)(struct radeon_device *rdev); int (*asic_reset)(struct radeon_device *rdev);
void (*gart_tlb_flush)(struct radeon_device *rdev); void (*gart_tlb_flush)(struct radeon_device *rdev);
int (*gart_set_page)(struct radeon_device *rdev, int i, uint64_t addr); int (*gart_set_page)(struct radeon_device *rdev, int i, uint64_t addr);
void (*ring_start)(struct radeon_device *rdev);
struct { struct {
void (*ib_execute)(struct radeon_device *rdev, struct radeon_ib *ib); void (*ib_execute)(struct radeon_device *rdev, struct radeon_ib *ib);
int (*ib_parse)(struct radeon_device *rdev, struct radeon_ib *ib); int (*ib_parse)(struct radeon_device *rdev, struct radeon_ib *ib);
...@@ -1145,9 +1142,10 @@ struct radeon_asic { ...@@ -1145,9 +1142,10 @@ struct radeon_asic {
void (*emit_semaphore)(struct radeon_device *rdev, struct radeon_ring *cp, void (*emit_semaphore)(struct radeon_device *rdev, struct radeon_ring *cp,
struct radeon_semaphore *semaphore, bool emit_wait); struct radeon_semaphore *semaphore, bool emit_wait);
int (*cs_parse)(struct radeon_cs_parser *p); int (*cs_parse)(struct radeon_cs_parser *p);
} ring[RADEON_NUM_RINGS]; void (*ring_start)(struct radeon_device *rdev, struct radeon_ring *cp);
int (*ring_test)(struct radeon_device *rdev, struct radeon_ring *cp); int (*ring_test)(struct radeon_device *rdev, struct radeon_ring *cp);
int (*ib_test)(struct radeon_device *rdev, struct radeon_ring *cp);
} ring[RADEON_NUM_RINGS];
struct { struct {
int (*set)(struct radeon_device *rdev); int (*set)(struct radeon_device *rdev);
...@@ -1677,8 +1675,9 @@ void radeon_ring_write(struct radeon_ring *ring, uint32_t v); ...@@ -1677,8 +1675,9 @@ void radeon_ring_write(struct radeon_ring *ring, uint32_t v);
#define radeon_asic_reset(rdev) (rdev)->asic->asic_reset((rdev)) #define radeon_asic_reset(rdev) (rdev)->asic->asic_reset((rdev))
#define radeon_gart_tlb_flush(rdev) (rdev)->asic->gart_tlb_flush((rdev)) #define radeon_gart_tlb_flush(rdev) (rdev)->asic->gart_tlb_flush((rdev))
#define radeon_gart_set_page(rdev, i, p) (rdev)->asic->gart_set_page((rdev), (i), (p)) #define radeon_gart_set_page(rdev, i, p) (rdev)->asic->gart_set_page((rdev), (i), (p))
#define radeon_ring_start(rdev) (rdev)->asic->ring_start((rdev)) #define radeon_ring_start(rdev, r, cp) (rdev)->asic->ring[(r)].ring_start((rdev), (cp))
#define radeon_ring_test(rdev, cp) (rdev)->asic->ring_test((rdev), (cp)) #define radeon_ring_test(rdev, r, cp) (rdev)->asic->ring[(r)].ring_test((rdev), (cp))
#define radeon_ib_test(rdev, r, cp) (rdev)->asic->ring[(r)].ib_test((rdev), (cp))
#define radeon_ring_ib_execute(rdev, r, ib) (rdev)->asic->ring[(r)].ib_execute((rdev), (ib)) #define radeon_ring_ib_execute(rdev, r, ib) (rdev)->asic->ring[(r)].ib_execute((rdev), (ib))
#define radeon_ring_ib_parse(rdev, r, ib) (rdev)->asic->ring[(r)].ib_parse((rdev), (ib)) #define radeon_ring_ib_parse(rdev, r, ib) (rdev)->asic->ring[(r)].ib_parse((rdev), (ib))
#define radeon_irq_set(rdev) (rdev)->asic->irq.set((rdev)) #define radeon_irq_set(rdev) (rdev)->asic->irq.set((rdev))
......
This diff is collapsed.
...@@ -63,7 +63,7 @@ int r100_asic_reset(struct radeon_device *rdev); ...@@ -63,7 +63,7 @@ int r100_asic_reset(struct radeon_device *rdev);
u32 r100_get_vblank_counter(struct radeon_device *rdev, int crtc); u32 r100_get_vblank_counter(struct radeon_device *rdev, int crtc);
void r100_pci_gart_tlb_flush(struct radeon_device *rdev); void r100_pci_gart_tlb_flush(struct radeon_device *rdev);
int r100_pci_gart_set_page(struct radeon_device *rdev, int i, uint64_t addr); int r100_pci_gart_set_page(struct radeon_device *rdev, int i, uint64_t addr);
void r100_ring_start(struct radeon_device *rdev); void r100_ring_start(struct radeon_device *rdev, struct radeon_ring *ring);
int r100_irq_set(struct radeon_device *rdev); int r100_irq_set(struct radeon_device *rdev);
int r100_irq_process(struct radeon_device *rdev); int r100_irq_process(struct radeon_device *rdev);
void r100_fence_ring_emit(struct radeon_device *rdev, void r100_fence_ring_emit(struct radeon_device *rdev,
...@@ -109,7 +109,7 @@ bool r100_gpu_cp_is_lockup(struct radeon_device *rdev, ...@@ -109,7 +109,7 @@ bool r100_gpu_cp_is_lockup(struct radeon_device *rdev,
struct r100_gpu_lockup *lockup, struct r100_gpu_lockup *lockup,
struct radeon_ring *cp); struct radeon_ring *cp);
void r100_ib_fini(struct radeon_device *rdev); void r100_ib_fini(struct radeon_device *rdev);
int r100_ib_test(struct radeon_device *rdev); int r100_ib_test(struct radeon_device *rdev, struct radeon_ring *ring);
void r100_irq_disable(struct radeon_device *rdev); void r100_irq_disable(struct radeon_device *rdev);
void r100_mc_stop(struct radeon_device *rdev, struct r100_mc_save *save); void r100_mc_stop(struct radeon_device *rdev, struct r100_mc_save *save);
void r100_mc_resume(struct radeon_device *rdev, struct r100_mc_save *save); void r100_mc_resume(struct radeon_device *rdev, struct r100_mc_save *save);
...@@ -161,7 +161,7 @@ extern int r300_suspend(struct radeon_device *rdev); ...@@ -161,7 +161,7 @@ extern int r300_suspend(struct radeon_device *rdev);
extern int r300_resume(struct radeon_device *rdev); extern int r300_resume(struct radeon_device *rdev);
extern bool r300_gpu_is_lockup(struct radeon_device *rdev, struct radeon_ring *cp); extern bool r300_gpu_is_lockup(struct radeon_device *rdev, struct radeon_ring *cp);
extern int r300_asic_reset(struct radeon_device *rdev); extern int r300_asic_reset(struct radeon_device *rdev);
extern void r300_ring_start(struct radeon_device *rdev); extern void r300_ring_start(struct radeon_device *rdev, struct radeon_ring *ring);
extern void r300_fence_ring_emit(struct radeon_device *rdev, extern void r300_fence_ring_emit(struct radeon_device *rdev,
struct radeon_fence *fence); struct radeon_fence *fence);
extern int r300_cs_parse(struct radeon_cs_parser *p); extern int r300_cs_parse(struct radeon_cs_parser *p);
...@@ -273,7 +273,7 @@ int rv515_init(struct radeon_device *rdev); ...@@ -273,7 +273,7 @@ int rv515_init(struct radeon_device *rdev);
void rv515_fini(struct radeon_device *rdev); void rv515_fini(struct radeon_device *rdev);
uint32_t rv515_mc_rreg(struct radeon_device *rdev, uint32_t reg); uint32_t rv515_mc_rreg(struct radeon_device *rdev, uint32_t reg);
void rv515_mc_wreg(struct radeon_device *rdev, uint32_t reg, uint32_t v); void rv515_mc_wreg(struct radeon_device *rdev, uint32_t reg, uint32_t v);
void rv515_ring_start(struct radeon_device *rdev); void rv515_ring_start(struct radeon_device *rdev, struct radeon_ring *ring);
void rv515_bandwidth_update(struct radeon_device *rdev); void rv515_bandwidth_update(struct radeon_device *rdev);
int rv515_resume(struct radeon_device *rdev); int rv515_resume(struct radeon_device *rdev);
int rv515_suspend(struct radeon_device *rdev); int rv515_suspend(struct radeon_device *rdev);
...@@ -319,7 +319,7 @@ int r600_set_surface_reg(struct radeon_device *rdev, int reg, ...@@ -319,7 +319,7 @@ int r600_set_surface_reg(struct radeon_device *rdev, int reg,
uint32_t tiling_flags, uint32_t pitch, uint32_t tiling_flags, uint32_t pitch,
uint32_t offset, uint32_t obj_size); uint32_t offset, uint32_t obj_size);
void r600_clear_surface_reg(struct radeon_device *rdev, int reg); void r600_clear_surface_reg(struct radeon_device *rdev, int reg);
int r600_ib_test(struct radeon_device *rdev, int ring); int r600_ib_test(struct radeon_device *rdev, struct radeon_ring *ring);
void r600_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib); void r600_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib);
int r600_ring_test(struct radeon_device *rdev, struct radeon_ring *cp); int r600_ring_test(struct radeon_device *rdev, struct radeon_ring *cp);
int r600_copy_blit(struct radeon_device *rdev, int r600_copy_blit(struct radeon_device *rdev,
......
...@@ -430,7 +430,7 @@ static int rs400_startup(struct radeon_device *rdev) ...@@ -430,7 +430,7 @@ static int rs400_startup(struct radeon_device *rdev)
if (r) if (r)
return r; return r;
r = r100_ib_test(rdev); r = radeon_ib_test(rdev, RADEON_RING_TYPE_GFX_INDEX, &rdev->ring[RADEON_RING_TYPE_GFX_INDEX]);
if (r) { if (r) {
dev_err(rdev->dev, "failed testing IB (%d).\n", r); dev_err(rdev->dev, "failed testing IB (%d).\n", r);
rdev->accel_working = false; rdev->accel_working = false;
......
...@@ -885,7 +885,7 @@ static int rs600_startup(struct radeon_device *rdev) ...@@ -885,7 +885,7 @@ static int rs600_startup(struct radeon_device *rdev)
if (r) if (r)
return r; return r;
r = r100_ib_test(rdev); r = radeon_ib_test(rdev, RADEON_RING_TYPE_GFX_INDEX, &rdev->ring[RADEON_RING_TYPE_GFX_INDEX]);
if (r) { if (r) {
dev_err(rdev->dev, "failed testing IB (%d).\n", r); dev_err(rdev->dev, "failed testing IB (%d).\n", r);
rdev->accel_working = false; rdev->accel_working = false;
......
...@@ -647,7 +647,7 @@ static int rs690_startup(struct radeon_device *rdev) ...@@ -647,7 +647,7 @@ static int rs690_startup(struct radeon_device *rdev)
if (r) if (r)
return r; return r;
r = r100_ib_test(rdev); r = radeon_ib_test(rdev, RADEON_RING_TYPE_GFX_INDEX, &rdev->ring[RADEON_RING_TYPE_GFX_INDEX]);
if (r) { if (r) {
dev_err(rdev->dev, "failed testing IB (%d).\n", r); dev_err(rdev->dev, "failed testing IB (%d).\n", r);
rdev->accel_working = false; rdev->accel_working = false;
......
...@@ -53,9 +53,8 @@ void rv515_debugfs(struct radeon_device *rdev) ...@@ -53,9 +53,8 @@ void rv515_debugfs(struct radeon_device *rdev)
} }
} }
void rv515_ring_start(struct radeon_device *rdev) void rv515_ring_start(struct radeon_device *rdev, struct radeon_ring *ring)
{ {
struct radeon_ring *ring = &rdev->ring[RADEON_RING_TYPE_GFX_INDEX];
int r; int r;
r = radeon_ring_lock(rdev, ring, 64); r = radeon_ring_lock(rdev, ring, 64);
...@@ -413,7 +412,7 @@ static int rv515_startup(struct radeon_device *rdev) ...@@ -413,7 +412,7 @@ static int rv515_startup(struct radeon_device *rdev)
if (r) if (r)
return r; return r;
r = r100_ib_test(rdev); r = radeon_ib_test(rdev, RADEON_RING_TYPE_GFX_INDEX, &rdev->ring[RADEON_RING_TYPE_GFX_INDEX]);
if (r) { if (r) {
dev_err(rdev->dev, "failed testing IB (%d).\n", r); dev_err(rdev->dev, "failed testing IB (%d).\n", r);
rdev->accel_working = false; rdev->accel_working = false;
......
...@@ -1114,7 +1114,7 @@ static int rv770_startup(struct radeon_device *rdev) ...@@ -1114,7 +1114,7 @@ static int rv770_startup(struct radeon_device *rdev)
if (r) if (r)
return r; return r;
r = r600_ib_test(rdev, RADEON_RING_TYPE_GFX_INDEX); r = radeon_ib_test(rdev, RADEON_RING_TYPE_GFX_INDEX, &rdev->ring[RADEON_RING_TYPE_GFX_INDEX]);
if (r) { if (r) {
dev_err(rdev->dev, "IB test failed (%d).\n", r); dev_err(rdev->dev, "IB test failed (%d).\n", r);
rdev->accel_working = false; rdev->accel_working = false;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment