commit deac30c2a10cfa133514e0576fc45da877b1ad7a Author: Jaime Velasco Juan Date: Sat Jan 4 12:29:43 2014 +0000 Disable DMA ring in R6xx diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c index bf0792c..288f7ed 100644 --- a/drivers/gpu/drm/radeon/r600.c +++ b/drivers/gpu/drm/radeon/r600.c @@ -2825,11 +2825,13 @@ static int r600_startup(struct radeon_device *rdev) return r; } + /* r = radeon_fence_driver_start_ring(rdev, R600_RING_TYPE_DMA_INDEX); if (r) { dev_err(rdev->dev, "failed initializing DMA fences (%d).\n", r); return r; } + */ /* Enable IRQ */ if (!rdev->irq.installed) { @@ -2852,11 +2854,13 @@ static int r600_startup(struct radeon_device *rdev) if (r) return r; + /* ring = &rdev->ring[R600_RING_TYPE_DMA_INDEX]; r = radeon_ring_init(rdev, ring, ring->ring_size, R600_WB_DMA_RPTR_OFFSET, DMA_PACKET(DMA_PACKET_NOP, 0, 0, 0)); if (r) return r; + */ r = r600_cp_load_microcode(rdev); if (r) @@ -2865,9 +2869,11 @@ static int r600_startup(struct radeon_device *rdev) if (r) return r; + /* r = r600_dma_resume(rdev); if (r) return r; + */ r = radeon_ib_pool_init(rdev); if (r) { @@ -2927,7 +2933,7 @@ int r600_suspend(struct radeon_device *rdev) radeon_pm_suspend(rdev); r600_audio_fini(rdev); r600_cp_stop(rdev); - r600_dma_stop(rdev); + /*r600_dma_stop(rdev);*/ r600_irq_suspend(rdev); radeon_wb_disable(rdev); r600_pcie_gart_disable(rdev); @@ -3007,8 +3013,10 @@ int r600_init(struct radeon_device *rdev) rdev->ring[RADEON_RING_TYPE_GFX_INDEX].ring_obj = NULL; r600_ring_init(rdev, &rdev->ring[RADEON_RING_TYPE_GFX_INDEX], 1024 * 1024); + /* rdev->ring[R600_RING_TYPE_DMA_INDEX].ring_obj = NULL; r600_ring_init(rdev, &rdev->ring[R600_RING_TYPE_DMA_INDEX], 64 * 1024); + */ rdev->ih.ring_obj = NULL; r600_ih_ring_init(rdev, 64 * 1024); @@ -3022,7 +3030,7 @@ int r600_init(struct radeon_device *rdev) if (r) { dev_err(rdev->dev, "disabling GPU acceleration\n"); r600_cp_fini(rdev); - r600_dma_fini(rdev); + /*r600_dma_fini(rdev);*/ r600_irq_fini(rdev); radeon_wb_fini(rdev); radeon_ib_pool_fini(rdev); @@ -3039,7 +3047,7 @@ void r600_fini(struct radeon_device *rdev) radeon_pm_fini(rdev); r600_audio_fini(rdev); r600_cp_fini(rdev); - r600_dma_fini(rdev); + /*r600_dma_fini(rdev);*/ r600_irq_fini(rdev); radeon_wb_fini(rdev); radeon_ib_pool_fini(rdev); diff --git a/drivers/gpu/drm/radeon/radeon_asic.c b/drivers/gpu/drm/radeon/radeon_asic.c index f74db43..be300ac 100644 --- a/drivers/gpu/drm/radeon/radeon_asic.c +++ b/drivers/gpu/drm/radeon/radeon_asic.c @@ -992,7 +992,7 @@ static struct radeon_asic rv6xx_asic = { }, .ring = { [RADEON_RING_TYPE_GFX_INDEX] = &r600_gfx_ring, - [R600_RING_TYPE_DMA_INDEX] = &r600_dma_ring, + //[R600_RING_TYPE_DMA_INDEX] = &r600_dma_ring, }, .irq = { .set = &r600_irq_set, diff --git a/drivers/gpu/drm/radeon/radeon_cs.c b/drivers/gpu/drm/radeon/radeon_cs.c index a8e3342..e10c97a 100644 --- a/drivers/gpu/drm/radeon/radeon_cs.c +++ b/drivers/gpu/drm/radeon/radeon_cs.c @@ -139,7 +139,9 @@ static int radeon_cs_get_ring(struct radeon_cs_parser *p, u32 ring, s32 priority else p->ring = CAYMAN_RING_TYPE_DMA1_INDEX; } else if (p->rdev->family >= CHIP_R600) { - p->ring = R600_RING_TYPE_DMA_INDEX; + return -EINVAL; + /*p->ring = R600_RING_TYPE_DMA_INDEX;*/ } else { return -EINVAL; }