[PATCH 01/10] drm/radeon: remove radeon_fence_create

2012-06-01 Thread Christian König
It is completely unnecessary to create fences
before they are emitted, so remove it and a bunch
of checks if fences are emitted or not.

Signed-off-by: Christian K?nig 
Reviewed-by: Jerome Glisse 
---
 drivers/gpu/drm/radeon/evergreen.c|2 +-
 drivers/gpu/drm/radeon/ni.c   |2 +-
 drivers/gpu/drm/radeon/r100.c |4 +-
 drivers/gpu/drm/radeon/r200.c |4 +-
 drivers/gpu/drm/radeon/r600.c |4 +-
 drivers/gpu/drm/radeon/r600_blit_kms.c|6 +--
 drivers/gpu/drm/radeon/radeon.h   |   11 +++--
 drivers/gpu/drm/radeon/radeon_asic.h  |8 ++--
 drivers/gpu/drm/radeon/radeon_benchmark.c |   10 +
 drivers/gpu/drm/radeon/radeon_fence.c |   42 ++
 drivers/gpu/drm/radeon/radeon_ring.c  |   19 +
 drivers/gpu/drm/radeon/radeon_sa.c|2 +-
 drivers/gpu/drm/radeon/radeon_test.c  |   66 -
 drivers/gpu/drm/radeon/radeon_ttm.c   |   30 +
 drivers/gpu/drm/radeon/si.c   |6 +--
 15 files changed, 86 insertions(+), 130 deletions(-)

diff --git a/drivers/gpu/drm/radeon/evergreen.c 
b/drivers/gpu/drm/radeon/evergreen.c
index 58991af..dd3cea4 100644
--- a/drivers/gpu/drm/radeon/evergreen.c
+++ b/drivers/gpu/drm/radeon/evergreen.c
@@ -1366,7 +1366,7 @@ void evergreen_mc_program(struct radeon_device *rdev)
  */
 void evergreen_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib 
