aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/radeon.h
diff options
context:
space:
mode:
authorChristian König <deathsimple@vodafone.de>2011-10-13 06:48:45 -0400
committerDave Airlie <airlied@redhat.com>2011-12-20 14:49:56 -0500
commit5596a9db156107b01ceb7db4d50cc091117da627 (patch)
tree93a485ad83c37f28ba4565292bd13492959d72f8 /drivers/gpu/drm/radeon/radeon.h
parent7b1f2485db253aaa0081e1c5213533e166130732 (diff)
drm/radeon: make ring rptr and wptr register offsets variable
Every ring seems to have the concept of read and write pointers. Make the register offset variable so we can use the functions for different types of rings. Signed-off-by: Christian König <deathsimple@vodafone.de> Reviewed-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon.h')
-rw-r--r--drivers/gpu/drm/radeon/radeon.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
index 5bf8603f3956..bbe88ec3951d 100644
--- a/drivers/gpu/drm/radeon/radeon.h
+++ b/drivers/gpu/drm/radeon/radeon.h
@@ -525,8 +525,11 @@ struct radeon_cp {
525 struct radeon_bo *ring_obj; 525 struct radeon_bo *ring_obj;
526 volatile uint32_t *ring; 526 volatile uint32_t *ring;
527 unsigned rptr; 527 unsigned rptr;
528 unsigned rptr_offs;
529 unsigned rptr_reg;
528 unsigned wptr; 530 unsigned wptr;
529 unsigned wptr_old; 531 unsigned wptr_old;
532 unsigned wptr_reg;
530 unsigned ring_size; 533 unsigned ring_size;
531 unsigned ring_free_dw; 534 unsigned ring_free_dw;
532 int count_dw; 535 int count_dw;
@@ -602,7 +605,8 @@ void radeon_ring_commit(struct radeon_device *rdev, struct radeon_cp *cp);
602void radeon_ring_unlock_commit(struct radeon_device *rdev, struct radeon_cp *cp); 605void radeon_ring_unlock_commit(struct radeon_device *rdev, struct radeon_cp *cp);
603void radeon_ring_unlock_undo(struct radeon_device *rdev, struct radeon_cp *cp); 606void radeon_ring_unlock_undo(struct radeon_device *rdev, struct radeon_cp *cp);
604int radeon_ring_test(struct radeon_device *rdev, struct radeon_cp *cp); 607int radeon_ring_test(struct radeon_device *rdev, struct radeon_cp *cp);
605int radeon_ring_init(struct radeon_device *rdev, struct radeon_cp *cp, unsigned ring_size); 608int radeon_ring_init(struct radeon_device *rdev, struct radeon_cp *cp, unsigned ring_size,
609 unsigned rptr_offs, unsigned rptr_reg, unsigned wptr_reg);
606void radeon_ring_fini(struct radeon_device *rdev, struct radeon_cp *cp); 610void radeon_ring_fini(struct radeon_device *rdev, struct radeon_cp *cp);
607 611
608 612
@@ -939,7 +943,6 @@ struct radeon_asic {
939 int (*cp_init)(struct radeon_device *rdev, unsigned ring_size); 943 int (*cp_init)(struct radeon_device *rdev, unsigned ring_size);
940 void (*cp_fini)(struct radeon_device *rdev); 944 void (*cp_fini)(struct radeon_device *rdev);
941 void (*cp_disable)(struct radeon_device *rdev); 945 void (*cp_disable)(struct radeon_device *rdev);
942 void (*cp_commit)(struct radeon_device *rdev, struct radeon_cp *cp);
943 void (*ring_start)(struct radeon_device *rdev); 946 void (*ring_start)(struct radeon_device *rdev);
944 int (*ring_test)(struct radeon_device *rdev, struct radeon_cp *cp); 947 int (*ring_test)(struct radeon_device *rdev, struct radeon_cp *cp);
945 void (*ring_ib_execute)(struct radeon_device *rdev, struct radeon_ib *ib); 948 void (*ring_ib_execute)(struct radeon_device *rdev, struct radeon_ib *ib);
@@ -1491,7 +1494,6 @@ void radeon_ring_write(struct radeon_cp *cp, uint32_t v);
1491#define radeon_asic_reset(rdev) (rdev)->asic->asic_reset((rdev)) 1494#define radeon_asic_reset(rdev) (rdev)->asic->asic_reset((rdev))
1492#define radeon_gart_tlb_flush(rdev) (rdev)->asic->gart_tlb_flush((rdev)) 1495#define radeon_gart_tlb_flush(rdev) (rdev)->asic->gart_tlb_flush((rdev))
1493#define radeon_gart_set_page(rdev, i, p) (rdev)->asic->gart_set_page((rdev), (i), (p)) 1496#define radeon_gart_set_page(rdev, i, p) (rdev)->asic->gart_set_page((rdev), (i), (p))
1494#define radeon_cp_commit(rdev, cp) (rdev)->asic->cp_commit((rdev), (cp))
1495#define radeon_ring_start(rdev) (rdev)->asic->ring_start((rdev)) 1497#define radeon_ring_start(rdev) (rdev)->asic->ring_start((rdev))
1496#define radeon_ring_test(rdev, cp) (rdev)->asic->ring_test((rdev), (cp)) 1498#define radeon_ring_test(rdev, cp) (rdev)->asic->ring_test((rdev), (cp))
1497#define radeon_ring_ib_execute(rdev, ib) (rdev)->asic->ring_ib_execute((rdev), (ib)) 1499#define radeon_ring_ib_execute(rdev, ib) (rdev)->asic->ring_ib_execute((rdev), (ib))