*ib)
 {
-   struct radeon_ring *ring = >ring[ib->fence->ring];
+   struct radeon_ring *ring = >ring[ib->ring];

/* set to DX10/11 mode */
radeon_ring_write(ring, PACKET3(PACKET3_MODE_CONTROL, 0));
diff --git a/drivers/gpu/drm/radeon/ni.c b/drivers/gpu/drm/radeon/ni.c
index b01c2dd..9d9f5ac 100644
--- a/drivers/gpu/drm/radeon/ni.c
+++ b/drivers/gpu/drm/radeon/ni.c
@@ -1127,7 +1127,7 @@ void cayman_fence_ring_emit(struct radeon_device *rdev,

 void cayman_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib)
 {
-   struct radeon_ring *ring = >ring[ib->fence->ring];
+   struct radeon_ring *ring = >ring[ib->ring];

/* set to DX10/11 mode */
radeon_ring_write(ring, PACKET3(PACKET3_MODE_CONTROL, 0));
diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c
index fb44e7e..415b7d8 100644
--- a/drivers/gpu/drm/radeon/r100.c
+++ b/drivers/gpu/drm/radeon/r100.c
@@ -883,7 +883,7 @@ int r100_copy_blit(struct radeon_device *rdev,
   uint64_t src_offset,
   uint64_t dst_offset,
   unsigned num_gpu_pages,
-  struct radeon_fence *fence)
+  struct radeon_fence **fence)
 {
struct radeon_ring *ring = >ring[RADEON_RING_TYPE_GFX_INDEX];
uint32_t cur_pages;
@@ -947,7 +947,7 @@ int r100_copy_blit(struct radeon_device *rdev,
  RADEON_WAIT_HOST_IDLECLEAN |
  RADEON_WAIT_DMA_GUI_IDLE);
if (fence) {
-   r = radeon_fence_emit(rdev, fence);
+   r = radeon_fence_emit(rdev, fence, RADEON_RING_TYPE_GFX_INDEX);
}
radeon_ring_unlock_commit(rdev, ring);
return r;
diff --git a/drivers/gpu/drm/radeon/r200.c b/drivers/gpu/drm/radeon/r200.c
index a26144d..f088925 100644
--- a/drivers/gpu/drm/radeon/r200.c
+++ b/drivers/gpu/drm/radeon/r200.c
@@ -85,7 +85,7 @@ int r200_copy_dma(struct radeon_device *rdev,
  uint64_t src_offset,
  uint64_t dst_offset,
  unsigned num_gpu_pages,
- struct radeon_fence *fence)
+ struct radeon_fence **fence)
 {
struct radeon_ring *ring = >ring[RADEON_RING_TYPE_GFX_INDEX];
uint32_t size;
@@ -120,7 +120,7 @@ int r200_copy_dma(struct radeon_device *rdev,
radeon_ring_write(ring, PACKET0(RADEON_WAIT_UNTIL, 0));
radeon_ring_write(ring, RADEON_WAIT_DMA_GUI_IDLE);
if (fence) {
-   r = radeon_fence_emit(rdev, fence);
+   r = radeon_fence_emit(rdev, fence, RADEON_RING_TYPE_GFX_INDEX);
}
radeon_ring_unlock_commit(rdev, ring);
return r;
diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c
index f388a1d..e5279f9 100644
--- a/drivers/gpu/drm/radeon/r600.c
+++ b/drivers/gpu/drm/radeon/r600.c
@@ -2369,7 +2369,7 @@ int r600_copy_blit(struct radeon_device *rdev,
   uint64_t src_offset,
   uint64_t dst_offset,
   unsigned num_gpu_pages,
-  struct radeon_fence *fence)
+  struct radeon_fence **fence)
 {
struct radeon_sa_bo *vb = NULL;
int r;
@@ -2670,7 +2670,7 @@ void r600_fini(struct radeon_device *rdev)
  */
 void r600_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib)
 {
-   struct radeon_ring *ring = >ring[ib->fence->ring];
+   struct radeon_ring *ring = >ring[ib->ring];

/* FIXME: implement */

[PATCH 01/10] drm/radeon: remove radeon_fence_create

2012-06-01 Thread Christian König
It is completely unnecessary to create fences
before they are emitted, so remove it and a bunch
of checks if fences are emitted or not.

Signed-off-by: Christian König deathsim...@vodafone.de
Reviewed-by: Jerome Glisse jgli...@redhat.com
---
 drivers/gpu/drm/radeon/evergreen.c|2 +-
 drivers/gpu/drm/radeon/ni.c   |2 +-
 drivers/gpu/drm/radeon/r100.c |4 +-
 drivers/gpu/drm/radeon/r200.c |4 +-
 drivers/gpu/drm/radeon/r600.c |4 +-
 drivers/gpu/drm/radeon/r600_blit_kms.c|6 +--
 drivers/gpu/drm/radeon/radeon.h   |   11 +++--
 drivers/gpu/drm/radeon/radeon_asic.h  |8 ++--
 drivers/gpu/drm/radeon/radeon_benchmark.c |   10 +
 drivers/gpu/drm/radeon/radeon_fence.c |   42 ++
 drivers/gpu/drm/radeon/radeon_ring.c  |   19 +
 drivers/gpu/drm/radeon/radeon_sa.c|2 +-
 drivers/gpu/drm/radeon/radeon_test.c  |   66 -
 drivers/gpu/drm/radeon/radeon_ttm.c   |   30 +
 drivers/gpu/drm/radeon/si.c   |6 +--
 15 files changed, 86 insertions(+), 130 deletions(-)

diff --git a/drivers/gpu/drm/radeon/evergreen.c 
b/drivers/gpu/drm/radeon/evergreen.c
index 58991af..dd3cea4 100644
--- a/drivers/gpu/drm/radeon/evergreen.c
+++ b/drivers/gpu/drm/radeon/evergreen.c
@@ -1366,7 +1366,7 @@ void evergreen_mc_program(struct radeon_device *rdev)
  */
 void evergreen_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib 
*ib)
 {
-   struct radeon_ring *ring = rdev-ring[ib-fence-ring];
+   struct radeon_ring *ring = rdev-ring[ib-ring];
 
/* set to DX10/11 mode */
radeon_ring_write(ring, PACKET3(PACKET3_MODE_CONTROL, 0));
diff --git a/drivers/gpu/drm/radeon/ni.c b/drivers/gpu/drm/radeon/ni.c
index b01c2dd..9d9f5ac 100644
--- a/drivers/gpu/drm/radeon/ni.c
+++ b/drivers/gpu/drm/radeon/ni.c
@@ -1127,7 +1127,7 @@ void cayman_fence_ring_emit(struct radeon_device *rdev,
 
 void cayman_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib)
 {
-   struct radeon_ring *ring = rdev-ring[ib-fence-ring];
+   struct radeon_ring *ring = rdev-ring[ib-ring];
 
/* set to DX10/11 mode */
radeon_ring_write(ring, PACKET3(PACKET3_MODE_CONTROL, 0));
diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c
index fb44e7e..415b7d8 100644
--- a/drivers/gpu/drm/radeon/r100.c
+++ b/drivers/gpu/drm/radeon/r100.c
@@ -883,7 +883,7 @@ int r100_copy_blit(struct radeon_device *rdev,
   uint64_t src_offset,
   uint64_t dst_offset,
   unsigned num_gpu_pages,
-  struct radeon_fence *fence)
+  struct radeon_fence **fence)
 {
struct radeon_ring *ring = rdev-ring[RADEON_RING_TYPE_GFX_INDEX];
uint32_t cur_pages;
@@ -947,7 +947,7 @@ int r100_copy_blit(struct radeon_device *rdev,
  RADEON_WAIT_HOST_IDLECLEAN |
  RADEON_WAIT_DMA_GUI_IDLE);
if (fence) {
-   r = radeon_fence_emit(rdev, fence);
+   r = radeon_fence_emit(rdev, fence, RADEON_RING_TYPE_GFX_INDEX);
}
radeon_ring_unlock_commit(rdev, ring);
return r;
diff --git a/drivers/gpu/drm/radeon/r200.c b/drivers/gpu/drm/radeon/r200.c
index a26144d..f088925 100644
--- a/drivers/gpu/drm/radeon/r200.c
+++ b/drivers/gpu/drm/radeon/r200.c
@@ -85,7 +85,7 @@ int r200_copy_dma(struct radeon_device *rdev,
  uint64_t src_offset,
  uint64_t dst_offset,
  unsigned num_gpu_pages,
- struct radeon_fence *fence)
+ struct radeon_fence **fence)
 {
struct radeon_ring *ring = rdev-ring[RADEON_RING_TYPE_GFX_INDEX];
uint32_t size;
@@ -120,7 +120,7 @@ int r200_copy_dma(struct radeon_device *rdev,
radeon_ring_write(ring, PACKET0(RADEON_WAIT_UNTIL, 0));
radeon_ring_write(ring, RADEON_WAIT_DMA_GUI_IDLE);
if (fence) {
-   r = radeon_fence_emit(rdev, fence);
+   r = radeon_fence_emit(rdev, fence, RADEON_RING_TYPE_GFX_INDEX);
}
radeon_ring_unlock_commit(rdev, ring);
return r;
diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c
index f388a1d..e5279f9 100644
--- a/drivers/gpu/drm/radeon/r600.c
+++ b/drivers/gpu/drm/radeon/r600.c
@@ -2369,7 +2369,7 @@ int r600_copy_blit(struct radeon_device *rdev,
   uint64_t src_offset,
   uint64_t dst_offset,
   unsigned num_gpu_pages,
-  struct radeon_fence *fence)
+  struct radeon_fence **fence)
 {
struct radeon_sa_bo *vb = NULL;
int r;
@@ -2670,7 +2670,7 @@ void r600_fini(struct radeon_device *rdev)
  */
 void r600_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib)
 {
-   struct radeon_ring *ring = rdev-ring[ib-fence-ring];
+   struct radeon_ring 

[PATCH 01/10] drm/radeon: remove radeon_fence_create

2012-05-31 Thread Christian König
It is completely unnecessary to create fences
before they are emitted, so remove it and a bunch
of checks if fences are emitted or not.

Signed-off-by: Christian K?nig 
---
 drivers/gpu/drm/radeon/evergreen.c|2 +-
 drivers/gpu/drm/radeon/ni.c   |2 +-
 drivers/gpu/drm/radeon/r100.c |4 +-
 drivers/gpu/drm/radeon/r200.c |4 +-
 drivers/gpu/drm/radeon/r600.c |4 +-
 drivers/gpu/drm/radeon/r600_blit_kms.c|6 +--
 drivers/gpu/drm/radeon/radeon.h   |   11 +++--
 drivers/gpu/drm/radeon/radeon_asic.h  |8 ++--
 drivers/gpu/drm/radeon/radeon_benchmark.c |   10 +
 drivers/gpu/drm/radeon/radeon_fence.c |   42 ++
 drivers/gpu/drm/radeon/radeon_ring.c  |   19 +
 drivers/gpu/drm/radeon/radeon_sa.c|2 +-
 drivers/gpu/drm/radeon/radeon_test.c  |   66 -
 drivers/gpu/drm/radeon/radeon_ttm.c   |   30 +
 drivers/gpu/drm/radeon/si.c   |6 +--
 15 files changed, 86 insertions(+), 130 deletions(-)

diff --git a/drivers/gpu/drm/radeon/evergreen.c 
b/drivers/gpu/drm/radeon/evergreen.c
index 58991af..dd3cea4 100644
--- a/drivers/gpu/drm/radeon/evergreen.c
+++ b/drivers/gpu/drm/radeon/evergreen.c
@@ -1366,7 +1366,7 @@ void evergreen_mc_program(struct radeon_device *rdev)
  */
 void evergreen_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib 
*ib)
 {
-   struct radeon_ring *ring = >ring[ib->fence->ring];
+   struct radeon_ring *ring = >ring[ib->ring];

/* set to DX10/11 mode */
radeon_ring_write(ring, PACKET3(PACKET3_MODE_CONTROL, 0));
diff --git a/drivers/gpu/drm/radeon/ni.c b/drivers/gpu/drm/radeon/ni.c
index b01c2dd..9d9f5ac 100644
--- a/drivers/gpu/drm/radeon/ni.c
+++ b/drivers/gpu/drm/radeon/ni.c
@@ -1127,7 +1127,7 @@ void cayman_fence_ring_emit(struct radeon_device *rdev,

 void cayman_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib)
 {
-   struct radeon_ring *ring = >ring[ib->fence->ring];
+   struct radeon_ring *ring = >ring[ib->ring];

/* set to DX10/11 mode */
radeon_ring_write(ring, PACKET3(PACKET3_MODE_CONTROL, 0));
diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c
index fb44e7e..415b7d8 100644
--- a/drivers/gpu/drm/radeon/r100.c
+++ b/drivers/gpu/drm/radeon/r100.c
@@ -883,7 +883,7 @@ int r100_copy_blit(struct radeon_device *rdev,
   uint64_t src_offset,
   uint64_t dst_offset,
   unsigned num_gpu_pages,
-  struct radeon_fence *fence)
+  struct radeon_fence **fence)
 {
struct radeon_ring *ring = >ring[RADEON_RING_TYPE_GFX_INDEX];
uint32_t cur_pages;
@@ -947,7 +947,7 @@ int r100_copy_blit(struct radeon_device *rdev,
  RADEON_WAIT_HOST_IDLECLEAN |
  RADEON_WAIT_DMA_GUI_IDLE);
if (fence) {
-   r = radeon_fence_emit(rdev, fence);
+   r = radeon_fence_emit(rdev, fence, RADEON_RING_TYPE_GFX_INDEX);
}
radeon_ring_unlock_commit(rdev, ring);
return r;
diff --git a/drivers/gpu/drm/radeon/r200.c b/drivers/gpu/drm/radeon/r200.c
index a26144d..f088925 100644
--- a/drivers/gpu/drm/radeon/r200.c
+++ b/drivers/gpu/drm/radeon/r200.c
@@ -85,7 +85,7 @@ int r200_copy_dma(struct radeon_device *rdev,
  uint64_t src_offset,
  uint64_t dst_offset,
  unsigned num_gpu_pages,
- struct radeon_fence *fence)
+ struct radeon_fence **fence)
 {
struct radeon_ring *ring = >ring[RADEON_RING_TYPE_GFX_INDEX];
uint32_t size;
@@ -120,7 +120,7 @@ int r200_copy_dma(struct radeon_device *rdev,
radeon_ring_write(ring, PACKET0(RADEON_WAIT_UNTIL, 0));
radeon_ring_write(ring, RADEON_WAIT_DMA_GUI_IDLE);
if (fence) {
-   r = radeon_fence_emit(rdev, fence);
+   r = radeon_fence_emit(rdev, fence, RADEON_RING_TYPE_GFX_INDEX);
}
radeon_ring_unlock_commit(rdev, ring);
return r;
diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c
index f388a1d..e5279f9 100644
--- a/drivers/gpu/drm/radeon/r600.c
+++ b/drivers/gpu/drm/radeon/r600.c
@@ -2369,7 +2369,7 @@ int r600_copy_blit(struct radeon_device *rdev,
   uint64_t src_offset,
   uint64_t dst_offset,
   unsigned num_gpu_pages,
-  struct radeon_fence *fence)
+  struct radeon_fence **fence)
 {
struct radeon_sa_bo *vb = NULL;
int r;
@@ -2670,7 +2670,7 @@ void r600_fini(struct radeon_device *rdev)
  */
 void r600_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib)
 {
-   struct radeon_ring *ring = >ring[ib->fence->ring];
+   struct radeon_ring *ring = >ring[ib->ring];

/* FIXME: implement */
radeon_ring_write(ring, 

[PATCH 01/10] drm/radeon: remove radeon_fence_create

2012-05-31 Thread Christian König
It is completely unnecessary to create fences
before they are emitted, so remove it and a bunch
of checks if fences are emitted or not.

Signed-off-by: Christian König deathsim...@vodafone.de
---
 drivers/gpu/drm/radeon/evergreen.c|2 +-
 drivers/gpu/drm/radeon/ni.c   |2 +-
 drivers/gpu/drm/radeon/r100.c |4 +-
 drivers/gpu/drm/radeon/r200.c |4 +-
 drivers/gpu/drm/radeon/r600.c |4 +-
 drivers/gpu/drm/radeon/r600_blit_kms.c|6 +--
 drivers/gpu/drm/radeon/radeon.h   |   11 +++--
 drivers/gpu/drm/radeon/radeon_asic.h  |8 ++--
 drivers/gpu/drm/radeon/radeon_benchmark.c |   10 +
 drivers/gpu/drm/radeon/radeon_fence.c |   42 ++
 drivers/gpu/drm/radeon/radeon_ring.c  |   19 +
 drivers/gpu/drm/radeon/radeon_sa.c|2 +-
 drivers/gpu/drm/radeon/radeon_test.c  |   66 -
 drivers/gpu/drm/radeon/radeon_ttm.c   |   30 +
 drivers/gpu/drm/radeon/si.c   |6 +--
 15 files changed, 86 insertions(+), 130 deletions(-)

diff --git a/drivers/gpu/drm/radeon/evergreen.c 
b/drivers/gpu/drm/radeon/evergreen.c
index 58991af..dd3cea4 100644
--- a/drivers/gpu/drm/radeon/evergreen.c
+++ b/drivers/gpu/drm/radeon/evergreen.c
@@ -1366,7 +1366,7 @@ void evergreen_mc_program(struct radeon_device *rdev)
  */
 void evergreen_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib 
*ib)
 {
-   struct radeon_ring *ring = rdev-ring[ib-fence-ring];
+   struct radeon_ring *ring = rdev-ring[ib-ring];
 
/* set to DX10/11 mode */
radeon_ring_write(ring, PACKET3(PACKET3_MODE_CONTROL, 0));
diff --git a/drivers/gpu/drm/radeon/ni.c b/drivers/gpu/drm/radeon/ni.c
index b01c2dd..9d9f5ac 100644
--- a/drivers/gpu/drm/radeon/ni.c
+++ b/drivers/gpu/drm/radeon/ni.c
@@ -1127,7 +1127,7 @@ void cayman_fence_ring_emit(struct radeon_device *rdev,
 
 void cayman_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib)
 {
-   struct radeon_ring *ring = rdev-ring[ib-fence-ring];
+   struct radeon_ring *ring = rdev-ring[ib-ring];
 
/* set to DX10/11 mode */
radeon_ring_write(ring, PACKET3(PACKET3_MODE_CONTROL, 0));
diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c
index fb44e7e..415b7d8 100644
--- a/drivers/gpu/drm/radeon/r100.c
+++ b/drivers/gpu/drm/radeon/r100.c
@@ -883,7 +883,7 @@ int r100_copy_blit(struct radeon_device *rdev,
   uint64_t src_offset,
   uint64_t dst_offset,
   unsigned num_gpu_pages,
-  struct radeon_fence *fence)
+  struct radeon_fence **fence)
 {
struct radeon_ring *ring = rdev-ring[RADEON_RING_TYPE_GFX_INDEX];
uint32_t cur_pages;
@@ -947,7 +947,7 @@ int r100_copy_blit(struct radeon_device *rdev,
  RADEON_WAIT_HOST_IDLECLEAN |
  RADEON_WAIT_DMA_GUI_IDLE);
if (fence) {
-   r = radeon_fence_emit(rdev, fence);
+   r = radeon_fence_emit(rdev, fence, RADEON_RING_TYPE_GFX_INDEX);
}
radeon_ring_unlock_commit(rdev, ring);
return r;
diff --git a/drivers/gpu/drm/radeon/r200.c b/drivers/gpu/drm/radeon/r200.c
index a26144d..f088925 100644
--- a/drivers/gpu/drm/radeon/r200.c
+++ b/drivers/gpu/drm/radeon/r200.c
@@ -85,7 +85,7 @@ int r200_copy_dma(struct radeon_device *rdev,
  uint64_t src_offset,
  uint64_t dst_offset,
  unsigned num_gpu_pages,
- struct radeon_fence *fence)
+ struct radeon_fence **fence)
 {
struct radeon_ring *ring = rdev-ring[RADEON_RING_TYPE_GFX_INDEX];
uint32_t size;
@@ -120,7 +120,7 @@ int r200_copy_dma(struct radeon_device *rdev,
radeon_ring_write(ring, PACKET0(RADEON_WAIT_UNTIL, 0));
radeon_ring_write(ring, RADEON_WAIT_DMA_GUI_IDLE);
if (fence) {
-   r = radeon_fence_emit(rdev, fence);
+   r = radeon_fence_emit(rdev, fence, RADEON_RING_TYPE_GFX_INDEX);
}
radeon_ring_unlock_commit(rdev, ring);
return r;
diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c
index f388a1d..e5279f9 100644
--- a/drivers/gpu/drm/radeon/r600.c
+++ b/drivers/gpu/drm/radeon/r600.c
@@ -2369,7 +2369,7 @@ int r600_copy_blit(struct radeon_device *rdev,
   uint64_t src_offset,
   uint64_t dst_offset,
   unsigned num_gpu_pages,
-  struct radeon_fence *fence)
+  struct radeon_fence **fence)
 {
struct radeon_sa_bo *vb = NULL;
int r;
@@ -2670,7 +2670,7 @@ void r600_fini(struct radeon_device *rdev)
  */
 void r600_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib)
 {
-   struct radeon_ring *ring = rdev-ring[ib-fence-ring];
+   struct radeon_ring *ring = rdev-ring[ib-ring];
 
/* 

[PATCH 01/10] drm/radeon: remove radeon_fence_create

2012-05-24 Thread j.glisse
On Thu, May 24, 2012 at 09:49:05AM +0200, Christian K?nig wrote:
> It is completely unnecessary to create fences
> before they are emitted, so remove it and a bunch
> of checks if fences are emitted or not.
> 
> Signed-off-by: Christian K?nig 

Reviewed-by: Jerome Glisse 

> ---
>  drivers/gpu/drm/radeon/evergreen.c|2 +-
>  drivers/gpu/drm/radeon/ni.c   |2 +-
>  drivers/gpu/drm/radeon/r100.c |4 +-
>  drivers/gpu/drm/radeon/r200.c |4 +-
>  drivers/gpu/drm/radeon/r600.c |4 +-
>  drivers/gpu/drm/radeon/r600_blit_kms.c|6 +--
>  drivers/gpu/drm/radeon/radeon.h   |   11 +++--
>  drivers/gpu/drm/radeon/radeon_asic.h  |8 ++--
>  drivers/gpu/drm/radeon/radeon_benchmark.c |   10 +
>  drivers/gpu/drm/radeon/radeon_fence.c |   42 ++
>  drivers/gpu/drm/radeon/radeon_ring.c  |   19 +
>  drivers/gpu/drm/radeon/radeon_sa.c|2 +-
>  drivers/gpu/drm/radeon/radeon_test.c  |   66 
> -
>  drivers/gpu/drm/radeon/radeon_ttm.c   |   30 +
>  drivers/gpu/drm/radeon/si.c   |6 +--
>  15 files changed, 86 insertions(+), 130 deletions(-)
> 
> diff --git a/drivers/gpu/drm/radeon/evergreen.c 
> b/drivers/gpu/drm/radeon/evergreen.c
> index 58991af..dd3cea4 100644
> --- a/drivers/gpu/drm/radeon/evergreen.c
> +++ b/drivers/gpu/drm/radeon/evergreen.c
> @@ -1366,7 +1366,7 @@ void evergreen_mc_program(struct radeon_device *rdev)
>   */
>  void evergreen_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib 
> *ib)
>  {
> - struct radeon_ring *ring = >ring[ib->fence->ring];
> + struct radeon_ring *ring = >ring[ib->ring];
>  
>   /* set to DX10/11 mode */
>   radeon_ring_write(ring, PACKET3(PACKET3_MODE_CONTROL, 0));
> diff --git a/drivers/gpu/drm/radeon/ni.c b/drivers/gpu/drm/radeon/ni.c
> index b01c2dd..9d9f5ac 100644
> --- a/drivers/gpu/drm/radeon/ni.c
> +++ b/drivers/gpu/drm/radeon/ni.c
> @@ -1127,7 +1127,7 @@ void cayman_fence_ring_emit(struct radeon_device *rdev,
>  
>  void cayman_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib)
>  {
> - struct radeon_ring *ring = >ring[ib->fence->ring];
> + struct radeon_ring *ring = >ring[ib->ring];
>  
>   /* set to DX10/11 mode */
>   radeon_ring_write(ring, PACKET3(PACKET3_MODE_CONTROL, 0));
> diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c
> index fb44e7e..415b7d8 100644
> --- a/drivers/gpu/drm/radeon/r100.c
> +++ b/drivers/gpu/drm/radeon/r100.c
> @@ -883,7 +883,7 @@ int r100_copy_blit(struct radeon_device *rdev,
>  uint64_t src_offset,
>  uint64_t dst_offset,
>  unsigned num_gpu_pages,
> -struct radeon_fence *fence)
> +struct radeon_fence **fence)
>  {
>   struct radeon_ring *ring = >ring[RADEON_RING_TYPE_GFX_INDEX];
>   uint32_t cur_pages;
> @@ -947,7 +947,7 @@ int r100_copy_blit(struct radeon_device *rdev,
> RADEON_WAIT_HOST_IDLECLEAN |
> RADEON_WAIT_DMA_GUI_IDLE);
>   if (fence) {
> - r = radeon_fence_emit(rdev, fence);
> + r = radeon_fence_emit(rdev, fence, RADEON_RING_TYPE_GFX_INDEX);
>   }
>   radeon_ring_unlock_commit(rdev, ring);
>   return r;
> diff --git a/drivers/gpu/drm/radeon/r200.c b/drivers/gpu/drm/radeon/r200.c
> index a26144d..f088925 100644
> --- a/drivers/gpu/drm/radeon/r200.c
> +++ b/drivers/gpu/drm/radeon/r200.c
> @@ -85,7 +85,7 @@ int r200_copy_dma(struct radeon_device *rdev,
> uint64_t src_offset,
> uint64_t dst_offset,
> unsigned num_gpu_pages,
> -   struct radeon_fence *fence)
> +   struct radeon_fence **fence)
>  {
>   struct radeon_ring *ring = >ring[RADEON_RING_TYPE_GFX_INDEX];
>   uint32_t size;
> @@ -120,7 +120,7 @@ int r200_copy_dma(struct radeon_device *rdev,
>   radeon_ring_write(ring, PACKET0(RADEON_WAIT_UNTIL, 0));
>   radeon_ring_write(ring, RADEON_WAIT_DMA_GUI_IDLE);
>   if (fence) {
> - r = radeon_fence_emit(rdev, fence);
> + r = radeon_fence_emit(rdev, fence, RADEON_RING_TYPE_GFX_INDEX);
>   }
>   radeon_ring_unlock_commit(rdev, ring);
>   return r;
> diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c
> index f388a1d..e5279f9 100644
> --- a/drivers/gpu/drm/radeon/r600.c
> +++ b/drivers/gpu/drm/radeon/r600.c
> @@ -2369,7 +2369,7 @@ int r600_copy_blit(struct radeon_device *rdev,
>  uint64_t src_offset,
>  uint64_t dst_offset,
>  unsigned num_gpu_pages,
> -struct radeon_fence *fence)
> +struct radeon_fence **fence)
>  {
>   struct radeon_sa_bo *vb = NULL;
>   int r;
> @@ -2670,7 +2670,7 @@ void r600_fini(struct radeon_device *rdev)
>   */
>  void 

[PATCH 01/10] drm/radeon: remove radeon_fence_create

2012-05-24 Thread Christian König
It is completely unnecessary to create fences
before they are emitted, so remove it and a bunch
of checks if fences are emitted or not.

Signed-off-by: Christian K?nig 
---
 drivers/gpu/drm/radeon/evergreen.c|2 +-
 drivers/gpu/drm/radeon/ni.c   |2 +-
 drivers/gpu/drm/radeon/r100.c |4 +-
 drivers/gpu/drm/radeon/r200.c |4 +-
 drivers/gpu/drm/radeon/r600.c |4 +-
 drivers/gpu/drm/radeon/r600_blit_kms.c|6 +--
 drivers/gpu/drm/radeon/radeon.h   |   11 +++--
 drivers/gpu/drm/radeon/radeon_asic.h  |8 ++--
 drivers/gpu/drm/radeon/radeon_benchmark.c |   10 +
 drivers/gpu/drm/radeon/radeon_fence.c |   42 ++
 drivers/gpu/drm/radeon/radeon_ring.c  |   19 +
 drivers/gpu/drm/radeon/radeon_sa.c|2 +-
 drivers/gpu/drm/radeon/radeon_test.c  |   66 -
 drivers/gpu/drm/radeon/radeon_ttm.c   |   30 +
 drivers/gpu/drm/radeon/si.c   |6 +--
 15 files changed, 86 insertions(+), 130 deletions(-)

diff --git a/drivers/gpu/drm/radeon/evergreen.c 
b/drivers/gpu/drm/radeon/evergreen.c
index 58991af..dd3cea4 100644
--- a/drivers/gpu/drm/radeon/evergreen.c
+++ b/drivers/gpu/drm/radeon/evergreen.c
@@ -1366,7 +1366,7 @@ void evergreen_mc_program(struct radeon_device *rdev)
  */
 void evergreen_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib 
*ib)
 {
-   struct radeon_ring *ring = >ring[ib->fence->ring];
+   struct radeon_ring *ring = >ring[ib->ring];

/* set to DX10/11 mode */
radeon_ring_write(ring, PACKET3(PACKET3_MODE_CONTROL, 0));
diff --git a/drivers/gpu/drm/radeon/ni.c b/drivers/gpu/drm/radeon/ni.c
index b01c2dd..9d9f5ac 100644
--- a/drivers/gpu/drm/radeon/ni.c
+++ b/drivers/gpu/drm/radeon/ni.c
@@ -1127,7 +1127,7 @@ void cayman_fence_ring_emit(struct radeon_device *rdev,

 void cayman_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib)
 {
-   struct radeon_ring *ring = >ring[ib->fence->ring];
+   struct radeon_ring *ring = >ring[ib->ring];

/* set to DX10/11 mode */
radeon_ring_write(ring, PACKET3(PACKET3_MODE_CONTROL, 0));
diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c
index fb44e7e..415b7d8 100644
--- a/drivers/gpu/drm/radeon/r100.c
+++ b/drivers/gpu/drm/radeon/r100.c
@@ -883,7 +883,7 @@ int r100_copy_blit(struct radeon_device *rdev,
   uint64_t src_offset,
   uint64_t dst_offset,
   unsigned num_gpu_pages,
-  struct radeon_fence *fence)
+  struct radeon_fence **fence)
 {
struct radeon_ring *ring = >ring[RADEON_RING_TYPE_GFX_INDEX];
uint32_t cur_pages;
@@ -947,7 +947,7 @@ int r100_copy_blit(struct radeon_device *rdev,
  RADEON_WAIT_HOST_IDLECLEAN |
  RADEON_WAIT_DMA_GUI_IDLE);
if (fence) {
-   r = radeon_fence_emit(rdev, fence);
+   r = radeon_fence_emit(rdev, fence, RADEON_RING_TYPE_GFX_INDEX);
}
radeon_ring_unlock_commit(rdev, ring);
return r;
diff --git a/drivers/gpu/drm/radeon/r200.c b/drivers/gpu/drm/radeon/r200.c
index a26144d..f088925 100644
--- a/drivers/gpu/drm/radeon/r200.c
+++ b/drivers/gpu/drm/radeon/r200.c
@@ -85,7 +85,7 @@ int r200_copy_dma(struct radeon_device *rdev,
  uint64_t src_offset,
  uint64_t dst_offset,
  unsigned num_gpu_pages,
- struct radeon_fence *fence)
+ struct radeon_fence **fence)
 {
struct radeon_ring *ring = >ring[RADEON_RING_TYPE_GFX_INDEX];
uint32_t size;
@@ -120,7 +120,7 @@ int r200_copy_dma(struct radeon_device *rdev,
radeon_ring_write(ring, PACKET0(RADEON_WAIT_UNTIL, 0));
radeon_ring_write(ring, RADEON_WAIT_DMA_GUI_IDLE);
if (fence) {
-   r = radeon_fence_emit(rdev, fence);
+   r = radeon_fence_emit(rdev, fence, RADEON_RING_TYPE_GFX_INDEX);
}
radeon_ring_unlock_commit(rdev, ring);
return r;
diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c
index f388a1d..e5279f9 100644
--- a/drivers/gpu/drm/radeon/r600.c
+++ b/drivers/gpu/drm/radeon/r600.c
@@ -2369,7 +2369,7 @@ int r600_copy_blit(struct radeon_device *rdev,
   uint64_t src_offset,
   uint64_t dst_offset,
   unsigned num_gpu_pages,
-  struct radeon_fence *fence)
+  struct radeon_fence **fence)
 {
struct radeon_sa_bo *vb = NULL;
int r;
@@ -2670,7 +2670,7 @@ void r600_fini(struct radeon_device *rdev)
  */
 void r600_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib)
 {
-   struct radeon_ring *ring = >ring[ib->fence->ring];
+   struct radeon_ring *ring = >ring[ib->ring];

/* FIXME: implement */
radeon_ring_write(ring, 

[PATCH 01/10] drm/radeon: remove radeon_fence_create

2012-05-24 Thread Christian König
It is completely unnecessary to create fences
before they are emitted, so remove it and a bunch
of checks if fences are emitted or not.

Signed-off-by: Christian König deathsim...@vodafone.de
---
 drivers/gpu/drm/radeon/evergreen.c|2 +-
 drivers/gpu/drm/radeon/ni.c   |2 +-
 drivers/gpu/drm/radeon/r100.c |4 +-
 drivers/gpu/drm/radeon/r200.c |4 +-
 drivers/gpu/drm/radeon/r600.c |4 +-
 drivers/gpu/drm/radeon/r600_blit_kms.c|6 +--
 drivers/gpu/drm/radeon/radeon.h   |   11 +++--
 drivers/gpu/drm/radeon/radeon_asic.h  |8 ++--
 drivers/gpu/drm/radeon/radeon_benchmark.c |   10 +
 drivers/gpu/drm/radeon/radeon_fence.c |   42 ++
 drivers/gpu/drm/radeon/radeon_ring.c  |   19 +
 drivers/gpu/drm/radeon/radeon_sa.c|2 +-
 drivers/gpu/drm/radeon/radeon_test.c  |   66 -
 drivers/gpu/drm/radeon/radeon_ttm.c   |   30 +
 drivers/gpu/drm/radeon/si.c   |6 +--
 15 files changed, 86 insertions(+), 130 deletions(-)

diff --git a/drivers/gpu/drm/radeon/evergreen.c 
b/drivers/gpu/drm/radeon/evergreen.c
index 58991af..dd3cea4 100644
--- a/drivers/gpu/drm/radeon/evergreen.c
+++ b/drivers/gpu/drm/radeon/evergreen.c
@@ -1366,7 +1366,7 @@ void evergreen_mc_program(struct radeon_device *rdev)
  */
 void evergreen_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib 
*ib)
 {
-   struct radeon_ring *ring = rdev-ring[ib-fence-ring];
+   struct radeon_ring *ring = rdev-ring[ib-ring];
 
/* set to DX10/11 mode */
radeon_ring_write(ring, PACKET3(PACKET3_MODE_CONTROL, 0));
diff --git a/drivers/gpu/drm/radeon/ni.c b/drivers/gpu/drm/radeon/ni.c
index b01c2dd..9d9f5ac 100644
--- a/drivers/gpu/drm/radeon/ni.c
+++ b/drivers/gpu/drm/radeon/ni.c
@@ -1127,7 +1127,7 @@ void cayman_fence_ring_emit(struct radeon_device *rdev,
 
 void cayman_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib)
 {
-   struct radeon_ring *ring = rdev-ring[ib-fence-ring];
+   struct radeon_ring *ring = rdev-ring[ib-ring];
 
/* set to DX10/11 mode */
radeon_ring_write(ring, PACKET3(PACKET3_MODE_CONTROL, 0));
diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c
index fb44e7e..415b7d8 100644
--- a/drivers/gpu/drm/radeon/r100.c
+++ b/drivers/gpu/drm/radeon/r100.c
@@ -883,7 +883,7 @@ int r100_copy_blit(struct radeon_device *rdev,
   uint64_t src_offset,
   uint64_t dst_offset,
   unsigned num_gpu_pages,
-  struct radeon_fence *fence)
+  struct radeon_fence **fence)
 {
struct radeon_ring *ring = rdev-ring[RADEON_RING_TYPE_GFX_INDEX];
uint32_t cur_pages;
@@ -947,7 +947,7 @@ int r100_copy_blit(struct radeon_device *rdev,
  RADEON_WAIT_HOST_IDLECLEAN |
  RADEON_WAIT_DMA_GUI_IDLE);
if (fence) {
-   r = radeon_fence_emit(rdev, fence);
+   r = radeon_fence_emit(rdev, fence, RADEON_RING_TYPE_GFX_INDEX);
}
radeon_ring_unlock_commit(rdev, ring);
return r;
diff --git a/drivers/gpu/drm/radeon/r200.c b/drivers/gpu/drm/radeon/r200.c
index a26144d..f088925 100644
--- a/drivers/gpu/drm/radeon/r200.c
+++ b/drivers/gpu/drm/radeon/r200.c
@@ -85,7 +85,7 @@ int r200_copy_dma(struct radeon_device *rdev,
  uint64_t src_offset,
  uint64_t dst_offset,
  unsigned num_gpu_pages,
- struct radeon_fence *fence)
+ struct radeon_fence **fence)
 {
struct radeon_ring *ring = rdev-ring[RADEON_RING_TYPE_GFX_INDEX];
uint32_t size;
@@ -120,7 +120,7 @@ int r200_copy_dma(struct radeon_device *rdev,
radeon_ring_write(ring, PACKET0(RADEON_WAIT_UNTIL, 0));
radeon_ring_write(ring, RADEON_WAIT_DMA_GUI_IDLE);
if (fence) {
-   r = radeon_fence_emit(rdev, fence);
+   r = radeon_fence_emit(rdev, fence, RADEON_RING_TYPE_GFX_INDEX);
}
radeon_ring_unlock_commit(rdev, ring);
return r;
diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c
index f388a1d..e5279f9 100644
--- a/drivers/gpu/drm/radeon/r600.c
+++ b/drivers/gpu/drm/radeon/r600.c
@@ -2369,7 +2369,7 @@ int r600_copy_blit(struct radeon_device *rdev,
   uint64_t src_offset,
   uint64_t dst_offset,
   unsigned num_gpu_pages,
-  struct radeon_fence *fence)
+  struct radeon_fence **fence)
 {
struct radeon_sa_bo *vb = NULL;
int r;
@@ -2670,7 +2670,7 @@ void r600_fini(struct radeon_device *rdev)
  */
 void r600_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib)
 {
-   struct radeon_ring *ring = rdev-ring[ib-fence-ring];
+   struct radeon_ring *ring = rdev-ring[ib-ring];
 
/* 

Re: [PATCH 01/10] drm/radeon: remove radeon_fence_create

2012-05-24 Thread j.glisse
On Thu, May 24, 2012 at 09:49:05AM +0200, Christian König wrote:
 It is completely unnecessary to create fences
 before they are emitted, so remove it and a bunch
 of checks if fences are emitted or not.
 
 Signed-off-by: Christian König deathsim...@vodafone.de

Reviewed-by: Jerome Glisse jgli...@redhat.com

 ---
  drivers/gpu/drm/radeon/evergreen.c|2 +-
  drivers/gpu/drm/radeon/ni.c   |2 +-
  drivers/gpu/drm/radeon/r100.c |4 +-
  drivers/gpu/drm/radeon/r200.c |4 +-
  drivers/gpu/drm/radeon/r600.c |4 +-
  drivers/gpu/drm/radeon/r600_blit_kms.c|6 +--
  drivers/gpu/drm/radeon/radeon.h   |   11 +++--
  drivers/gpu/drm/radeon/radeon_asic.h  |8 ++--
  drivers/gpu/drm/radeon/radeon_benchmark.c |   10 +
  drivers/gpu/drm/radeon/radeon_fence.c |   42 ++
  drivers/gpu/drm/radeon/radeon_ring.c  |   19 +
  drivers/gpu/drm/radeon/radeon_sa.c|2 +-
  drivers/gpu/drm/radeon/radeon_test.c  |   66 
 -
  drivers/gpu/drm/radeon/radeon_ttm.c   |   30 +
  drivers/gpu/drm/radeon/si.c   |6 +--
  15 files changed, 86 insertions(+), 130 deletions(-)
 
 diff --git a/drivers/gpu/drm/radeon/evergreen.c 
 b/drivers/gpu/drm/radeon/evergreen.c
 index 58991af..dd3cea4 100644
 --- a/drivers/gpu/drm/radeon/evergreen.c
 +++ b/drivers/gpu/drm/radeon/evergreen.c
 @@ -1366,7 +1366,7 @@ void evergreen_mc_program(struct radeon_device *rdev)
   */
  void evergreen_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib 
 *ib)
  {
 - struct radeon_ring *ring = rdev-ring[ib-fence-ring];
 + struct radeon_ring *ring = rdev-ring[ib-ring];
  
   /* set to DX10/11 mode */
   radeon_ring_write(ring, PACKET3(PACKET3_MODE_CONTROL, 0));
 diff --git a/drivers/gpu/drm/radeon/ni.c b/drivers/gpu/drm/radeon/ni.c
 index b01c2dd..9d9f5ac 100644
 --- a/drivers/gpu/drm/radeon/ni.c
 +++ b/drivers/gpu/drm/radeon/ni.c
 @@ -1127,7 +1127,7 @@ void cayman_fence_ring_emit(struct radeon_device *rdev,
  
  void cayman_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib)
  {
 - struct radeon_ring *ring = rdev-ring[ib-fence-ring];
 + struct radeon_ring *ring = rdev-ring[ib-ring];
  
   /* set to DX10/11 mode */
   radeon_ring_write(ring, PACKET3(PACKET3_MODE_CONTROL, 0));
 diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c
 index fb44e7e..415b7d8 100644
 --- a/drivers/gpu/drm/radeon/r100.c
 +++ b/drivers/gpu/drm/radeon/r100.c
 @@ -883,7 +883,7 @@ int r100_copy_blit(struct radeon_device *rdev,
  uint64_t src_offset,
  uint64_t dst_offset,
  unsigned num_gpu_pages,
 -struct radeon_fence *fence)
 +struct radeon_fence **fence)
  {
   struct radeon_ring *ring = rdev-ring[RADEON_RING_TYPE_GFX_INDEX];
   uint32_t cur_pages;
 @@ -947,7 +947,7 @@ int r100_copy_blit(struct radeon_device *rdev,
 RADEON_WAIT_HOST_IDLECLEAN |
 RADEON_WAIT_DMA_GUI_IDLE);
   if (fence) {
 - r = radeon_fence_emit(rdev, fence);
 + r = radeon_fence_emit(rdev, fence, RADEON_RING_TYPE_GFX_INDEX);
   }
   radeon_ring_unlock_commit(rdev, ring);
   return r;
 diff --git a/drivers/gpu/drm/radeon/r200.c b/drivers/gpu/drm/radeon/r200.c
 index a26144d..f088925 100644
 --- a/drivers/gpu/drm/radeon/r200.c
 +++ b/drivers/gpu/drm/radeon/r200.c
 @@ -85,7 +85,7 @@ int r200_copy_dma(struct radeon_device *rdev,
 uint64_t src_offset,
 uint64_t dst_offset,
 unsigned num_gpu_pages,
 -   struct radeon_fence *fence)
 +   struct radeon_fence **fence)
  {
   struct radeon_ring *ring = rdev-ring[RADEON_RING_TYPE_GFX_INDEX];
   uint32_t size;
 @@ -120,7 +120,7 @@ int r200_copy_dma(struct radeon_device *rdev,
   radeon_ring_write(ring, PACKET0(RADEON_WAIT_UNTIL, 0));
   radeon_ring_write(ring, RADEON_WAIT_DMA_GUI_IDLE);
   if (fence) {
 - r = radeon_fence_emit(rdev, fence);
 + r = radeon_fence_emit(rdev, fence, RADEON_RING_TYPE_GFX_INDEX);
   }
   radeon_ring_unlock_commit(rdev, ring);
   return r;
 diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c
 index f388a1d..e5279f9 100644
 --- a/drivers/gpu/drm/radeon/r600.c
 +++ b/drivers/gpu/drm/radeon/r600.c
 @@ -2369,7 +2369,7 @@ int r600_copy_blit(struct radeon_device *rdev,
  uint64_t src_offset,
  uint64_t dst_offset,
  unsigned num_gpu_pages,
 -struct radeon_fence *fence)
 +struct radeon_fence **fence)
  {
   struct radeon_sa_bo *vb = NULL;
   int r;
 @@ -2670,7 +2670,7 @@ void r600_fini(struct radeon_device *rdev)
   */
  void r600_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib)